李欣寧,陳雪松,李秀瀅,胡浩通,陳星漢
(北京電子科技學(xué)院,北京100070)
在工程建設(shè)過程中,對(duì)于工人的人身安全保護(hù)始終是不容忽視的問題,安全帽的佩戴則是保護(hù)生命安全最基礎(chǔ)的防線。但在實(shí)際施工過程中,由于工地占地龐大、內(nèi)部結(jié)構(gòu)復(fù)雜、人員流動(dòng)量大,單純依靠人力難以實(shí)現(xiàn)對(duì)施工現(xiàn)場(chǎng)工人佩戴安全帽情況的實(shí)時(shí)監(jiān)控。
當(dāng)前,隨著嵌入式技術(shù)和人工智能(AI)技術(shù)的深度融合,端側(cè)人工智能得到了廣泛的發(fā)展,與人工智能相結(jié)合的智慧化監(jiān)測(cè)系統(tǒng)應(yīng)運(yùn)而生。從前瞻產(chǎn)業(yè)研究院整理的數(shù)據(jù)[1]可以看出,“AI+安防”一直是現(xiàn)階段人工智能的主要賦能領(lǐng)域。但是,以施工現(xiàn)場(chǎng)為核心區(qū)域的“AI+安防”卻少之又少。
隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,在為數(shù)不多的高端施工現(xiàn)場(chǎng),也部署了安全帽佩戴檢測(cè)設(shè)備。從整體上看,其監(jiān)測(cè)模式一般有兩種,一種是在工地門口與門禁系統(tǒng)相結(jié)合,對(duì)進(jìn)入工地的人員進(jìn)行正確佩戴安全帽的檢查;另一種是通過工地的監(jiān)控?cái)z像頭進(jìn)行視頻的錄制,并將影像傳送給后臺(tái)的管理服務(wù)器進(jìn)行視頻處理,進(jìn)而檢查安全帽佩戴情況。
以上兩種模式雖然能實(shí)現(xiàn)對(duì)特定施工現(xiàn)場(chǎng)佩戴安全帽情況的監(jiān)測(cè)和報(bào)警,但對(duì)于臨時(shí)搭建的工地來說成本較高,且不可避免地存在監(jiān)控設(shè)備無法部署的死角。
針對(duì)上述情況,本文以端側(cè)AI技術(shù)為依托,提出了一款與手機(jī)端相結(jié)合的安全帽佩戴檢測(cè)應(yīng)用系統(tǒng)。利用手機(jī)這個(gè)人人必備的無線端側(cè)平臺(tái),協(xié)助施工現(xiàn)場(chǎng)的管理人員進(jìn)行流動(dòng)式、定點(diǎn)式、抽查式的安全帽佩戴監(jiān)測(cè)工作。
近年來,隨著深度學(xué)習(xí)技術(shù)的突破,第三次人工智能的浪潮洶涌而來?,F(xiàn)在,通過模擬大腦的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),直接從案例和經(jīng)驗(yàn)中就可以進(jìn)行算法的學(xué)習(xí)[2]。結(jié)合著算力的芯片化,在智能終端上搭載AI技術(shù),已成為業(yè)界共識(shí)。
麒麟980芯片是華為第二代人工智能芯片,更加擅長處理視頻、圖像類的多媒體數(shù)據(jù)。
980芯片性能卓越,內(nèi)含CPU(中央處理器單元)、GPU(圖形處理器單元)和NPU(神經(jīng)網(wǎng)絡(luò)處理器單元)。其中,CPU采用ARM Cortex-A76架構(gòu),屬于多核CPU,由包含了2個(gè)超大核、2個(gè)大核和4個(gè)小核(Cortex-A55)的三檔能效架構(gòu)組成。超大核用于處理急速任務(wù),大核用于處理持續(xù)時(shí)間長的任務(wù),小核則用于日常功能的使用。GPU采用ARM Mali-G76架構(gòu)。在圖像處理加速方面,麒麟980采用了自主研發(fā)的雙ISP4.0技術(shù),使得圖像處理能力顯著提升。NPU采用寒武紀(jì)1 M的人工智能芯片,可顯著提升圖像識(shí)別效率。麒麟980芯片內(nèi)部具體結(jié)構(gòu)如圖1所示。

