曹國鋒 殷文慧 陳雅婷 郝孝頡 韓騰昊 羅豐瑞 錢誠
摘要:針對人們?nèi)粘5膶の镄枨?,文章設(shè)計了一款基于視覺目標檢測的室內(nèi)自動尋物系統(tǒng)。該系統(tǒng)主要由視覺信息采集、目標檢測算法和云臺運動控制組成。其中,ESP32讀取OV2640攝像頭拍攝的室內(nèi)場景視頻圖像,PC服務(wù)器接收ESP32上傳的圖像。隨后,文章采用YOLOv5目標檢測算法確定目標物的空間位置,并在圖像中檢測紅外激光發(fā)射器投射的光斑,通過增量式PID算法計算兩者的位移偏差,由串口向STM32F103C8T6主控芯片發(fā)送運動指令,驅(qū)動2臺舵機調(diào)整二自由度云臺位姿,最終使得光斑能夠?qū)誓繕宋?,形成尋物引?dǎo)信號。實際測試結(jié)果驗證了系統(tǒng)的有效性,該設(shè)計為室內(nèi)自動視覺尋物提供了一種新的解決方案。
關(guān)鍵詞:室內(nèi)尋物;目標檢測;二自由度云臺
中圖分類號:TP391文獻標志碼: A
0 引言
在家庭室內(nèi)環(huán)境中,由于各種日常物品的隨意擺放,物品很容易被遺忘在角落。隨著時間的推移,人們經(jīng)常需要花費較多的時間來搜尋這些物品。視頻監(jiān)控在家居生活中有著較為廣泛的應(yīng)用。目前,視頻監(jiān)控的主要功能是以影像的方式記錄家庭室內(nèi)環(huán)境,為家居生活提供安防服務(wù)。但是,家用視頻監(jiān)控裝置的應(yīng)用大多僅停留在視頻的拍攝、存儲層面,視頻數(shù)據(jù)利用率低。隨著目標檢測、跟蹤等計算機視覺技術(shù)的發(fā)展,從視頻數(shù)據(jù)中自動提取人們感興趣的目標物成了可能,這也延拓了家居視頻數(shù)據(jù)的應(yīng)用。針對人們?nèi)粘<揖由钪械膶の镄枨?,本文引入YOLOv5目標檢測算法,結(jié)合視頻采集模塊、云臺運動控制和紅外激光發(fā)射器,構(gòu)建一個可實現(xiàn)室內(nèi)自動尋物的物聯(lián)網(wǎng)系統(tǒng),引導(dǎo)人們快速找到家用日常物品,緩解人們的日常尋物的困擾[1]。
近年來,受益于深度卷積神經(jīng)網(wǎng)絡(luò)研究的深入,目標檢測算法在分類準確性、定位精度等指標上有了極大的提升。其中,F(xiàn)aster RCNN(Faster Region-based Convolutional Neural Network)采用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征[2],對目標候選區(qū)域進行采樣,并使用分類和坐標回歸輸出頭在圖像中確定目標框。該類檢測方法依賴于先驗性的錨框長寬限制,為了降低預(yù)置錨框?qū)δ繕宋锒ㄎ痪鹊挠绊?,YOLO系列目標檢測方法提出將目標定位問題轉(zhuǎn)化為網(wǎng)格回歸問題[3]。其中,YOLOv3將殘差結(jié)構(gòu)引入網(wǎng)絡(luò)設(shè)計,解決了網(wǎng)絡(luò)訓(xùn)練時梯度消失的問題,通過在多尺度特征圖定位目標框,提高了小目標的檢測成功率。YOLOv4引入了Mish激活函數(shù),提高了主干網(wǎng)絡(luò)的非線性特征描述能力。YOLOv5將特征金字塔網(wǎng)絡(luò)和路徑聚合網(wǎng)絡(luò)進行結(jié)合,從而融合了局部特征和全局特征,提高了網(wǎng)絡(luò)對目標外觀的表征能力。此外,YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)豐富,利用網(wǎng)絡(luò)模塊的組合能夠滿足目標快速檢測的需求。
據(jù)此,本文基于YOLOv5目標檢測算法,設(shè)計實現(xiàn)了一款可用于室內(nèi)尋物的云臺系統(tǒng)。通過前端攝像頭采集視頻數(shù)據(jù),該系統(tǒng)在服務(wù)器上部署YOLOv5目標檢測算法檢測室內(nèi)物品。該系統(tǒng)控制云臺調(diào)整位姿使得紅外激光光斑對準目標物,形成目標物定位信號,引導(dǎo)人們快速找到物品,為室內(nèi)尋物提供了一種計算機視覺解決方案[4]。
1 系統(tǒng)總體結(jié)構(gòu)
整個自動視覺尋物系統(tǒng)由視覺信息采集傳輸模塊、視頻圖像處理模塊和運動控制模塊3個部分組成,如圖1所示。視覺信息采集傳輸模塊負責獲取關(guān)于家居環(huán)境的圖像視頻并上傳至PC服務(wù)器。部署在PC服務(wù)器上的視頻圖像處理模塊對上傳的圖像進行目標檢測處理,以此獲得激光發(fā)射器投射的紅色光斑以及待檢測目標物的空間位置。運動控制模塊根據(jù)圖像上檢測所得的紅色光斑與目標物位置之間的距離,驅(qū)動舵機調(diào)整云臺位姿,使紅色光斑對準目標物位置。
系統(tǒng)的總體結(jié)構(gòu)如圖2所示。系統(tǒng)基于ESP32芯片和OV2640攝像頭,設(shè)計實現(xiàn)了視覺信息采集傳輸模塊[5-6]。在PC服務(wù)器上,系統(tǒng)部署了視頻圖像處理軟件,負責接收ESP32芯片上傳的圖像數(shù)據(jù);采用YOLOv5算法在圖像上實施目標檢測,在得到目標檢測結(jié)果后計算激光光斑和目標物在世界坐標系中的位置偏移量;通過串口通信的方式將運動指令發(fā)送到運動控制芯片,由其驅(qū)動舵機調(diào)整云臺位姿,使得光斑能夠投射到目標物上。
1.1 視覺信息采集和傳輸
本系統(tǒng)基于ESP32芯片,設(shè)計實現(xiàn)了一個視覺信息采集、傳輸模塊。其中,ESP32芯片采用5 V電源供電,搭載OV2640攝像頭模組作為外圍設(shè)備用于室內(nèi)場景的拍攝。在視頻圖像數(shù)據(jù)的讀取方面,ESP32芯片通過向OV2640發(fā)送PCLK時鐘信號讀取寄存器內(nèi)的數(shù)據(jù);隨后,將圖像數(shù)據(jù)以JPEG格式進行存儲。在組網(wǎng)方面,ESP32使用自帶的Wi-Fi模塊接入局域網(wǎng),局域網(wǎng)內(nèi)ESP32與服務(wù)器之間建立TCP連接,兩者通過套接字進行通信;ESP32通過ESP32側(cè)的客戶端套接字將視頻數(shù)據(jù)逐幀發(fā)送到PC服務(wù)器;PC服務(wù)器在接收圖像數(shù)據(jù)后向ESP32下發(fā)接收成功響應(yīng),使得ESP32可以繼續(xù)發(fā)送后續(xù)的視頻幀。
1.2 視頻圖像處理
ESP32采集的視頻圖像需要在PC服務(wù)器上完成處理,最終輸出舵機角度移動偏移量。整個視頻圖像處理包括目標檢測算法、紅外激光光斑的檢測和舵機偏移量換算。
目標檢測算法負責在ESP32上傳的視頻圖像上定位用戶感興趣的目標物。為了更高效準確地進行目標檢測,自動尋物系統(tǒng)選用了YOLOv5作為目標檢測算法。YOLOv5是一個在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的目標檢測架構(gòu)和模型,其網(wǎng)絡(luò)結(jié)構(gòu)共分為4個模塊。
(1)輸入模塊:負責接收原始輸入圖像數(shù)據(jù)。
(2)Backbone模塊:作為骨干網(wǎng)絡(luò)部分,負責從輸入圖像中提取特征。這些特征可以是高、中、低3個層次的特征。
(3)Neck模塊:該部分由一系列Neck結(jié)構(gòu)的模塊組成,網(wǎng)絡(luò)特點是特征的尺寸變化,同Neck類似,先減小一半,然后再恢復(fù)到原來的尺寸。這樣既可以減少計算量,又可以增加特征的提取能力。該部分作用是將各層次的特征進行融合,以提取出大、中、小的特征圖。
(4) Head模塊:該部分負責目標框空間位置的確定,對目標的位置坐標參數(shù)進行回歸,生成目標的中心坐標、目標框的寬度和高度以及最終目標分類的置信度。
YOLOv5預(yù)訓(xùn)練模型能夠進行80個類別的目標檢測任務(wù),涵蓋了日常生活用品的類別。據(jù)此,本系統(tǒng)直接使用YOLOv5預(yù)訓(xùn)練模型對視頻圖像進行推理,以此獲得目標物在視頻圖像中的空間位置。
為了給出現(xiàn)實世界中目標物的空間位置信息,以此引導(dǎo)用戶進行尋物,系統(tǒng)采用紅外激光光斑對目標物進行定位,為此需要從圖像中檢測出紅外激光光斑。針對紅外激光光斑的外觀特征,本文使用圖像的通道分量特征設(shè)計了一種光斑快速檢測算法用于定位光斑的位置。
假設(shè)視頻圖像為I,各像素包含紅色、綠色和藍色3個分量,于是該像素可以標識為I(x,y),其中(x,y)表示像素的橫坐標和縱坐標(其中,0≤x≤W-1,0≤y≤H-1,W、H分別表示圖像I的寬度和高度),在此基礎(chǔ)上進一步構(gòu)建特征F(x,y):
其中,I(x,y)[r]、I(x,y)[g]和I(x,y)[b]分別表示該像素的紅色通道、綠色通道和藍色通道分量值。紅外激光光斑在紅色通道上的值比其他2個通道高,白色背景在3個通道上的值均較高;與其他2個通道相比,其他背景色在紅色通道上的值并沒有顯著的提升。因此,在該特征上紅外激光光斑與背景有著明顯的可區(qū)分性。據(jù)此,在全圖上利用式(1)計算所有像素的特征F(x,y),最后選取具有最大特征值像素的位置作為光斑中心位置(xs,ys):
由于特征可分性較高且計算復(fù)雜度低,借助于式(1)和式(2)可以快速地完成光斑定位。
通過上述目標檢測算法和光斑檢測算法,可以獲得關(guān)于目標物和光斑在像素坐標系的空間位置坐標,進一步可以計算得到目標物定位框中心與光斑中心的位置坐標偏移量,具體計算式為:
其中,(xo,yo)表示目標定位框中心在像素坐標系中的坐標值,(xs,ys)表示紅外激光光斑在像素坐標系中的坐標值,(Δx,Δy)表示目標物定位框與光斑中心的坐標偏移量。
因為紅外激光發(fā)射器和攝像頭均由同一架云臺承載,所以根據(jù)偏移量(Δx,Δy)可進一步估算云臺需要旋轉(zhuǎn)的角度偏移量,使得在世界坐標系中光斑能夠?qū)誓繕宋?。在此需要將像素坐標系中的坐標偏移量轉(zhuǎn)化為世界坐標系中的位置坐標偏移量,以此控制云臺調(diào)整位姿。為此,系統(tǒng)將(Δx,Δy)作為比例積分微分(Proportional Integral Differential,PID)算法的輸入,通過整定PID算法參數(shù),使得PID控制器能夠輸出云臺舵機的運動角度值。在具體PID控制算法實現(xiàn)上,本文選擇增量式PID算法來計算云臺旋轉(zhuǎn)的角度偏移量,如式(4)所示。
其中,kp、ki和kd分別表示比例、積分和微分參數(shù),而k時刻誤差偏移量e(k)=[Δx,Δy]T。由式(4)可以輸出云臺旋轉(zhuǎn)的角度偏移量yout。最后,PC服務(wù)器將偏移量yout通過串口下發(fā)給舵機,以此驅(qū)動舵機的旋轉(zhuǎn),當激光光斑落入目標物的定位框后,尋物過程結(jié)束。
1.3 云臺運動控制
攝像頭部件和紅外激光發(fā)射器由一架云臺承載,云臺運動控制模塊包括STM32F103C8T6主控芯片、水平方向數(shù)字舵機DS3115和垂直方向舵機DS3115主要構(gòu)件。該云臺使用2臺數(shù)字舵機構(gòu)建二自由度云臺,其中2臺舵機的運動均由STM32F103C8T6主控芯片進行控制,STM32F103C8T6主控芯片在收到PC服務(wù)器下發(fā)的偏移量yout后,該主控芯片則可驅(qū)動舵機來調(diào)整云臺位姿。
PC服務(wù)器與STM32F103C8T6主控芯片之間采用串口通信方式。其中,CH340芯片起到轉(zhuǎn)接口的作用,將PC主機的USB接口轉(zhuǎn)換為串口。隨后,CH340與STM32F103C8T6主控芯片建立正常的串口通信,STM32F103C8T6主控芯片上PA10引腳設(shè)置為UART功能的RX接收端,PA9引腳設(shè)置為UART功能的TX發(fā)送端。
PC服務(wù)器通過發(fā)送的角度位置數(shù)據(jù)觸發(fā)STM32 F103C8T6主控芯片上的串口中斷。在中斷程序中,將PC服務(wù)器發(fā)送的角度位置值換算為脈沖寬度調(diào)制(Pulse Width Modulation,PWM)的占空比,分別在水平面和垂直面驅(qū)動舵機DS3115調(diào)整位置,以此改變云臺的位姿。
云臺所控制的水平自由度和垂直自由度由2個DS3115舵機來實現(xiàn),其5 V電壓的供電需求依靠STM32F103C8T6主控芯片,垂直舵機控制信號通過STM32F103C8T6主控芯片的PB0引腳輸出得到,水平舵機控制信號則通過STM32F103C8T6主控芯片的PB5引腳輸出得到。云臺頂部通過夾持構(gòu)件固定ESP32芯片、OV2640攝像頭和激光發(fā)射器,以此實現(xiàn)器件在云臺上的承載。
2 系統(tǒng)驗證
為了驗證本系統(tǒng)的尋物功能,在室內(nèi)場景中,本文對該系統(tǒng)進行了測試。實驗選擇小尺寸水瓶作為待搜索的目標物,搜尋過程如圖3所示。在實驗中,光斑被檢測出并以圓圈形式標出,水瓶的空間位置則由矩形定位框標定,兩者之間的直線線段表示距離差。由圖可見:在舵機運動過程中,兩者之間的距離差不斷縮小,當光斑最終停留在水瓶上時,舵機也停止運動,此時光斑形成引導(dǎo)信號。
3 結(jié)語
本文設(shè)計實現(xiàn)了一款適用于室內(nèi)視覺自動尋物云臺系統(tǒng),核心部分由基于ESP32的視覺信息采集傳輸模塊、基于YOLOv5的目標檢測算法模塊和云臺運動控制模塊等組成。系統(tǒng)通過調(diào)整云臺位姿縮小紅外激光光斑與目標物定位框之間的距離,最終使得激光光斑對準目標物,形成尋物引導(dǎo)信號。本文所提設(shè)計方案為室內(nèi)尋物提供了一種視覺解決方案。
參考文獻
[1]李書閣,趙鵬舉,程詩妍,等.基于目標檢測技術(shù)的自動售貨機商品識別系統(tǒng)設(shè)計[J].無線互聯(lián)科技,2023(24):53-56.
[2]REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017(6):1137-1149.
[3]JIANG P, ERGU D J, et al. A review of Yolo algorithm developments[J]. Procedia Computer Science, 2022, 199: 1066-1073.
[4]牛鑫宇,毛鵬軍,段云濤,等.基于YOLOv5s室內(nèi)目標檢測輕量化改進算法研究[J].計算機工程與應(yīng)用,2024(3):109-118.
[5]崔金濤,佟瑞棟.基于ESP32及MQTT協(xié)議的視覺追蹤機器人設(shè)計[J].遼寧師專學(xué)報(自然科學(xué)版),2021(4):67-71.
[6]冷宇.基于ESP32的遠程家居控制系統(tǒng)設(shè)計[J].無線互聯(lián)科技,2022(24):86-88.
(編輯 王雪芬編輯)
Design of automatic system for indoor searching lost items based on visual object detection
Cao? Guofeng, Yin? Wenhui, Chen? Yating, Hao? Xiaojie, Han? Tenghao, Luo? Fengrui, Qian? Cheng*
(Changzhou Institute of Technology, Changzhou 213032, China)
Abstract: Aiming at the daily demand of searching lost items, an automatic system for indoor searching lost items based on visual object detection is designed in this paper. The system is made up of the collection of vision information, algorithm of object detection and the motion control of pan-tilt. Specially, video images of indoor scene are read from OV2640 camera by ESP32. PC server receives images uploaded by ESP32. Spatial locations of a target are determined by YOLOv5 object detection algorithm. Laser spots cast by an infrared laser emitter are detected in images. Position offsets between the locations of the target and the laser spot are computed through incremental PID algorithm, and then the motion commands are send from PC server to STM32F103C8T6 chip through serial port. Two servos are driven so as to regulate the posture of the two-degree-of-freedom pan-tilt. Eventually, the laser spot are thrown to the target, and it turns out to the guiding signals for finding lost items. The effectiveness of the system is validated by the results in the real world. It offers a new solution for indoor searching lost items based on visual object detection.
Key words: indoor searching lost items; object detection; two-degree-of-freedom pan-tilt