伍煜亮,黃上瑤,宋景華,劉洋宏,黃承昌
(廣西大學(xué),廣西 南寧 530000)
在我們生活環(huán)境的周邊總有些對人類活動(dòng)會(huì)造成某些影響的“危險(xiǎn)區(qū)域”,比如,大樓拆遷地、高壓變電房、加油站、火車道口、水深的河道河塘;也有些對一般人的活動(dòng)是有所限制的地方,例如,軍事要地、重要倉庫(危險(xiǎn)品倉庫)等。在這些地方,人類的活動(dòng)如不注意,便會(huì)造成嚴(yán)重的后果。以往,人們主要是在這些場所或區(qū)域的外面懸掛警示牌或警示標(biāo)志,從而提醒他人給予注意。這些警示牌或警示標(biāo)志往往因?yàn)楸憩F(xiàn)形式不夠明顯和直觀,而導(dǎo)致人們無意識(shí)的進(jìn)入危險(xiǎn)區(qū)域,進(jìn)而導(dǎo)致一些預(yù)料之外的意外,這些意外往往會(huì)對企業(yè)和個(gè)人造成巨大的損失。
目前,已開發(fā)的民用產(chǎn)品有門禁報(bào)警器、煙霧(火災(zāi))報(bào)警器、煤氣報(bào)警器、汽車防盜報(bào)警器等,應(yīng)用的范圍涉及居民小區(qū)、辦公大樓、工廠企業(yè)、各類倉庫、銀行、賓館、寫字樓、各種汽車、私人寓所等,而在現(xiàn)代生活危險(xiǎn)區(qū)域中,因?yàn)闊o人監(jiān)控設(shè)備,設(shè)備自行運(yùn)行,如果有無關(guān)人員不小心進(jìn)到危險(xiǎn)區(qū)域中,甚至是靠近儀器所在的禁忌區(qū)域,常常會(huì)發(fā)生難以想象的意外。因此,基于OpenMV的禁入?yún)^(qū)域異常報(bào)警系統(tǒng)變成了文章所要考慮的實(shí)用創(chuàng)新系統(tǒng)。
現(xiàn)在生活中許多危險(xiǎn)區(qū)域大都還是使用警示標(biāo)志和人力監(jiān)管來防止危險(xiǎn)發(fā)生,人總會(huì)有疏忽的時(shí)候,因此,我們利用OpenMV實(shí)時(shí)偵察判斷是否有人進(jìn)入“危險(xiǎn)區(qū)域”。如果進(jìn)入則給予保安人員與在“危險(xiǎn)區(qū)域”的人警告,如果是高危險(xiǎn)的工業(yè)設(shè)備就要在必要時(shí)進(jìn)行斷電,防止意外發(fā)生。
系統(tǒng)開始工作,正常情況下,OpenMV視覺傳感器用于監(jiān)控工業(yè)設(shè)備工作情況,當(dāng)OoenMV動(dòng)態(tài)識(shí)別檢測到圖像中的變化時(shí),開始進(jìn)行人體識(shí)別以此來確定有人體已經(jīng)進(jìn)入識(shí)別區(qū)域附近,此時(shí)將人體以方形框高亮標(biāo)記不斷與劃分的危險(xiǎn)區(qū)域進(jìn)行位置判斷,直到人體進(jìn)入設(shè)定的危險(xiǎn)區(qū)域時(shí),觸發(fā)報(bào)警器模塊使報(bào)警器對誤入人員進(jìn)行警告,并且通過Wi-Fi將警報(bào)信息傳入遠(yuǎn)端警告相關(guān)人員,甚者若識(shí)別出的人體進(jìn)入極其危險(xiǎn)區(qū)域(非??拷I(yè)高危險(xiǎn)機(jī)器),則執(zhí)行切斷電機(jī)工作電源操作防止意外發(fā)生,此過程中視覺傳感器一直識(shí)別人體并進(jìn)行距離判斷,直到人走出危險(xiǎn)區(qū)域,停止報(bào)警和遠(yuǎn)端信號(hào)發(fā)送。此外若是工作人員需控制設(shè)備而進(jìn)入危險(xiǎn)區(qū)域并且靠近高危險(xiǎn)工業(yè)機(jī)器時(shí),可利用遙控器關(guān)閉報(bào)警系統(tǒng),防止機(jī)器緊急停止。系統(tǒng)實(shí)時(shí)工作如圖1所示。
圖1 系統(tǒng)實(shí)時(shí)工作框圖
實(shí)現(xiàn)過程如下:首先通過OpenMV的幀差異來對監(jiān)視區(qū)域進(jìn)行動(dòng)態(tài)監(jiān)測,以此來初步判斷是否有移動(dòng)的物體進(jìn)入監(jiān)視區(qū)域,將前后拍攝的兩個(gè)圖像彼此按像素取絕對值。例:對于每個(gè)顏色通道而言,將每個(gè)像素替換為ABS(this.pixel-image.pixel),利 用image.difference(image[,mask=None])函數(shù),image可以是圖像對象,未壓縮圖像文件的路徑(bmp/pgm/ppm),也可以是標(biāo)量值。如果標(biāo)量值,該值可以是RGB888元組或基礎(chǔ)像素值(例如,灰度圖像的8位灰度級或RGB圖像的字節(jié)反轉(zhuǎn)RGB565值)。mask是另一個(gè)用作繪圖操作的像素級掩碼的圖像。掩碼應(yīng)該是一個(gè)只有黑色或白色像素的圖像,并且應(yīng)該與你正在繪制的image大小相同。僅掩碼中設(shè)置的像素被修改。然后需要計(jì)算直方圖中每個(gè)顏色通道的平均值、中值、眾值、標(biāo)準(zhǔn)差、最小值、最大值、下四分值和上四分值,使用histogram.get_statistics()函數(shù),并返回一個(gè)statistics對象。在OpenMV IDE中編寫如圖2代碼來實(shí)現(xiàn):
圖2
在動(dòng)態(tài)檢測后,可以初步判斷有移動(dòng)物體進(jìn)入了監(jiān)視區(qū)域,此時(shí)我們就要在特定的圖像區(qū)域進(jìn)行人體識(shí)別,并在圖像中標(biāo)記出人體。OPenMV可以借助卷積神經(jīng)網(wǎng)絡(luò),完成簡單的機(jī)器學(xué)習(xí),目前,OPenMV只提供Caffe模型到network網(wǎng)絡(luò)的轉(zhuǎn)換,通過Caffe框架學(xué)習(xí),我們最終可以得到******.network的網(wǎng)絡(luò)庫文件,訓(xùn)練網(wǎng)絡(luò)的主要步驟如下:
①配置環(huán)境,安裝Caffe;
②采集數(shù)據(jù)集;
③訓(xùn)練網(wǎng)絡(luò);
④量化模型;
⑤將模型轉(zhuǎn)換為二進(jìn)制格式;
⑥在OPenMV上部署模型;
⑦運(yùn)行網(wǎng)絡(luò);
⑧故障排除。
之后通過OpenMV獲得圖像,然后對圖像進(jìn)行特征的識(shí)別,然后將他與神經(jīng)網(wǎng)絡(luò)的模型進(jìn)行對比,來得到一個(gè)相似度,通過這個(gè)相似度來判斷是否屬于數(shù)據(jù)集中的人體模型,來達(dá)到人體識(shí)別的應(yīng)用。這里我們采用神經(jīng)網(wǎng)絡(luò)區(qū)域中心識(shí)別的算法,運(yùn)行前,我們在OpenMV IDE->工具->機(jī)器視覺->CNN網(wǎng)絡(luò)庫中,將相應(yīng)的神經(jīng)網(wǎng)絡(luò)文件保存到OpenMV的SD內(nèi)存卡中,對應(yīng)的特定區(qū)域人體識(shí)別代碼:
綜上所述,此系統(tǒng)將單片機(jī)平臺(tái)、攝像頭、報(bào)警終端等系統(tǒng)設(shè)計(jì)整合,以及運(yùn)用算法與自己編寫的判斷程序構(gòu)建成一個(gè)基于機(jī)器視覺算法的警報(bào)系統(tǒng)。基于機(jī)器視覺算法的攝像頭裝置設(shè)計(jì),用戶與企業(yè)利用原有的攝像頭加上這套系統(tǒng),實(shí)現(xiàn)對已有監(jiān)控再利用。此外,用戶與企業(yè)可根據(jù)自己需求自行調(diào)整危險(xiǎn)區(qū)域。