伍煜亮,黃上瑤,宋景華,劉洋宏,黃承昌
(廣西大學,廣西 南寧 530000)
在我們生活環境的周邊總有些對人類活動會造成某些影響的“危險區域”,比如,大樓拆遷地、高壓變電房、加油站、火車道口、水深的河道河塘;也有些對一般人的活動是有所限制的地方,例如,軍事要地、重要倉庫(危險品倉庫)等。在這些地方,人類的活動如不注意,便會造成嚴重的后果。以往,人們主要是在這些場所或區域的外面懸掛警示牌或警示標志,從而提醒他人給予注意。這些警示牌或警示標志往往因為表現形式不夠明顯和直觀,而導致人們無意識的進入危險區域,進而導致一些預料之外的意外,這些意外往往會對企業和個人造成巨大的損失。
目前,已開發的民用產品有門禁報警器、煙霧(火災)報警器、煤氣報警器、汽車防盜報警器等,應用的范圍涉及居民小區、辦公大樓、工廠企業、各類倉庫、銀行、賓館、寫字樓、各種汽車、私人寓所等,而在現代生活危險區域中,因為無人監控設備,設備自行運行,如果有無關人員不小心進到危險區域中,甚至是靠近儀器所在的禁忌區域,常常會發生難以想象的意外。因此,基于OpenMV的禁入區域異常報警系統變成了文章所要考慮的實用創新系統。
現在生活中許多危險區域大都還是使用警示標志和人力監管來防止危險發生,人總會有疏忽的時候,因此,我們利用OpenMV實時偵察判斷是否有人進入“危險區域”。如果進入則給予保安人員與在“危險區域”的人警告,如果是高危險的工業設備就要在必要時進行斷電,防止意外發生。
系統開始工作,正常情況下,OpenMV視覺傳感器用于監控工業設備工作情況,當OoenMV動態識別檢測到圖像中的變化時,開始進行人體識別以此來確定有人體已經進入識別區域附近,此時將人體以方形框高亮標記不斷與劃分的危險區域進行位置判斷,直到人體進入設定的危險區域時,觸發報警器模塊使報警器對誤入人員進行警告,并且通過Wi-Fi將警報信息傳入遠端警告相關人員,甚者若識別出的人體進入極其危險區域(非常靠近工業高危險機器),則執行切斷電機工作電源操作防止意外發生,此過程中視覺傳感器一直識別人體并進行距離判斷,直到人走出危險區域,停止報警和遠端信號發送。此外若是工作人員需控制設備而進入危險區域并且靠近高危險工業機器時,可利用遙控器關閉報警系統,防止機器緊急停止。系統實時工作如圖1所示。

圖1 系統實時工作框圖
實現過程如下:首先通過OpenMV的幀差異來對監視區域進行動態監測,以此來初步判斷是否有移動的物體進入監視區域,將前后拍攝的兩個圖像彼此按像素取絕對值。例:對于每個顏色通道而言,將每個像素替換為ABS(this.pixel-image.pixel),利 用image.difference(image[,mask=None])函數,image可以是圖像對象,未壓縮圖像文件的路徑(bmp/pgm/ppm),也可以是標量值。如果標量值,該值可以是RGB888元組或基礎像素值(例如,灰度圖像的8位灰度級或RGB圖像的字節反轉RGB565值)。mask是另一個用作繪圖操作的像素級掩碼的圖像。掩碼應該是一個只有黑色或白色像素的圖像,并且應該與你正在繪制的image大小相同。僅掩碼中設置的像素被修改。然后需要計算直方圖中每個顏色通道的平均值、中值、眾值、標準差、最小值、最大值、下四分值和上四分值,使用histogram.get_statistics()函數,并返回一個statistics對象。在OpenMV IDE中編寫如圖2代碼來實現:

圖2
在動態檢測后,可以初步判斷有移動物體進入了監視區域,此時我們就要在特定的圖像區域進行人體識別,并在圖像中標記出人體。OPenMV可以借助卷積神經網絡,完成簡單的機器學習,目前,OPenMV只提供Caffe模型到network網絡的轉換,通過Caffe框架學習,我們最終可以得到******.network的網絡庫文件,訓練網絡的主要步驟如下:
①配置環境,安裝Caffe;
②采集數據集;
③訓練網絡;
④量化模型;
⑤將模型轉換為二進制格式;
⑥在OPenMV上部署模型;
⑦運行網絡;
⑧故障排除。
之后通過OpenMV獲得圖像,然后對圖像進行特征的識別,然后將他與神經網絡的模型進行對比,來得到一個相似度,通過這個相似度來判斷是否屬于數據集中的人體模型,來達到人體識別的應用。這里我們采用神經網絡區域中心識別的算法,運行前,我們在OpenMV IDE->工具->機器視覺->CNN網絡庫中,將相應的神經網絡文件保存到OpenMV的SD內存卡中,對應的特定區域人體識別代碼:


綜上所述,此系統將單片機平臺、攝像頭、報警終端等系統設計整合,以及運用算法與自己編寫的判斷程序構建成一個基于機器視覺算法的警報系統。基于機器視覺算法的攝像頭裝置設計,用戶與企業利用原有的攝像頭加上這套系統,實現對已有監控再利用。此外,用戶與企業可根據自己需求自行調整危險區域。