圖1 麒麟980芯片結(jié)構(gòu)
HiAI2.0是華為于2018年發(fā)布的人工智能開發(fā)引擎,包括了HiAI Foundation芯片能力、HiAI Engine應(yīng)用能力和HiAIService服務(wù)能力。支持在麒麟980(及其以上版本)芯片上,為開發(fā)者提供開放的AI平臺(tái)生態(tài)。
本設(shè)計(jì)使用HiAIFoundation提供的芯側(cè)計(jì)算接口,能夠借助麒麟980芯片中的雙核NPU,提高圖像識(shí)別能力,每分鐘可識(shí)別4 500張圖片。并且支持大量的AI開發(fā)模型和算子,讓手機(jī)AI應(yīng)用程序運(yùn)行更快,體驗(yàn)更好[3]。
另外,本設(shè)計(jì)使用HiAIEngine提供的應(yīng)用能力開放接口[4],借助其人臉檢測(cè)模塊檢測(cè)圖像中的人臉,返回結(jié)果中包含人臉特征點(diǎn)坐標(biāo)、位置坐標(biāo)和人臉數(shù)量等參數(shù)。該功能可作為關(guān)鍵模塊,通過對(duì)人臉特征的提取、分析及位置的定位,廣泛應(yīng)用于各類涉及人臉識(shí)別的場(chǎng)景[5]。此模塊已經(jīng)被華為進(jìn)行了封裝和集成,開發(fā)者使用時(shí)需要去官網(wǎng)下載對(duì)應(yīng)的開發(fā)包。
基于HiAI2.0引擎開發(fā)具有AI能力的安全帽佩戴檢測(cè)系統(tǒng),需要在華為DevEco Studio集成開發(fā)環(huán)境下設(shè)計(jì)實(shí)現(xiàn)軟件,最后將應(yīng)用系統(tǒng)(APP)部署到麒麟980芯片(或以上版本)的手機(jī)中[6]。使用時(shí),APP會(huì)調(diào)用手機(jī)芯片中AI計(jì)算模塊進(jìn)行處理,底層會(huì)使用搭載的NPU加速運(yùn)算,最終利用GPU加速顯示輸出結(jié)果。
華為HiAIFoundation提供的Model Creator功能,可為開發(fā)者提供圖像分類、文本分類、表格分類、物體檢測(cè)等遷移學(xué)習(xí)能力。通過訓(xùn)練深度學(xué)習(xí)模型,讓應(yīng)用者對(duì)圖像、文本等進(jìn)行精確識(shí)別。本課題的圖像識(shí)別功能就是利用HiAI Foundation深度學(xué)習(xí)算法的良好泛化能力,針對(duì)大量圖像數(shù)據(jù)進(jìn)行分鐘級(jí)的學(xué)習(xí)訓(xùn)練,自動(dòng)生成安全帽佩戴圖像分類識(shí)別的AI模型。本系統(tǒng)在圖像分類時(shí)使用到的機(jī)器學(xué)習(xí)模型算法是深度級(jí)可分離卷積神經(jīng)網(wǎng)絡(luò)算法——MobileNetV2。
1.2.1 深度級(jí)可分離卷積神經(jīng)網(wǎng)絡(luò)
MobileNets網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn)在于采用了深度級(jí)可分離卷積單元以達(dá)到模型壓縮的目的,采用這種卷積方式可以減少參數(shù)數(shù)量、提升運(yùn)算速度,是一種小巧而高效的卷積神經(jīng)網(wǎng)絡(luò)。
深度級(jí)可分離卷積算法是將標(biāo)準(zhǔn)卷積運(yùn)算分成兩步:Depthwise convolution和Pointwise convolution。Depthwise convolution與標(biāo)準(zhǔn)卷積運(yùn)算的不同之處在于,標(biāo)準(zhǔn)卷積是將卷積核用在所有的輸入通道上,而Depthwiseconvolution是針對(duì)每個(gè)輸入通道采用不同的卷積核,也就是說一個(gè)卷積核對(duì)應(yīng)一個(gè)輸入通道。Pointwise convolution就是普通卷積,其采用1×1的卷積核[7]。
1.2.2 相比于MobileNetV1的優(yōu)點(diǎn)
MobileNetV2模型與MobileNetV1相比,進(jìn)行了兩方面的改進(jìn):采用倒置殘差結(jié)構(gòu)和線性瓶頸[8]。兩個(gè)模型簡(jiǎn)易對(duì)比如圖2所示。

