,,
(黃岡師范學院 物理與電信學院,湖北 黃岡 438000)
兵乓球追蹤機器人是一種典型的實時機器人,需要通過圖像處理的方法對乒乓球識別和中心定位,主控制器識別乒乓球的位置來控制機器人進行追蹤[1]。
文獻[2]研究了多顏色模型下的乒乓球快速檢測方法,提出了HSV顏色模型中對顏色的篩選,得到了一定的精度,但需要用兩臺攝像機才能實現(xiàn)。文獻[3]設(shè)計了乒乓球機器人,實現(xiàn)了精確控制,速度也較快,但使用的是計算機資源,軟件需要在LabVIEW上進行操作,不能集成的小車上。文獻[4]提出單目攝像頭視覺定位,但需要外界碼盤陀螺儀傳感器信息才能進行準確定位。
本文提出了一種基于Lab顏色特征模型的乒乓球追蹤機器人的設(shè)計方案。系統(tǒng)主要采用Lab顏色特征對乒乓球顏色進行識別,運用質(zhì)心法對乒乓球中心進行定位,采用單目攝像頭進行距離測量,控制云臺模塊保持乒乓球處在圖像中心位置。系統(tǒng)主要包含攝像頭視頻獲取,圖像處理,兵乓球中心檢測與定位,云臺與電機聯(lián)動模塊等,是兵乓球撿球機器人前期所必須的工作。
兵乓球追蹤機器人框架如圖1所示。系統(tǒng)主要由攝像頭模塊、STM32主控制器、STC89C52單片機模塊、云臺模塊、電機控制模塊等部分組成。
圖1 兵乓球追蹤機器人框架圖
攝像頭模塊將采集到的圖片信息送入主控芯片,通過圖像處理算法對兵乓球進行識別與定位,控制云臺模塊保持乒乓球處在圖像中心位置,并把乒乓球位置信息和云臺數(shù)據(jù)通過串口傳送至STC89C52單片機對電機驅(qū)動模塊進行控制,單片機控制小車對乒乓球進行追蹤。
乒乓球追蹤機器人硬件電路主要包括主控制器、攝像頭模塊、云臺舵機模塊、電機控制模塊。主控制器是性能強大的32單片機STM32F765,主頻達216 MHZ,2M flash??捎糜谝曨l處理,在色塊追蹤上,幀率可以到達85~90幀,速度滿足需要。
STM32F765作為主控制器,控制OV7725攝像頭模塊進行圖像采集,采集到的圖像,運用圖像處理算法及中心定位算法,控制云臺進行轉(zhuǎn)動,采用光學原理對乒乓球進行單目測距,主控制器通過串口向STC89C52單片機傳輸云臺角度與測量距離,通過單片機對小車進行控制,達到實時追蹤目的。
硬件電路中電源模塊需要提供12 V,5 V,3 V電壓,攝像頭電路需要通過主控制器硬件IIC總線對OV7725進行控制,電機驅(qū)動電路由STC89C52單片機進行控制運動,云臺模塊由主控制器控制,通過定時器控制占空比來控制兩個舵機進行旋轉(zhuǎn)。
主電源采用4節(jié)18650電池供電,主要為電機驅(qū)動電路和云臺模塊提供大電流,通過ASM-1117-5V電壓芯片將12V轉(zhuǎn)為5V供STC89C52單片機供電,通過BD331A穩(wěn)壓芯片將5V轉(zhuǎn)為3.3V為主控芯片和攝像頭模塊供電。
攝像頭選用 Omni Vision 公司生產(chǎn)的 OV7725 圖像感光元件[5]。攝像頭 OV7725 由8根數(shù)據(jù)線、1根幀同步信號引腳、1根行同步信號引、1根像素同步信號引腳、2根總線寄存器配置信號引腳 SCL 和 SDA、1根工作時鐘信號引腳組成。OV7725是一款低功耗、高性能的VGA(Vide Graphics Array,視頻圖形陳列)COMS圖像傳感器,其在80 FPS下可以處理640×480 8-bit 灰度圖或者320×240 16-bit RGB565彩色圖像。通過IIC總線可以與主控芯片進行通信。
電機驅(qū)動芯片采用L293D芯片進行驅(qū)動,L293D是一款單片集成的高電壓、高電流、4通道電機驅(qū)動,設(shè)計用于連接標準DTL或TTL邏輯電平,驅(qū)動電機工作。
為了簡化為雙橋應(yīng)用,L293D每個通道對都配備了一個使能輸入端。L293D邏輯電路具有獨立的供電輸入,可在更低的電壓下工作。此外,L293D還內(nèi)置了箝位二極管。其驅(qū)動電路如圖2所示。
圖2 電機驅(qū)動電路
云臺模塊由2個微型SG90舵機組成,機械結(jié)構(gòu)采用3D打印件,如圖3所示,實現(xiàn)云臺180度對乒乓球識別。
圖3 云臺模塊
舵機由自由指定旋轉(zhuǎn)角度的電機組成,引出線由兩根電源線,1根控制線組成。電機內(nèi)部有一個周期為20 ms,脈沖寬度為1.5 ms的基準脈沖V0。為了控制舵機,給信號線輸入一個周期也為20 ms,由不同的占空比控制舵機正反轉(zhuǎn)。該占控比經(jīng)過舵機內(nèi)部調(diào)制芯片的處理成為一個偏置電壓V,舵機內(nèi)部首先通過比較ΔV=V-V0,ΔV=V-V0的正負來進行正相或反相轉(zhuǎn)動,同時舵機內(nèi)部帶有平衡電位器,內(nèi)部齒輪轉(zhuǎn)動的同時會帶動電位器變化,電位器會逐漸減小電壓差ΔV,當電機轉(zhuǎn)到指定角度時ΔV剛好為0,舵機停止轉(zhuǎn)動。因此,若想控制舵機轉(zhuǎn)到指定角度,只需要主控制器輸出指定占空比的脈沖信號即可。
SG90舵機的位置等級有1024個,有效角度范圍180°,控制的角度精度是可以達到180/1024°約0.18°。
主控制器通過PID算法對兩個微型舵機進行控制,實現(xiàn)抖動小,精準角度控制。
通過該云臺,控制乒乓球始終處于圖像正中心位置,為后續(xù)定位和測距做準備。
乒乓球追蹤機器人軟件部分主要包含攝像頭采集、乒乓球識別、中心定位、云臺調(diào)整、小車電機控制等幾個部分。其軟件流程如圖4所示。
圖4 軟件總流程圖
該系統(tǒng)采用單攝像進行圖像采集,STM32主控制器對采集的圖片進行分析,設(shè)定顏色閾值對乒乓球進行識別,通過中心定位算法實現(xiàn)乒乓球中心定位,并調(diào)整云臺模塊控制乒乓球處在圖像中央位置,通過光學原理對乒乓球距離測量,主控制器通過串口傳輸云臺角度和距離信息,STC單片機通過云臺角度和測量距離控制小車對乒乓球進行實時追蹤。
RGB顏色模型最為常見,主要用于顯示器等發(fā)光體的顏色顯示,是一種加色法混色模型。通過將紅(R)、綠(G)、藍(B) 三種基本色按其亮度的不同分別劃分為256個等級,進行不同程度的疊加,能夠表示1600多萬種不同的顏色[2]。該模型的顏色表達能力強,但對光照變化較為敏感。表1為強光與弱光條件黃色乒乓球RGB顏色分布范圍。
表1 強光與弱光條件乒乓球RGB顏色分布范圍
Notes: (1) condition of strong light, (2) condition of weak light
Lab顏色模型是一種與設(shè)備無關(guān)的顏色空間,它由三個分量組成,分別是亮度分量L,色調(diào)分量a,b。其中這是L分量取值范圍為[0-100],a分量范圍為-120(綠色)~120(紅色),b分量取值范圍為-120(藍色)~120(黃色)[6]。
在復(fù)雜環(huán)境下,需要對乒乓球進行有效檢測與跟蹤, 本文提出了一種基于Lab顏色模型下的乒乓球檢測與跟蹤方法。結(jié)合乒乓球在LAB顏色空間中的顏色分布特性,可以有效去除光線及其他顏色的干擾,提取出乒乓球區(qū)域。并以圖像中乒乓球區(qū)域的質(zhì)心位置作為乒乓球的定位坐標, 從而實現(xiàn)對乒乓球的實時識別與跟蹤的目的。通過測試分析, 證實了該方法的可行性。
RGB顏色空間與Lab顏色的轉(zhuǎn)換[7],可用如下公式進行:
(1)
(2)
(3)
其中:(xyz)T為過渡空間,Xn,Yn,Zn為白光條件下的刺激值,一般取值分別為:95.047,100.0,108.883。
表2 強光與弱光條件乒乓球Lab顏色分布范圍
Notes:(1) condition of strong light,(2) condition of weak light
利用Lab顏色模型對乒乓球進行檢測并進行分割,設(shè)計乒乓球的RGB 變化范圍,將 RGB 圖像轉(zhuǎn)換到 Lab 顏色模型中,統(tǒng)計出乒乓球在Lab顏色空間中的各分量范圍,記作 ThresholdLab。
通過攝像頭采集的RGB圖像,轉(zhuǎn)化成Lab顏色模型,并得到其各像素點 (x,y)對應(yīng)的Lab各分量值[2], 分別對該像素的L,a,b值進行閾值判斷:
通過閾值判斷,實現(xiàn)對感興趣區(qū)域(Region Of Interests,ROI)進行分割。本文中取值格式為:
Lab=(L-,L+,a-,a+,b-,b+),實驗中取Lab閾值為:Lab=(55, 70, 18, 58, 45, 64)。
分割后的圖像包含的是乒乓球區(qū)域圖像,要對球心進行定位, 則需要獲得乒乓球的中心位置,本文以二值圖像binary中乒乓球區(qū)域的質(zhì)心位置作為乒乓球中心坐標。假設(shè)二值圖像的大小為M*N,則質(zhì)心坐標center=(x,y)的計算方式如下所示[2]:
(4)
(5)
其中,A表示二值圖中,乒乓球面積的大小:
(6)
乒乓球識別及中心定位軟件流程如圖5如示。
圖5 乒乓球中心識別及中心定位軟件流程圖
單攝像頭測距是一種采用圖像處理和光學原理的視覺檢測技術(shù),單攝像頭測距方法通過單個攝像頭獲取目標圖像并結(jié)合攝像頭模型及攝像頭參數(shù)進行視覺測距[9]。與雙目視覺測距相比較,單目視覺測距方法具有硬件要求低,構(gòu)造簡單,成本低等特點。除此之外,單攝像頭測距不需要進行圖像匹配,因此,單攝像頭測距具有更快的測量速度,同時避免了雙攝像頭測距的圖像匹配誤差。目前單攝像頭測距方法主要包括AprilTag法、幾何光學法、幾何相似法。
3.3.1 AprilTag法
AprilTag是一種視覺基準庫,可用于各種視覺定位操作,包括增強現(xiàn)實技術(shù),機器人和相機校準等。通過事先設(shè)定的與二維碼相似的標簽,通過攝像頭可以快速準備的檢測出標志,而AprilTag檢測程序可以計算相對于相機的精確3D位置,方向和id。但需要對目標先進行打標處理。
3.3.2 幾何光學法
幾何光學法使用的是光學折射原理。該方法需要已知攝像頭固有的焦距以及像距。該方法可能因為攝像機鏡頭畸變,而影響測距效果,因此不能達到實時測距的目的。
3.3.3 幾何相似法
根據(jù)幾何相似原理以及透視投影原理,幾何相似法將實際空間中的目標物體映射到攝像機的成像平面,構(gòu)建成一個幾何模型,結(jié)合攝像機的實際物理焦距計算攝像機到目標物體之間的距離[8]。
本系統(tǒng)采用的是單攝像頭的幾何相似法,該方法需要選參照物,利用參照物的大小比例來計算距離。本文通過攝像頭里乒乓球的大小,計算攝像頭與乒乓球之間的距離。
圖6 單攝像頭測距原理
由圖6中左邊的攝像頭里的幾何關(guān)系可得知:
(7)
(8)
所以:
(9)
由圖6中右邊的真實環(huán)境里的幾何關(guān)系得知:
(10)
帶入(9式),可得(結(jié)論公式11):
(11)
Distance=K/Lm
(12)
其中:Lm是長度,Bpix是攝像頭中兵乓球所占的像素(直徑的像素),Rm是球真實的半徑,Apix是固定的像素。公式(12)中K值計算方法,測試時先讓球距離攝像頭10 cm,打印出攝像頭里直徑的像素值,然后相乘,就得到了k的值。
實驗首先通過軟件對乒乓球在強光和弱光下進行Lab值測定,其中強光下Lab=(66,89,-5,48,41,89),弱光下Lab=(51,72,12,38,40,82),其中取值格式為:
Lab=(L-,L+,a-,a+,b-,b+)。通過實驗選擇Lab閾值,即Lab=(55,70,18,58,45,64),實現(xiàn)在背景和不同色塊干擾下對乒乓球ROI區(qū)域進行識別,如圖7所示。
圖7 Lab閾值測試
識別乒乓球區(qū)域后,通過質(zhì)心算法對乒乓球中心進行中心定位,對乒乓球進行準確定位。如圖8所示,通過白色框?qū)S色乒乓球進行識別,用+標簽對中心進行定位。
圖8 中心定位實驗
測試時先讓球距離攝像頭10 cm,運用公式(7)~(12),確定公式(12)的K值,最后用公式(12)測試出如表3所示的數(shù)據(jù)。
從實驗結(jié)果可知,系統(tǒng)能夠從復(fù)雜背景中提取乒乓球,采用質(zhì)心算法對乒乓球進行準確定位,并通過單目攝像頭對目標進行精確測距,最終能夠結(jié)合云臺旋轉(zhuǎn)角度和距離值控制機器人進行追蹤。
表3 單攝像頭測距實驗數(shù)據(jù) mm
充分考慮了乒乓球所固有的顏色特征,在分析各顏色模型的基礎(chǔ)上, 提出了Lab模型下的乒乓球分割算法,結(jié)合Lab顏色模型對復(fù)雜環(huán)境下的乒乓球進行分割操作,以質(zhì)心法對乒乓球進行精確定位。 提出了單攝像頭對乒乓球進行距離測量方法,最后單片機根據(jù)測量數(shù)據(jù)和云臺數(shù)據(jù)對電機進行控制,達到實時跟蹤的目的。實驗表明,該算法處理時間小于100 ms,定位誤差小于30 mm,滿足乒乓球機器人追蹤需要。
圖9 乒乓球追蹤機器人
設(shè)計并實現(xiàn)了顏色乒乓球追蹤機器人如圖9所示,結(jié)合圖像處理技術(shù)、光學原理、單片機技術(shù)、電機驅(qū)動技術(shù),可實現(xiàn)乒乓球識別、中心定位、測距、跟蹤等功能,后續(xù)將加入機械手臂,對小球?qū)崿F(xiàn)精準夾起功能。