王崇海
(1.中國(guó)電子科技集團(tuán)公司第三十八研究所,合肥 230088;2.安徽省公共安全應(yīng)急信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,合肥 230088)
現(xiàn)代社會(huì)各種視頻資源非常豐富,人工識(shí)別查找視頻蘊(yùn)含信息耗時(shí)長(zhǎng),效率低,通過(guò)計(jì)算機(jī)對(duì)視頻包含信息進(jìn)行自動(dòng)檢測(cè)識(shí)別在各種應(yīng)用中有著巨大的實(shí)用價(jià)值。多維視頻偵查系統(tǒng)可以自動(dòng)檢測(cè)識(shí)別視頻中的車輛和人臉,方便用戶查詢感興趣的車輛和人臉信息。
多維視頻偵查系統(tǒng)由客戶端和服務(wù)端組成。在客戶端,用戶可以提交視頻處理任務(wù)由服務(wù)端處理。服務(wù)端對(duì)提交的任務(wù)進(jìn)行處理,將從視頻提取的車輛和人臉信息存儲(chǔ)起來(lái)。用戶可以在客戶端檢索已識(shí)別的車輛車牌和車型信息,也可以輸入人臉圖片和已識(shí)別的人臉信息比較,查找相似度較高的人臉。
客戶端可以上傳離線視頻文件,也可以接入攝像頭(在線視頻),對(duì)離線和在線視頻可以分別提交車輛抓拍和人臉抓拍任務(wù)入數(shù)據(jù)庫(kù)。離線車輛抓拍服務(wù)會(huì)去數(shù)據(jù)庫(kù)獲取離線視頻車輛抓拍任務(wù)并處理,在線車輛抓拍服務(wù)會(huì)去數(shù)據(jù)庫(kù)獲取在線視頻車輛抓拍任務(wù)并處理。類似的,離線人臉抓拍服務(wù)會(huì)去數(shù)據(jù)庫(kù)獲取離線視頻人臉抓拍任務(wù)并處理,在線人臉抓拍服務(wù)會(huì)去數(shù)據(jù)庫(kù)獲取在線視頻人臉抓拍任務(wù)并處理。
離線車輛抓拍服務(wù)和在線車輛抓拍服務(wù)會(huì)抓取視頻中包含車輛的視頻幀并保存為圖片文件(本系統(tǒng)圖片文件存儲(chǔ)在網(wǎng)絡(luò)共享文件夾下),將該圖片的相關(guān)信息存入數(shù)據(jù)庫(kù),并提交車牌識(shí)別任務(wù)入數(shù)據(jù)庫(kù),一張抓拍圖片提交一個(gè)任務(wù)。車牌識(shí)別服務(wù)會(huì)從數(shù)據(jù)庫(kù)中獲取車牌識(shí)別任務(wù),識(shí)別該任務(wù)中包含的圖片中車輛的車牌號(hào)碼,并將車牌信息存入數(shù)據(jù)庫(kù),同時(shí)車牌識(shí)別服務(wù)會(huì)提交車型識(shí)別任務(wù)入數(shù)據(jù)庫(kù),該車型識(shí)別任務(wù)也包含同一張圖片。分發(fā)提取服務(wù)會(huì)從數(shù)據(jù)庫(kù)中獲取車型識(shí)別任務(wù),并將該任務(wù)中包含的圖片存儲(chǔ)路徑通過(guò)Socket通信傳遞給車型識(shí)別服務(wù),車型識(shí)別服務(wù)識(shí)別圖片中的車型信息后將車型信息通過(guò)Socket通信傳遞給車型存儲(chǔ)服務(wù),車型存儲(chǔ)服務(wù)會(huì)將車型信息存入數(shù)據(jù)庫(kù)。離線視頻車輛信息提取任務(wù)指的是一個(gè)離線視頻從提交抓拍任務(wù)到完成車輛抓拍和所有抓拍圖片的車牌車型識(shí)別的全過(guò)程,任務(wù)狀態(tài)包括未進(jìn)行,進(jìn)行中,完成等,任務(wù)進(jìn)度指的是任務(wù)完成度。在線視頻車輛信息提取任務(wù)指的是在線視頻提交抓拍任務(wù)后,進(jìn)行車輛抓拍和車牌車型識(shí)別的過(guò)程,任務(wù)狀態(tài)包括未進(jìn)行,進(jìn)行中等。離線視頻任務(wù)監(jiān)控服務(wù)會(huì)在離線視頻車輛信息提取任務(wù)的處理過(guò)程中更新任務(wù)狀態(tài)和進(jìn)度。離線視頻車輛信息提取任務(wù)的狀態(tài),進(jìn)度和在線視頻車輛信息提取任務(wù)狀態(tài)存儲(chǔ)在數(shù)據(jù)庫(kù)中,由系統(tǒng)各部分維護(hù),并在客戶端展示。
離線人臉抓拍服務(wù)和在線人臉抓拍服務(wù)會(huì)抓取視頻中包含的人臉,每個(gè)人臉都會(huì)保存為一張圖片文件,并提交人臉特征提取任務(wù)入數(shù)據(jù)庫(kù),一個(gè)抓拍人臉圖片提交一個(gè)任務(wù)。分發(fā)提取服務(wù)會(huì)從數(shù)據(jù)庫(kù)獲取人臉特征提取任務(wù),提取人臉的特征并保存為特征文件,人臉的相關(guān)信息會(huì)存入數(shù)據(jù)庫(kù)。離線視頻人臉信息提取任務(wù)指的是一個(gè)離線視頻從提交抓拍任務(wù)到完成人臉抓拍和所有抓拍人臉圖片特征提取的全過(guò)程,任務(wù)狀態(tài)包括未進(jìn)行,進(jìn)行中,完成等,任務(wù)進(jìn)度指的是任務(wù)完成度。在線視頻人臉信息提取任務(wù)指的是在線視頻提交抓拍任務(wù)后,進(jìn)行人臉抓拍和人臉特征提取的過(guò)程,任務(wù)狀態(tài)包括未進(jìn)行,進(jìn)行中等。離線視頻任務(wù)監(jiān)控服務(wù)會(huì)在離線視頻人臉信息提取任務(wù)的處理過(guò)程中更新任務(wù)狀態(tài)和進(jìn)度。離線視頻人臉信息提取任務(wù)的狀態(tài),進(jìn)度和在線視頻的人臉信息提取任務(wù)狀態(tài)存儲(chǔ)在數(shù)據(jù)庫(kù)中,由系統(tǒng)各部分維護(hù),并在客戶端展示。
2.1.1 離線視頻車輛抓拍
客戶端提交離線視頻抓拍任務(wù)前,需要在視頻的一幀圖片上畫出矩形識(shí)別區(qū)域線框,線框一般畫在車道上,橫向覆蓋車道的寬度,一個(gè)車道一個(gè)線框。在提交的離線視頻抓拍任務(wù)信息中包含識(shí)別區(qū)域線框的坐標(biāo)和視頻文件的路徑。離線車輛抓拍服務(wù)從數(shù)據(jù)庫(kù)獲取任務(wù)后,啟動(dòng)一個(gè)進(jìn)程執(zhí)行該任務(wù)。任務(wù)執(zhí)行進(jìn)程解碼該視頻,獲取視頻幀序列,對(duì)視頻幀運(yùn)行運(yùn)動(dòng)檢測(cè)算法。一輛車經(jīng)過(guò)識(shí)別區(qū)域線框,會(huì)被運(yùn)動(dòng)檢測(cè)算法識(shí)別,包含該車輛的一個(gè)視頻幀會(huì)被抓拍保存為圖片文件。包含該幀圖片的車牌識(shí)別任務(wù)會(huì)被提交入數(shù)據(jù)庫(kù)。任務(wù)執(zhí)行進(jìn)程在任務(wù)執(zhí)行過(guò)程中會(huì)更新數(shù)據(jù)庫(kù)該視頻的離線視頻車輛信息提取任務(wù)的進(jìn)度。對(duì)于每個(gè)進(jìn)行車輛信息提取的離線視頻,數(shù)據(jù)庫(kù)中都有該視頻的一條車輛信息提取任務(wù)監(jiān)控記錄用于監(jiān)控該視頻的車輛信息提取工作是否完成,該記錄保存該視頻的抓拍圖片總數(shù)和目前已完成車牌和車型信息提取的圖片數(shù)。在任務(wù)執(zhí)行進(jìn)程開始執(zhí)行任務(wù)時(shí),在數(shù)據(jù)庫(kù)中插入該車輛信息提取任務(wù)監(jiān)控記錄,抓拍圖片總數(shù)設(shè)為-1,當(dāng)前完成車牌和車型信息提取的圖片數(shù)設(shè)為0。在完成對(duì)該視頻所有幀的運(yùn)動(dòng)檢測(cè)后,將抓拍的圖片總數(shù)存入數(shù)據(jù)庫(kù)該離線視頻對(duì)應(yīng)車輛信息提取任務(wù)監(jiān)控記錄。
2.1.2 在線視頻車輛抓拍
客戶端提交在線視頻抓拍任務(wù)前,和離線視頻一樣,也需要在該在線視頻一幀圖片上畫出矩形識(shí)別區(qū)域線框。在線車輛抓拍服務(wù)從數(shù)據(jù)庫(kù)獲取任務(wù)后,啟動(dòng)一個(gè)進(jìn)程執(zhí)行該任務(wù)。任務(wù)執(zhí)行進(jìn)程會(huì)啟動(dòng)兩個(gè)線程,一個(gè)線程負(fù)責(zé)從流媒體服務(wù)器獲取攝像頭視頻幀序列,另一個(gè)線程負(fù)責(zé)運(yùn)行運(yùn)動(dòng)檢測(cè)算法識(shí)別經(jīng)過(guò)識(shí)別區(qū)域線框的車輛。視頻幀獲取線程將獲取的視頻幀數(shù)據(jù)存入緩存,運(yùn)動(dòng)檢測(cè)線程從緩存中讀取視頻幀數(shù)據(jù),并對(duì)視頻幀運(yùn)行運(yùn)動(dòng)檢測(cè)算法,經(jīng)過(guò)線框的車輛會(huì)被識(shí)別,包含該車輛的一個(gè)視頻幀會(huì)被保存為圖片文件。包含該幀圖片的車牌識(shí)別任務(wù)會(huì)被提交入數(shù)據(jù)庫(kù)。
車牌識(shí)別服務(wù)從數(shù)據(jù)庫(kù)獲取車牌識(shí)別任務(wù)后,運(yùn)行車牌識(shí)別算法,識(shí)別該任務(wù)中的圖片中的車輛車牌號(hào)碼,將車牌號(hào)碼,車牌的坐標(biāo)等信息存入數(shù)據(jù)庫(kù),同時(shí)提交對(duì)該圖片的車型識(shí)別任務(wù)入數(shù)據(jù)庫(kù)。運(yùn)動(dòng)檢測(cè)算法抓拍的圖片,有時(shí)不同的圖片會(huì)包含同一輛車,例如兩輛車相隔較近,則前一輛車經(jīng)過(guò)識(shí)別區(qū)域線框被抓拍的圖片中會(huì)包含后面的還未經(jīng)過(guò)識(shí)別區(qū)域線框的車,而后面的車在經(jīng)過(guò)識(shí)別區(qū)域線框時(shí)也會(huì)被運(yùn)動(dòng)檢測(cè)算法抓拍并保存,這樣后面這輛車就會(huì)被兩張圖片所包含。為了不讓后面的車被識(shí)別多次,可以在獲取車牌識(shí)別結(jié)果后,根據(jù)車牌坐標(biāo)增加區(qū)域限制,只存儲(chǔ)靠近識(shí)別區(qū)域線框的車輛,而不存儲(chǔ)遠(yuǎn)離識(shí)別區(qū)域線框的車輛,這樣可以避免車牌被重復(fù)識(shí)別。
分發(fā)提取服務(wù)從數(shù)據(jù)庫(kù)中獲取車型識(shí)別任務(wù)后,將該任務(wù)中的圖片存儲(chǔ)路徑通過(guò)Socket通信傳遞給車型識(shí)別服務(wù),車型識(shí)別服務(wù)對(duì)該圖片運(yùn)行車型識(shí)別算法,將車型識(shí)別結(jié)果和車輛的坐標(biāo)位置通過(guò)Socket通信傳遞給車型存儲(chǔ)服務(wù)。
車型存儲(chǔ)服務(wù)在收到一張圖片的車型識(shí)別結(jié)果后,通過(guò)數(shù)據(jù)庫(kù)查詢找到該張圖片對(duì)應(yīng)的車牌識(shí)別結(jié)果,并取出車牌的坐標(biāo)。對(duì)于車型識(shí)別結(jié)果中的一個(gè)車輛,通過(guò)坐標(biāo)我們知道包含該車輛的矩形框。對(duì)于車牌識(shí)別結(jié)果,通過(guò)坐標(biāo)我們知道包含該車牌的矩形框。如果一個(gè)車輛矩形框包含一個(gè)車牌矩形框,我們認(rèn)為該車型識(shí)別結(jié)果中的車輛和該車牌屬于的車輛是同一輛車,將車型結(jié)果存入數(shù)據(jù)庫(kù)中該車牌對(duì)應(yīng)的車輛記錄中。如果一個(gè)車輛矩形框不包含任何一個(gè)車牌矩形框,則該車型結(jié)果為一輛新車,存入數(shù)據(jù)庫(kù),該車輛只有車型結(jié)果沒有車牌結(jié)果。如果一個(gè)車牌矩形框不被任何車輛矩形框所包含,則該車輛只包含車牌信息,不包含車型信息。對(duì)于離線視頻抓拍的圖片,車型存儲(chǔ)服務(wù)在完成該圖片車型信息存儲(chǔ)后會(huì)更新數(shù)據(jù)庫(kù)該視頻任務(wù)監(jiān)控記錄當(dāng)前完成車牌和車型信息提取圖片數(shù),即將該數(shù)字加一。類似于車牌識(shí)別的區(qū)域限制以避免車牌被重復(fù)識(shí)別,車型存儲(chǔ)服務(wù)在獲得一張圖片的識(shí)別結(jié)果后,也可以根據(jù)車型識(shí)別結(jié)果中車輛的坐標(biāo),只存儲(chǔ)靠近識(shí)別區(qū)域線框的車輛,而不存儲(chǔ)遠(yuǎn)離識(shí)別區(qū)域線框的車輛,以避免車輛被重復(fù)識(shí)別。
對(duì)于離線視頻車輛信息提取任務(wù),離線視頻任務(wù)監(jiān)控服務(wù)會(huì)每隔一段時(shí)間訪問數(shù)據(jù)庫(kù)離線視頻車輛信息提取任務(wù)監(jiān)控記錄,當(dāng)抓拍圖片總數(shù)已不為-1時(shí)(說(shuō)明抓拍已完成),比較抓拍圖片總數(shù)和已完成車牌和車型提取的圖片數(shù),如果兩者相等,則說(shuō)明該離線視頻的車輛信息提取任務(wù)已完成,則修改該任務(wù)的狀態(tài)為已完成,修改任務(wù)的進(jìn)度為100%,并刪除該視頻的離線視頻車輛信息提取任務(wù)監(jiān)控記錄;如果抓拍圖片總數(shù)大于已完成車牌和車型提取的圖片數(shù),則更新該任務(wù)的進(jìn)度;如果在一段較長(zhǎng)時(shí)間里,抓拍圖片總數(shù)和已完成車牌和車型提取的圖片數(shù)仍然不相等,則說(shuō)明該任務(wù)已失敗,則修改該任務(wù)的狀態(tài)為失敗,修改任務(wù)進(jìn)度為0,并刪除該任務(wù)監(jiān)控記錄。
3.1.1 離線視頻人臉抓拍
客戶端提交離線視頻人臉抓拍任務(wù)后,離線視頻人臉抓拍服務(wù)從數(shù)據(jù)庫(kù)獲取任務(wù),啟動(dòng)進(jìn)程執(zhí)行該任務(wù)。任務(wù)進(jìn)程解碼該視頻,獲取視頻幀序列,對(duì)視頻幀運(yùn)行人臉檢測(cè)抓拍算法,視頻幀中的人臉會(huì)被人臉檢測(cè)抓拍算法識(shí)別并從視頻幀中截取保存為圖片文件,包含人臉的視頻幀也會(huì)被保存為背景圖片文件。對(duì)于每一個(gè)被識(shí)別截取的人臉,離線視頻人臉抓拍服務(wù)會(huì)生成一個(gè)人臉特征提取任務(wù),提交入數(shù)據(jù)庫(kù)。任務(wù)執(zhí)行進(jìn)程在任務(wù)執(zhí)行過(guò)程中會(huì)更新數(shù)據(jù)庫(kù)該視頻的離線視頻人臉信息提取任務(wù)的進(jìn)度。對(duì)于每個(gè)進(jìn)行人臉信息提取的離線視頻,數(shù)據(jù)庫(kù)中都有該視頻的一條人臉信息提取任務(wù)監(jiān)控記錄用于監(jiān)控該視頻的人臉信息提取工作是否完成,該記錄保存該視頻的人臉抓拍圖片總數(shù)和目前已完成人臉特征提取的圖片數(shù)。在任務(wù)執(zhí)行進(jìn)程開始執(zhí)行任務(wù)時(shí),在數(shù)據(jù)庫(kù)中插入該人臉信息提取任務(wù)監(jiān)控記錄,人臉抓拍圖片總數(shù)設(shè)為-1,目前已完成人臉特征提取的圖片數(shù)設(shè)為0。在完成對(duì)該視頻所有幀的人臉檢測(cè)抓拍后,將抓拍存儲(chǔ)的人臉圖片總數(shù)存入數(shù)據(jù)庫(kù)該離線視頻對(duì)應(yīng)人臉信息提取任務(wù)監(jiān)控記錄。
3.1.2 在線視頻人臉抓拍
客戶端提交在線視頻人臉抓拍任務(wù)后,在線視頻人臉抓拍服務(wù)從數(shù)據(jù)庫(kù)獲取任務(wù),啟動(dòng)進(jìn)程執(zhí)行該任務(wù)。任務(wù)進(jìn)程啟動(dòng)兩個(gè)線程,一個(gè)線程負(fù)責(zé)從流媒體服務(wù)器獲取攝像頭視頻幀序列,另一個(gè)線程負(fù)責(zé)檢測(cè)識(shí)別視頻幀中的人臉。視頻幀獲取線程將獲取的視頻幀數(shù)據(jù)存入緩存,人臉檢測(cè)線程從緩存中讀取視頻幀,并對(duì)視頻幀運(yùn)行人臉檢測(cè)抓拍算法,視頻中的人臉會(huì)被檢測(cè)識(shí)別并截取保存為圖片文件,包含人臉的視頻幀也會(huì)被保存為背景圖片文件。對(duì)于每一個(gè)被識(shí)別截出的人臉,在線視頻人臉抓拍服務(wù)會(huì)生成一個(gè)人臉特征提取任務(wù),提交存入數(shù)據(jù)庫(kù)。
分發(fā)提取服務(wù)從數(shù)據(jù)庫(kù)獲取人臉特征提取任務(wù),對(duì)任務(wù)中的人臉圖片運(yùn)行人臉特征提取算法,將特征存入特征文件,將特征文件路徑等相關(guān)信息存入數(shù)據(jù)庫(kù)。對(duì)于完成人臉特征提取的離線視頻抓拍截取的人臉圖片,分發(fā)提取服務(wù)會(huì)去數(shù)據(jù)庫(kù)該視頻人臉信息提取任務(wù)監(jiān)控記錄更新當(dāng)前完成人臉特征提取圖片數(shù),即將該數(shù)字加一。
離線視頻任務(wù)監(jiān)控服務(wù)每隔一段時(shí)間會(huì)訪問數(shù)據(jù)庫(kù)離線視頻人臉信息提取任務(wù)監(jiān)控記錄,操作類似于對(duì)離線視頻車輛信息提取任務(wù)監(jiān)控記錄的操作,此處不再贅述。
本文闡述了多維視頻偵查系統(tǒng)車輛和人臉信息檢測(cè)識(shí)別的設(shè)計(jì)和實(shí)現(xiàn)技術(shù),闡明了多個(gè)后臺(tái)服務(wù)協(xié)作完成對(duì)視頻車輛和人臉信息提取的機(jī)制。對(duì)于離線視頻和在線視頻,在任務(wù)執(zhí)行過(guò)程,狀態(tài)維護(hù)等方面都有不同的設(shè)計(jì)以適應(yīng)其各自的特點(diǎn)。該系統(tǒng)在視頻資源極其豐富的今天有著廣泛的應(yīng)用價(jià)值。
[1] 黃凱奇,陳曉棠,康運(yùn)鋒,譚鐵牛.智能視頻監(jiān)控技術(shù)綜述.計(jì)算機(jī)學(xué)報(bào),[J]2015,38(6):1093-1118.
[2] 孫斌.智能視頻監(jiān)控技術(shù)及其主要應(yīng)用.電子技術(shù)與軟件工程,[J]2015(13):107-107.