圖2 MobileNetV2與MobileNetV1對(duì)比
從圖2可以看出,算法模型使用了先“擴(kuò)張”再“壓縮”的方式,即倒置殘差結(jié)構(gòu);將原有的ReLU激活函數(shù)(非線性),改為線性激活函數(shù),即線性瓶頸。
倒置殘差結(jié)構(gòu)與MobileNetV1網(wǎng)絡(luò)結(jié)構(gòu)的不同在于添加了Expansion layer和 Projection layer[9]。Expansion layer的目的是將低維特征映射到高維空間,即維度擴(kuò)展功能。本設(shè)計(jì)采用默認(rèn)參數(shù),即擴(kuò)展6倍。Projection layer可以將高維特征映射到低維空間,即壓縮功能,這樣就形成了一個(gè)中間胖兩頭窄的紡錘形模型結(jié)構(gòu)。MobileNetsV2網(wǎng)絡(luò)結(jié)構(gòu)可以滿足各種圖像識(shí)別的需求。先通過Expansion layer運(yùn)算擴(kuò)展特征維度,之后用深度可分離卷積算法提取特征,最后使用Projection layer運(yùn)算來壓縮數(shù)據(jù),讓網(wǎng)絡(luò)重新變小。
在MobileNetV1中使用的ReLU激活函數(shù)是非線性的激活函數(shù),當(dāng)計(jì)算低維度數(shù)據(jù)時(shí)極有可能會(huì)使得激活空間坍塌,丟失信息,因此,MobileNetV2使用Linear bottlenecks線性變換函數(shù)替換了原本的非線性激活函數(shù),以防止非線性方式破壞太多信息,同時(shí)又可以保證在低維度使用。
本系統(tǒng)基于華為麒麟980芯片的HiAI 2.0平臺(tái)開發(fā),主體設(shè)計(jì)包括兩部分:AI模型訓(xùn)練和應(yīng)用軟件(APP)設(shè)計(jì)。
通過手機(jī)平臺(tái)采集來的圖像數(shù)據(jù),要進(jìn)行AI模型的圖像識(shí)別和分類的處理。而AI模型應(yīng)用之前需要做好兩件事情:一方面是選擇或構(gòu)建合適的AI深度學(xué)習(xí)算法模型;另一方面是在指定數(shù)據(jù)集上進(jìn)行算法模型的參數(shù)訓(xùn)練,以期AI模型具有超強(qiáng)的泛化識(shí)別能力。
2.1.1 數(shù)據(jù)集分析
訓(xùn)練所用到的數(shù)據(jù)集需要先進(jìn)行圖片分類,即打標(biāo)簽。這里需要在每個(gè)分類的目錄下,放入大小合適的、對(duì)應(yīng)類別的清晰圖片。我們將收集來的圖片先進(jìn)行數(shù)據(jù)格式和大小的處理,然后分為戴安全帽(has_helmet)和不戴安全帽(no_helmet)兩類,前者129張,后者103張,均為.jpg格式,數(shù)據(jù)集大小約為24 MB。
2.1.2 模型訓(xùn)練
利用HiAIFoundation中的“模型創(chuàng)建”功能來訓(xùn)練所需的AI模型。首先啟動(dòng)華為DevEco Studio,從以下路徑Tools→EMUIKit→Kit Assistant,打開HiAIFoundation中的Model Creator功能,選擇操作類型為Model Created。將分好類的訓(xùn)練集放入該模塊中,設(shè)置好訓(xùn)練參數(shù),選擇輸出模型的路徑,點(diǎn)擊Create Model開始訓(xùn)練模型。之后,該模塊會(huì)利用遷移學(xué)習(xí)算法在基座分類模型MobileNetV2的基礎(chǔ)上,進(jìn)行安全帽圖像分類模型的參數(shù)訓(xùn)練。模型訓(xùn)練完成后,可以查看模型學(xué)習(xí)的結(jié)果,主要為訓(xùn)練精度、驗(yàn)證精度、學(xué)習(xí)參數(shù)和訓(xùn)練數(shù)據(jù)等信息。最后放入測(cè)試集,進(jìn)行訓(xùn)練模型的測(cè)試,以確定安全帽識(shí)別模型的應(yīng)用效果。本系統(tǒng)的模型參數(shù)和測(cè)試結(jié)果如圖3所示。

