摘要:針對物體在視頻中的檢測和提取的需求,結(jié)合目前視頻傳輸技術(shù)和經(jīng)典的Canny邊緣檢測算法,設(shè)計并且實現(xiàn)了基于動態(tài)目標(biāo)檢測及提取技術(shù)。在綜合考慮可能需要的實際業(yè)務(wù)生產(chǎn)和檢測的基本需求上,設(shè)計了基于Ubuntu16.04系統(tǒng)下的實時傳輸網(wǎng)絡(luò)并對傳輸之后的視頻做實時檢測以及分析的設(shè)計方案。最后通過海思HI3518e開發(fā)板和OV9712攝像頭,以運動中乒乓球作為對象進行了測試和驗證。結(jié)果證明,此方案設(shè)計具有能夠快速,高效的實現(xiàn)從視頻中動態(tài)提取器件的外觀邊緣的功能。
關(guān)鍵詞:視頻中的檢測和提取;Linux系統(tǒng);HI3518e開發(fā)板;opencv;Canny邊緣檢測;
伴隨視頻行業(yè)的不斷發(fā)展,越來越多的視頻處理相關(guān)的技術(shù)逐漸應(yīng)用在了工業(yè)生成過程中。本設(shè)計基于生產(chǎn)過程中,需要提取產(chǎn)品的外觀輪廓實現(xiàn)生成和檢測功能[1]。不同的廠家陸續(xù)推出了不同的視頻傳輸方案。目前市面上主要流行的是安霸,TI,海思的方案[2]。本設(shè)計決定采用海思的解決方案。該方案具有能外接豐富資源的特性,且方案本身成熟可靠,適合研究和開發(fā)使用。
1 系統(tǒng)總體設(shè)計目標(biāo)
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計
本系統(tǒng)參考了華為海思推薦的設(shè)置,即hi3518e和OV9712攝像頭Sensor,在此基礎(chǔ)上設(shè)計實現(xiàn)了RTSP流媒體服務(wù)器,Ubuntu16.04系統(tǒng),opencv2.4.9,電源部分和網(wǎng)卡芯片模組。系統(tǒng)流程如圖所示。
1.2 系統(tǒng)運行流程
1.2.1視頻采集編碼的流程
下載華為海思官方開發(fā)工具包,可以啟動運行hi3518e芯片內(nèi)部已經(jīng)集成實現(xiàn)了視頻采集壓縮編碼模塊[3]。
1.VI模塊捕獲視頻圖像,可對其做剪切、縮放等處理,并輸出多路不同分辨率的圖像數(shù)據(jù)。
2.VPSS模塊接收VI和解碼模塊發(fā)送過來的圖像,可對圖像進行去噪、增強、銳化等處理,并實現(xiàn)同源輸出多路不同分辨率的圖像數(shù)據(jù)用于編碼、預(yù)覽或抓拍。
3.VI數(shù)據(jù)路線解碼模塊對編碼后的視頻碼流進行解碼,并將解析后的圖像數(shù)據(jù)送VPSS進行圖像處理或直接送VO顯示??蓪?H264/MPEG4/MPEG2 格式的視頻碼流進行解碼。
4.VENC模塊由編碼通道子模塊(VENC)和編碼協(xié)議子模塊(H.264/H.265/JPEG/MJPEG)組成。REGION模塊支持對圖像內(nèi)容進行遮擋和疊加。完成視頻區(qū)域管理之后,圖像被送入具體協(xié)議類型編碼通道,完成視頻編碼,輸出碼流。
1.2.2 視頻傳輸過程
在venc.c文件中嵌入RTSP協(xié)議的代碼,就可以在hi3518e編碼的過程中將h.264碼流通過RTSP協(xié)議封裝打包發(fā)送[4]。由于RTSP協(xié)議是基于文本的實時流傳輸協(xié)議,其使用UDP等協(xié)議實現(xiàn)傳輸。
2 opencv處理視頻
OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。
2.1 Canny算法在程序中實現(xiàn)的步驟
Canny邊緣檢測算子是John F.Canny于1986年提出的一個多級邊緣檢測算法[5]。Canny的目標(biāo)是找到一個最優(yōu)的邊緣檢測算法。雖然Canny算法年代久遠(yuǎn),但可以說它是邊緣檢測的一種標(biāo)準(zhǔn)算法,而且仍在研究中廣泛使用。
Canny邊緣檢測算法在實際應(yīng)用中,可以分為以下6個步驟:
2.2 opencv接收網(wǎng)絡(luò)視頻流
通過了解opencv相關(guān)的API函數(shù),并且查閱資料實現(xiàn)了視頻流的接受和實時分析。首先將視頻流的一幀提取出來,將該幀圖像做為Canny算法的數(shù)據(jù)源,通過Canny算子的運算之后得到圖像并顯示出來。之后清空該幀圖像數(shù)據(jù),取視頻流的新一幀圖像的數(shù)據(jù)填充。再將新的幀圖像重新參與Canny算子運算且重新展示便結(jié)果。如此快速循環(huán)就能實現(xiàn)實時的邊緣檢測同時仍然復(fù)制一路圖像不做算法處理,用來做效果對比。
3 系統(tǒng)實驗和成果展示
本設(shè)計在實驗室內(nèi)測試。在實驗室內(nèi)的的局域網(wǎng)中,將hi3518e開發(fā)板和上位機Ubuntu16.04搭建在一個網(wǎng)關(guān)下。并分別配置了不同的網(wǎng)址。將以運動中乒乓球作為對象的視頻圖像傳入處理函數(shù)。經(jīng)過Canny邊緣檢測算法,顯示處理結(jié)果。如圖3所示。
4 系統(tǒng)實驗總結(jié)
本設(shè)計實現(xiàn)了視頻高清傳輸之外,還兼具視頻實時分析。豐富了同類產(chǎn)品的功能,顯示出hi3518e在視頻編解碼優(yōu)秀的能力。同時使用opencv將Canny邊緣檢測算法加入,實現(xiàn)實時處理和顯示結(jié)果。由于邊緣檢測功能具有較廣的應(yīng)用場景,又將擴大此類產(chǎn)品的功能性,豐富應(yīng)用面,提升競爭力。促進了產(chǎn)業(yè)的發(fā)展和進。
參考文獻:
[1]黃凱奇, 陳曉棠, 康運鋒, et al. 智能視頻監(jiān)控技術(shù)綜述 [J]. 計算機學(xué)報, 2015, 06): 1093-118.
[2] 王瑩. 車用半導(dǎo)體需要兼顧經(jīng)濟和節(jié)能——訪英飛凌公司汽車電子事業(yè)部副總裁Hans Adlkofer [J]. 電子產(chǎn)品世界, 2015, 04): 1-2.
[3] 白雪. 基于圖像處理的目標(biāo)識別及檢測技術(shù) [D]; 蘭州理工大學(xué), 2016.
[4] 晉海軍, 李明偉. 基于Hi3518E的高清網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J]. 電視技術(shù), 2016, (03): 34-37+47.
[5] Canny J. A Computational Approach to Edge Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, PAMI-8(6): 679-698.
作者簡介:張俊赟(1991— ),碩士生,主研控制工程及其嵌入式方向.