趙震
(西南科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,四川綿陽,621000)
基于OpenCV的人體安全帽檢測的實現(xiàn)
趙震
(西南科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,四川綿陽,621000)
隨著計算機(jī)視覺檢測技術(shù)的發(fā)展,施工者的安全防護(hù)措施保障可輔助以視覺檢測。人體安全帽檢測系統(tǒng)主要基于opencv的圖形圖像處理技術(shù),對特定的目標(biāo)物體進(jìn)行樣本收集訓(xùn)練后,可一定程度上對施工現(xiàn)場所產(chǎn)生的視頻或者圖片文件進(jìn)行掃描,在人體識別的基礎(chǔ)上,辨別出施工人員安全帽配帶情況一定程度上降低安全隱患。
OpenCV;目標(biāo)檢測;AdaBoost算法;Haar訓(xùn)練
隨著計算機(jī)技術(shù)的發(fā)展,智能化、自動化處理的項目作業(yè)越來越多。實際工程項目中,還存在相當(dāng)一部分高危工程作業(yè)的進(jìn)行需要人工完成。因此,工人的安全防護(hù)措施保障,也隨之成為現(xiàn)代化工程建設(shè)需要解決的問題之一。人體安全帽檢測系統(tǒng)主要基于opencv的圖形圖像處理技術(shù),對施工現(xiàn)場所產(chǎn)生的視頻或者圖片文件進(jìn)行預(yù)處理后,在人體識別的基礎(chǔ)上,辨別出施工人員安全帽配帶情況,在一定程度上將不安全因素降到最低,促進(jìn)項目作業(yè)的正常完成。
OpenCV是一個基于開源發(fā)行的跨平臺計算機(jī)視覺庫,可以運行在Linux,Windows,MacOS操作系統(tǒng)上,對跨平臺支持良好[1]。它主要采用C語言進(jìn)行編寫。它提供了便捷且功能強大的一系列開發(fā)接口,最大程度上集成了視覺檢測和圖形圖像處理兩方面的很多算法。它設(shè)計目標(biāo)是在提高執(zhí)行速度的基礎(chǔ)上,聚焦實時應(yīng)用,與此同時構(gòu)建一個易用的計算機(jī)視覺框架,通過這個框架,程序開發(fā)人員可以方便地設(shè)計出復(fù)雜的計算機(jī)視覺方面的應(yīng)用程序。
Haar級聯(lián)訓(xùn)練[1]是一個基于Haar特征的級聯(lián)分類器的一種訓(xùn)練方法。它是通過之前預(yù)備好的正負(fù)樣本,提取檢測目標(biāo)的Haar特征值,生成若干個弱分類器,然后把這若干個弱分類器串聯(lián)成強分類器,最終使用這個強分類器進(jìn)行目標(biāo)物體的檢測。Haar級聯(lián)訓(xùn)練的結(jié)果是一個xml類型的文件,用戶可以通過加載這個文件來對窗口中的內(nèi)容進(jìn)行掃描。
2.1 Haar-Like特征
Haar級聯(lián)訓(xùn)練基于Haar-Like特征,因類似于Haar小波而得名。矩形特征的值指的圖像上兩個或者兩個以上形狀大小相同的矩形內(nèi)部所有像素灰度值之和的差值。擴(kuò)展之后的 Haar 特征可分為3 類:邊緣特征、線性特征和中心特征(如圖1所示)。將矩形黑色區(qū)域像素灰度值總和與白色區(qū)域像素灰度值總和進(jìn)行差值運算,結(jié)果即為所求特征值,它反映圖像局部的灰度變化[1]。
圖1 Haar-Like特征
2.2 AdaBoost算法
AdaBoost算法是提高弱分類算法準(zhǔn)確度最優(yōu)秀的算法之一,有著堅實的理論基礎(chǔ),在實踐中應(yīng)用廣泛。AdaBoost算法本質(zhì)上是一種弱分類器分類器組合算法,它的主要思想是對同一個樣本訓(xùn)練集合,分多個階段進(jìn)行訓(xùn)練,得到不同的分類器(即弱分類器),然后把這些弱分類器連接起來,組成一個功能更強大的分類器(即強分類器)。 與此同時,AdaBoost 算法的優(yōu)點不僅在于它是一種高效的機(jī)器學(xué)習(xí)算法,還在于這三點: (1) AdaBoost 算法使得 Boosting 從最初的猜想變成一種真正具有實用價值的算法; (2)算法采用的一些新穎的技巧, 如: 打破原有的樣本分布, 也為其他統(tǒng)計學(xué)習(xí)算法的設(shè)計帶來了一些重要啟示; (3)與此相關(guān)的理論研究成果在很大程度上促進(jìn)了集成學(xué)習(xí)的發(fā)展[3]。
3.1 檢測系統(tǒng)方案設(shè)計
綜合考慮檢測的對象,通過對多種的算法的比較,Haar級聯(lián)訓(xùn)練可控性較強,對于檢測目標(biāo)可同過正負(fù)樣本的數(shù)量等進(jìn)行精度的控制,因此,使用Haar級聯(lián)訓(xùn)練對目標(biāo)物體進(jìn)行檢測。
整個系統(tǒng)主要分為三個模塊,樣本的收集與訓(xùn)練,人體檢測,目標(biāo)物體(安全帽)的檢測。樣本的收集我們的采集1500張正樣本,和1000張負(fù)樣本,對其及逆行規(guī)格統(tǒng)一化處理后,使用OpenCV2.4.9自帶的opencv_traincascade.exe進(jìn)行級聯(lián)器的訓(xùn)練。對于最終目標(biāo)物體的檢測,為了降低無關(guān)區(qū)域的檢測,我們第二步使用OpenCV2.4.9自帶的HOGDescriptor::getDefaultP eopleDetector()獲取自帶SVM分類器進(jìn)行人體檢測,在此基礎(chǔ)上獲取檢測到的人體坐標(biāo)區(qū)域,再對檢測到的人體區(qū)域進(jìn)行多窗口最大值化處理,進(jìn)行重復(fù)檢測結(jié)果的歸一化處理。最終,在相應(yīng)的人體區(qū)域內(nèi)進(jìn)行安全帽的檢測。
3.2 檢測系統(tǒng)方案實現(xiàn)
3.2.1 樣本的收集與訓(xùn)練
在樣本的手機(jī)上,我們手機(jī)正樣本數(shù)目2000(含有安全帽的樣本),負(fù)樣本1000(不含負(fù)樣本)。首先使用opencv_ createsamples.exe創(chuàng)建positiveVec.vec,參數(shù)如下:
-info positiveImages.txt -vec positiveVec.vec -w 24 -h 24 -num 2000
之后再使用opencv_traincascade.exe進(jìn)行訓(xùn)練,參數(shù)設(shè)置如下:
-vec positiveVec.vec -bg negetiveimages.txt -numPos 2000 -numNeg 1000 -numStages 15 -w 24 -h 24 -data data -maxFalseAlarmRate 0.5 -minHitRate 0.9999 -mode ALL
訓(xùn)練過程中的截圖如圖2所示,訓(xùn)練后在data文件內(nèi)生成cascade.xml,即為包含當(dāng)前檢測目標(biāo)haar特征值的文件。
圖2 Haar訓(xùn)練截圖
3.2.2 人體檢測與目標(biāo)物體
檢測系統(tǒng)的設(shè)計主要分為三個部分,人體檢測,圖片處理,安全帽的檢測,主要的結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)設(shè)計類圖
3.2.3 檢測結(jié)果展示與分析
系統(tǒng)測試結(jié)果如圖4所示。
圖4 測試結(jié)果展示
分析可得:檢測過程存在一定的誤差,同時,隨著環(huán)境復(fù)雜度的增強,檢測的誤差率有一定的提高。
通過采集訓(xùn)練樣本,人體檢測,目標(biāo)物體檢測,我們在一定誤差的基礎(chǔ)上對人體安全做出了正確的檢測識別。在實際的應(yīng)用過程中,我們可以通過反轉(zhuǎn)思想,在檢測到的人體集合中,篩選掉攜帶安全帽的人員,從而展示出未攜帶安全帽的人員,在一定程度上排除項目作業(yè)過程中的不安全因素。同時,此系統(tǒng)設(shè)計還有許多的不足之處,如在復(fù)雜環(huán)境中對安全帽進(jìn)行檢測時,誤差率有大幅度的提升,針對系統(tǒng)的改進(jìn),擬采用顏色和haar級聯(lián)訓(xùn)練相結(jié)合的方式進(jìn)行識別,并有針對的提高政府樣本的數(shù)量,調(diào)整正負(fù)樣本的比例,可能會在一定程度上提高目標(biāo)物體檢測的正確率。
[1]邵翔,魏國亮,張彬,王建華.基于Raspberry Pi和Haar分類器的AUV目標(biāo)搜尋[J].電子科技,2017,30(2):130-134.
[2]曹瑩,苗啟廣,劉家辰,高 琳.AdaBoost 算法研究進(jìn)展與展望[J].自動化學(xué)報2013,39(6):745-749.
Implementation of human helmet detection based on OpenCV
Zhao Zhen
(School of computer science and technology, Southwest University of Science and Technology, Mianyang Sichuan,621000)
With the development of computer vision detection technology, safety protection measures of the construction can be aided by visual inspection. The human body safety helmet detection system is mainly based on image processing technology of OpenCV, the sample collection training on specific objects, to a certain extent on the construction site of the resulting video or image files were scanned in based on the identification of the human body, to identify the safety helmet with the construction workers to some extent reduce security risks.
OpenCV; target detection; AdaBoost algorithm; Haar training