圖3 模型參數(shù)和測(cè)試結(jié)果
由返回結(jié)果可知,模型的預(yù)測(cè)正確率達(dá)到了98%以上,精確度可以滿足本設(shè)計(jì)的需求。
將訓(xùn)練好的模型生成API,為模型應(yīng)用到系統(tǒng)作準(zhǔn)備。在模型訓(xùn)練結(jié)果中點(diǎn)擊“Generate API”,DevEco Studio開發(fā)工具就會(huì)將訓(xùn)練模型的依賴包、模型文件、API接口示例源文件自動(dòng)添加到工程的相應(yīng)目錄中,并且在模塊的“build.gradle”文件中自動(dòng)增加依賴信息。之后可以通過調(diào)用圖像分類識(shí)別模型對(duì)應(yīng)的API接口,將圖像分類識(shí)別的能力集成到APP中。
2.2.1 系統(tǒng)的邏輯流程
APP的功能邏輯流程如圖4所示。當(dāng)用戶采集圖像后,系統(tǒng)先判斷圖像中是否存在人臉,如果不存在人臉,則輸出“沒有人臉(no get face)”;如果存在人臉,則先框出人臉,再判斷圖像中人臉是否佩戴安全帽,對(duì)應(yīng)輸出結(jié)果:“戴安全帽(has_helmet)”或“沒戴安全帽(no_helmet)”,并顯示結(jié)果準(zhǔn)確率。

圖4 APP的功能邏輯流程
2.2.2 系統(tǒng)的GUI界面布局
系統(tǒng)界面上設(shè)計(jì)了“SELECTAN IMAGE”和“TAKEA PHOTO”兩個(gè)按鈕,分別用于實(shí)現(xiàn)從圖庫中選擇圖像和拍照獲取圖像兩種操作:一個(gè)圖像顯示框,用于顯示采集或選取的圖像;一個(gè)文本顯示框,用于以文本形式顯示檢測(cè)結(jié)果,即說明是否有人臉、是否戴安全帽。APP的GUI布局如圖5所示。

圖5 APP的GUI布局
2.2.3 安全帽檢測(cè)實(shí)現(xiàn)
參照華為官方發(fā)布的人臉檢測(cè)開發(fā)指南和DevEco Studio使用指南,向開發(fā)工程文件中添加需要的軟件依賴包,并通過調(diào)用HiAI的API接口函數(shù)和相關(guān)類函數(shù),實(shí)現(xiàn)人臉檢測(cè)和圖像分類的功能。APP程序基本流程如圖6所示。

