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