王宇石 李宏偉 董明文
摘 要:文章提出了一種為雙(多)視角安檢設備配備的軟件系統(tǒng)的架構設計,克服了傳統(tǒng)設計的不足,針對智能化探測所需的“更多的計算資源”、“包裹的智能切分”、“多視角之間的通信與協(xié)同”,進行了更為實用化的設計。測試與試用結果證明,本軟件系統(tǒng)能夠在高壓力場景下同時實現(xiàn)傳統(tǒng)的圖像顯示功能和包裹探測功能。
關鍵詞:雙視角;安檢設備;軟件架構;包裹切分
中圖分類號:TP274.5 文獻標志碼:A 文章編號:2095-2945(2019)01-0085-03
Abstract: This paper presents an architecture design of a software system for double-view (multi-view) security inspection equipment, which overcomes the shortcomings of traditional design. Aiming at "more computing resources", "parcel intelligent segmentation" and "communication and cooperation between multi-view points", a more practical design is carried out. The test and trial results show that the software system can achieve both the traditional image display function and the package detection function under high pressure scenarios.
Keywords: dual view; security equipment; software architecture; package segmentation
1 概述
當前,對于具有一定智能的、探測能力較強的安檢設備出現(xiàn)了強烈呼聲,除了經(jīng)典的液體、爆炸物探測功能[1,2],地鐵用戶因大客流下安檢員的超高工作負荷(隨之安檢質量缺乏保證),也提出了自動檢測違禁品的需求。而具有智能化探測的雙/多視角安檢設備的軟件架構需滿足以下目標:
(1)足夠的計算資源(多計算機乃至安裝GPU顯卡,計算機之間的通訊)。
(2)包裹的智能切分(保證進行有針對性的探測)。
(3)多視角間的通信與協(xié)同(包裹切分的協(xié)同、多視角的協(xié)同探測)。
由于傳統(tǒng)功能中卷軸、拼接等功能對計算資源的占有率有較高的要求,如果將復雜的探測算法與傳統(tǒng)功能集中于一臺計算機上,有可能造成:卷軸受到?jīng)_擊后會卡頓或遲緩(卷軸速度慢于包裹傳輸速度),或者等待探測的包裹圖像發(fā)生堆積,無法及時返回探測結果。為此,把大部分探測算法的執(zhí)行可放在新增的計算機上(相當于后臺計算機,可加裝GPU),都是智能化安檢設備的必由之路。
包裹切分也是智能化安檢機的一個重要需求。因為各種探測算法都是以一個(基本)完整的“包裹”或“物品”進行探測的,例如探測一個筆記本,需要這個筆記本是完整的。傳統(tǒng)的軟件設計每次按固定的行數(shù)截取采集到的圖像數(shù)據(jù)形成包裹圖像,有可能造成需探測的違禁品、炸藥、液體、筆記本被隨機地切成兩半、分屬兩個圖像,導致探測條件不完整、周邊上下文環(huán)境的斷裂。特別的,在地鐵大人流的情況中,包連包在客運高峰階段是基本形態(tài),對包裹的智能化切分需求格外強烈。
第三,是在包裹層面的視角間協(xié)同。過去只是在顯示數(shù)據(jù)上進行了視角之間的對齊,但是現(xiàn)在還需要考慮在包裹層面上進行視角間“對齊”。首先在包裹切分時,兩個視角的分包結果要基本一致、互相對應;其次在執(zhí)行探測時,有些功能需要同一包裹的多個視角的圖像協(xié)同使用,才能進行探測,典型如液體探測功能。
以上三項要素是傳統(tǒng)多視角安檢設備軟件設計[3,4,5]中考慮較少的地方,在包裹密集高壓力情況下無法滿足實際需求。本文提出的軟件設計提出了一種卷軸和切分包裹(及其后的探測)分路處理的架構,并引入了復雜的包裹切分機制,從而更好地滿足了智能化安檢設備的三項需求。本文將按照以下結構進行描述:第2節(jié)介紹軟件的架構設計,第3節(jié)介紹包裹智能切分的基本思想,第4節(jié)進行總結。
2 軟件架構
整套軟件的架構分兩大部分:(1)“前端平臺主控程序”及其下屬的模塊,主管傳統(tǒng)的安檢設備工控機的功能,本文把工控機稱為“前端計算機”;(2)把新增的計算機稱為“后臺計算機”,在后臺計算機上部署的是“后臺主控程序”及其下屬的模塊(詳見圖2)。
如圖1所示,預處理模塊及其下屬的模塊,在前端計算機中對每個視角都有一套對象實例,例如雙視角安檢設備的前端平臺上有2套預處理模塊、視角對齊模塊等。按照傳統(tǒng)的多視角軟件架構的設計,每個視角的視角對齊模塊不斷獲得圖像采集模塊送來的圖像數(shù)據(jù),同時利用找空氣背景模塊切分各個包裹,形成包裹圖像,然后視角對齊模塊一邊發(fā)起對包裹圖像的卷軸顯示,同時對包裹圖像相繼調用判斷圖像類型模塊(例如圖像內容是液體還是常規(guī)包裹)和探測/存儲模塊(進行材料探測[6])?,F(xiàn)在的前端平臺的軟件設計改為將卷軸顯示、包裹的切分/探測分為兩路,分別進行,互不影響。其中視角對齊模塊是軟件運轉的核心。在處理的過程中,卷軸和包裹的切分/探測兩路均以射線燈的亮起到熄滅為一個單元進行處理(稱為“一次采集”),一次采集結束后,包裹切分/探測流程將進行相應的狀態(tài)初始化。下面分別描述卷軸顯示、包裹的切分/探測兩路處理的機制。
2.1 卷軸顯示流程
參看圖1,視角對齊模塊是預處理模塊發(fā)起的一個重要線程。在S1步驟中,視角對齊模塊每次通過調用圖像采集模塊獲得一定行數(shù)的圖像數(shù)據(jù),稱為1塊數(shù)據(jù)(例如60行);如果還沒有找到本次采集的數(shù)據(jù)中對應第一個包裹的頭位置Grab_BagHead,則在S2步驟中,視角對齊模塊把當前數(shù)據(jù)塊發(fā)給找空氣背景模塊進行分析,直至找到本次采集的Grab_BagHead,相當于一次采集的有意義內容的開始位置。
當視角對齊模塊獲得Grab_BagHead之后,會開始與設備的最后一個視角VN(按開始數(shù)據(jù)采集的順序)的視角對齊模塊,通過WinSock機制[7]進行通訊;此后每獲得1塊數(shù)據(jù)就告知VN一次(步驟S3),使得VN可以知道其余各視角都獲得了多少塊的圖像數(shù)據(jù);同時,視角對齊模塊還會把當前獲得的這塊數(shù)據(jù)發(fā)給探測主控模塊(S4步驟),由探測主控模塊把這塊數(shù)據(jù)放入探測數(shù)據(jù)緩沖區(qū)。
當VN的視角對齊模塊獲得了VN的Grab_BagHead,從此開始,VN的視角對齊模塊每獲得1塊數(shù)據(jù)就通過S5步驟告知其他各視角的視角對齊模塊:可以卷軸顯示Grab_BagHead之后待顯示的下一塊數(shù)據(jù)了;在視角對齊模塊得知自己可以顯示下一塊數(shù)據(jù)時,就通過S6步驟告知本視角的預處理模塊,預處理模塊隨之調用卷軸顯示模塊(步驟S7)把下一塊數(shù)據(jù)在安檢員所看的計算機屏幕上卷出。從而各視角的圖像實現(xiàn)同步卷出。
以上過程與包裹的切分/探測沒有直接關系,兩者關系的松綁,使得包裹的切分與探測可以在后臺進行、采用復雜的算法,極端情況下發(fā)生分析錯誤后也不影響卷軸顯示。
2.2 包裹的切分/探測流程
參看圖2。按2.1所述,在S4步驟中,探測數(shù)據(jù)緩沖區(qū)已經(jīng)被填入本視角采集到的從Grab_BagHead開始的圖像數(shù)據(jù)。探測主控模塊的一個獨立線程實例,會循環(huán)掃描探測數(shù)據(jù)緩沖區(qū)是否有新填入的數(shù)據(jù)塊,若有則調用包裹切分模塊對新數(shù)據(jù)塊進行分析(步驟T1);如果某次調用被返回一個包裹在探測數(shù)據(jù)緩沖區(qū)中的頭尾位置(以下簡稱“頭尾位置”或“切分位置”),探測主控模塊就會把此包裹對應的圖像數(shù)據(jù)從探測數(shù)據(jù)緩沖區(qū)中截取出來,形成包裹圖像塊,放入包裹的隊列;探測主控模塊的第二個線程實例會循環(huán)掃描包裹的隊列,一旦發(fā)現(xiàn)有新切分出的包裹,則通過T3步驟調用探測/存儲模塊,由該模塊把此圖像塊按一定命名機制保存為包裹圖像文件、并返回相關的文件信息(文件名、圖像的頭尾位置等);隨后探測主控模塊的第二線程實例通過事件機制[7],告知前端平臺主控模塊有關這個圖像的文件信息(步驟T4),前端平臺主控模塊也會形成一個圖像文件信息的隊列。
然后,前端平臺主控模塊會在步驟T5中,把這個包裹圖像和相關的文件信息發(fā)送給后臺主控程序。后臺主控程序按隊列記錄各個視角發(fā)來的圖像及相關信息,在步驟T6中把各視角對應同一包裹的一組圖像發(fā)給后臺探測模塊進行探測,并將每組圖像的探測結果(主要是畫框的相對位置信息)通過T7步驟返回給前端平臺主控模塊,并由前端平臺主控模塊結合自己記錄的圖像文件信息隊列,調用卷軸顯示模塊在計算機屏幕上畫框(步驟T8)。
2.3 兩個流程的一些關聯(lián)性管理
本軟件架構設計中,存在一定的關聯(lián)性管理。其中有兩種關聯(lián)性非常重要。
第一是在每個視角中,卷軸所用數(shù)據(jù)緩沖區(qū)和探測數(shù)據(jù)緩沖區(qū)的位置的對應關系。由于兩路機制分別開展,卷軸顯示的數(shù)據(jù)行數(shù)和填入探測數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)行數(shù)不一致,所以在每次采集結束后還要進行位置的關聯(lián)統(tǒng)一。
第二是對于同一包裹在各個視角中切分形成的圖像,如何找到彼此的對應關系。由于各種原因,可能出現(xiàn)個別視角意外丟失個別包裹的圖像??梢杂砂蟹帜K為包裹進行編號,對于同一包裹,不同視角的包裹切分模塊將使用同一編號。此編號隨包裹圖像在各個步驟中傳遞,最終根據(jù)包裹編號保證后臺探測模塊每次處理的一組圖像來自于同一包裹。
3 包裹切分模塊的實現(xiàn)
包裹切分的目的是在探測數(shù)據(jù)緩沖區(qū)中找到包裹之間銜接的位置,或包裹中沒有可探測物體的位置,在這些位置進行切分,形成包裹圖像。
包裹切分模塊每次被調用時會一次給予30行數(shù)據(jù)進行分析,這些數(shù)據(jù)被循環(huán)覆蓋地加入包裹切分模塊自備的圖像緩沖區(qū)DB(行數(shù)、列數(shù)都進行了高度壓縮,以降低算法復雜度)。每行圖像的信息含量,由以下三方面確定:
每行各像素的X射線衰減量之和(如果足夠小則意味著遇到包裹間的空氣背景),每行經(jīng)過的可探測物體區(qū)域的種類、個數(shù)(及像素數(shù)),其中可探測物體區(qū)域是通過在圖像緩沖區(qū)DB里執(zhí)行生長算法[8],形成的具有一定灰度或材料特性的區(qū)域,各行包裹寬度的變化幅度(如果包裹的寬度在臨近各行中沒有顯著變化,則意味著很可能是同一包裹的延續(xù))。
匯總圖像各行的以上三方面的信息,可以判斷是否遇到了包裹與包裹之間的銜接位置,從而確定是否在某一行形成包裹的切分位置(包裹的頭或尾,如果是包連包則前一包的尾同時也是下一包裹的頭)。個別包連包且包裹內容復雜的情況下,有可能在探測數(shù)據(jù)緩沖區(qū)較長的范圍內都找不到包裹切分位置,則會尋找一個沒有粘著可探測物體的行,作為一個包裹的切分位置(相當于超長包裹的處理)。
包裹切分更為復雜的實現(xiàn)要求,在于多個視角對于同一包裹的切分結果的一致性。為此第一個視角V1(按照數(shù)據(jù)開始采集的順序)被作為主視角,它執(zhí)行上述的包裹切分算法,并把得到的切分位置及包裹的編號返回給探測主控模塊線程1,再將這些分包信息通過視角對齊模塊發(fā)WinSock消息告知后續(xù)各視角;其余各視角的包裹切分模塊,每次被調用時獲得最新傳來的V1分包信息,并且將在V1的包裹切分位置的指導下,尋找自己對應的包裹切分位置。需要防范各種意外:包括其他視角與V1視角對圖像內容的分析結果不一致,特別是對于軟包(例如包裹間的小間隙在一個視角中被探測到、但在另一個視角中無法確認);由于推、拉包導致同一包裹在不同視角的探測數(shù)據(jù)緩沖區(qū)中位置有差異等。
4 試用與結論
使用本軟件的雙視角安檢設備在北京的火車站、地鐵站分別進行了試用,并實現(xiàn)了相關項目所要求的液體探測功能,在試用過程中運行流暢。在試用之前進行了約50小時嚴酷的循環(huán)帶測試,往往一次采集長達2-3小時(包連包,含幾千包次),經(jīng)受了比現(xiàn)場壓力更大的考驗。
本文所提出的軟件架構設計,能夠很好地完成卷軸與探測各項工作,使兩者互不干擾,滿足了引言中所提到的智能化安檢設備軟件所需的三要素:(1)足夠的計算資源
(多計算機);(2)包裹的智能化切分;(3)多視角間的通信與協(xié)同;從而使相關的雙視角設備能運行復雜的探測算法并滿足各種實用化的需求。
此外,本軟件架構同時也是多視角軟件產(chǎn)品線的更進一步的發(fā)展。稍加改造、調試,該軟件架構可以較為容易地應用于三視角、四視角設備,所需的只是相應地增加計算機以部署更多的前端平臺及其主控程序。
參考文獻:
[1]張嫻,楊立瑞.歐盟液體探測系統(tǒng)檢測標準及世界先進液體探測設備介紹[J].中國安防,2013(5):101-103.
[2]王宇石,楊立瑞,孔維武,等.一種液態(tài)物品安全檢查的方法與裝置[P].CN201410406756.6.
[3]王宇石,楊立瑞,孔維武.X射線多視角安檢技術及其應用[J].警察技術,2011(6):57-59.
[4]楊立瑞.通道式多視角X射線液體安檢設備FISCAN EDS-MV6
040[J].警察技術,2013(6):60-66.
[5]張燕鳴,王建榮,查艷麗,等.一種通道式四視角X射線液態(tài)物品安全檢查系統(tǒng)[P].CN201210266563.6.
[6]楊立瑞.智能型X射線爆炸物自動探測系統(tǒng)[J].警察技術,2001,1(4):22-24.
[7]Jeffrey Richter. Windows核心編程(第5版)[M].葛子昂,周靖,廖敏,譯.北京:清華大學出版社,2008:230-323.
[8]羅述謙,周果宏.醫(yī)學圖像處理與分析[M].北京:科學出版社,2010:88-90.