圖6 程序流程圖
根據(jù)流程圖,首先調(diào)用requestPermissions()函數(shù)進(jìn)行權(quán)限申請(qǐng),包括圖庫、相機(jī)的使用權(quán)限;獲得權(quán)限后,按照華為HiAI的要求,將應(yīng)用VisionBase靜態(tài)類進(jìn)行初始化,得到服務(wù)連接的結(jié)果,為之后調(diào)用人臉檢測(cè)API做準(zhǔn)備。
調(diào)用onActivityResult()函數(shù)獲取圖像,并將其轉(zhuǎn)換成位圖的形式保存在變量中;之后進(jìn)入FaceDetectTask進(jìn)程,調(diào)用人臉檢測(cè)API,實(shí)現(xiàn)detect接口,使用檢測(cè)算法獲取結(jié)果。同時(shí),使用ImageClassifierDetector類調(diào)用訓(xùn)練好的AI模型,執(zhí)行模型預(yù)處理、申請(qǐng)CPU、模型裝載、圖像識(shí)別、模型卸載和釋放CPU的功能,最后將檢測(cè)結(jié)果返回。
最后,onTaskCompleted()函數(shù)會(huì)對(duì)結(jié)果進(jìn)行處理和輸出。當(dāng)返回結(jié)果表明“沒有人臉”時(shí),會(huì)在界面下端的文本框中輸出“not get face”。
當(dāng)返回結(jié)果表明“有人臉”時(shí),根據(jù)圖像分類的結(jié)果,在GUI界面的文本框中輸出“no_helmet”或“has_helmet”以及預(yù)測(cè)正確率,同時(shí)會(huì)用綠色矩形框框出圖像中人臉的部分。
系統(tǒng)的運(yùn)行效果如圖7所示,會(huì)有3種輸出結(jié)果,分別為“has_helmet+正確率”“no_helmet+正確率”和“not get face”。從圖7中可以看到系統(tǒng)檢測(cè)安全帽佩戴情況的3種輸出結(jié)果的效果,系統(tǒng)能正確運(yùn)行。
為了測(cè)試APP的準(zhǔn)確率,這里選取8張戴安全帽與8張不戴安全帽的圖片。測(cè)試結(jié)果如表1所示。
由測(cè)試結(jié)果的標(biāo)簽值可知,該APP能準(zhǔn)確分辨出安全帽佩戴情況,預(yù)測(cè)正確率在90%以上。
經(jīng)過大量測(cè)試研究,影響預(yù)測(cè)正確率的因素主要有以下3方面:①圖像場(chǎng)景的復(fù)雜程度。場(chǎng)景越復(fù)雜,預(yù)測(cè)正確率越低,因此在較為簡(jiǎn)單的場(chǎng)景中能提高預(yù)測(cè)正確率。②圖像中的人臉占比。圖像中的人臉占比越大,預(yù)測(cè)正確率越高,因此采集圖像時(shí)應(yīng)盡可能提高人臉占比。③訓(xùn)練算法模型所用到的數(shù)據(jù)集大小。訓(xùn)練所用的數(shù)據(jù)集越大,預(yù)測(cè)正確率越高,因此在訓(xùn)練AI模型時(shí)應(yīng)盡可能擴(kuò)大數(shù)據(jù)集。

圖7 系統(tǒng)運(yùn)行結(jié)果

表1 正確率測(cè)試結(jié)果
本文介紹了基于麒麟980芯片的安全帽檢測(cè)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方案。系統(tǒng)設(shè)計(jì)重點(diǎn)部分為:人臉檢測(cè)模塊與安全帽圖像分類模塊。人臉檢測(cè)模塊調(diào)用華為HiAI中的Huawei HiAIEngine接口實(shí)現(xiàn)。圖像分類模塊是利用DevEco Studio平臺(tái)的遷移學(xué)習(xí)工具,訓(xùn)練生成圖像分類模型,并封裝成API接口實(shí)現(xiàn)。本系統(tǒng)充分利用了華為HiAI引擎和麒麟980芯片的優(yōu)點(diǎn),全面提升了檢測(cè)速度和準(zhǔn)確率。系統(tǒng)方案的實(shí)施成本低、可行性強(qiáng),為解決臨時(shí)工地中安全帽佩戴的監(jiān)管問題提供了實(shí)用的解決方案。