許健宏 郭建文* 曹夢華
(1.東莞理工學(xué)院 機(jī)械工程學(xué)院,廣東東莞 523808;2.東莞理工學(xué)院 電子工程與智能化學(xué)院,廣東東莞 523808)
轉(zhuǎn)速測量多采用光電和霍爾編碼器[1],而采用視覺圖像檢測的較少。傳統(tǒng)相機(jī)在轉(zhuǎn)速測量方面存在輸出圖像幀率較低、數(shù)據(jù)較為冗余和延遲高的不足。事件相機(jī)是一種新型的圖像傳感器,相比于傳統(tǒng)相機(jī)的圖像幀輸出,事件相機(jī)只捕獲具有光強(qiáng)變化的像素點(diǎn),即事件,而不輸出完整的圖像幀數(shù)據(jù),具有超輕量數(shù)據(jù)、延遲低、高動(dòng)態(tài)范圍的特點(diǎn)[2]。目前,事件相機(jī)主要應(yīng)用于機(jī)器人視覺SLAM(Simultaneous Localization and Mapping,即時(shí)定位與地圖構(gòu)建)[3]、位姿追蹤[4]、3D重建[5]等。Gallego等[6]利用霍夫線性變換估計(jì)旋翼飛行器機(jī)架的位置和角速度來控制飛行器;Dimitrova等[7]通過獲取邊緣強(qiáng)度來對應(yīng)于相同場景的邊緣事件來估計(jì)事件相機(jī)自身的三軸角速度。上述研究主要是通過事件相機(jī)來估算自身的角速度。本文將事件相機(jī)應(yīng)用于轉(zhuǎn)速測量,提出一種基于事件相機(jī)的轉(zhuǎn)速測量方法,使用濾波和聚類更為簡便的方式來估計(jì)轉(zhuǎn)速,采用步進(jìn)電機(jī)開展實(shí)驗(yàn),在調(diào)速范圍為30~480 r/min,事件相機(jī)測速取得良好效果。
當(dāng)電機(jī)帶動(dòng)標(biāo)記物旋轉(zhuǎn)時(shí),特征信號在事件相機(jī)與傳統(tǒng)CMOS相機(jī)的成像如圖1所示。其中,傳統(tǒng)CMOS相機(jī)成像以圖像幀形式,幀率間隔為毫秒級。事件相機(jī)捕捉具有光強(qiáng)變化的像素點(diǎn),即事件,輸出間隔為1 μs,可認(rèn)為事件流在時(shí)間上為連續(xù)的,克服在高速運(yùn)動(dòng)下,傳統(tǒng)相機(jī)圖像會(huì)出現(xiàn)較大運(yùn)動(dòng)模糊的不足。
圖1 電機(jī)轉(zhuǎn)子在事件相機(jī)下成像
事件相機(jī)輸出的為一系列連續(xù)時(shí)間戳事件流,但是處理方式上大部分還是基于圖像幀進(jìn)行處理的[8],即在較短的固定時(shí)間段內(nèi)獲取一個(gè)事件包,該事件包中包含若干個(gè)事件,每個(gè)事件可表示為
e=<(x,y),timestamp,polarity>,
(1)
根據(jù)采樣定理[9]可知,信號采樣頻率應(yīng)大于信號的最高頻率的2倍,但在實(shí)際過程中應(yīng)采取采樣頻率為信號最高頻率的2.56~4倍。利用事件相機(jī)測量電機(jī)轉(zhuǎn)速受到獲取事件包頻率的限制。本文的檢測轉(zhuǎn)速算法共分為五步:濾波、檢測旋轉(zhuǎn)區(qū)域、檢測旋轉(zhuǎn)向量的極角位置、計(jì)算轉(zhuǎn)速、均值優(yōu)化,如圖2所示。
圖2 轉(zhuǎn)速測量流程
該圖像濾波方法為基于密度的聚類方法(DBSCAN[10]),適用于過濾圖像中的不必要的噪聲數(shù)據(jù)。當(dāng)有一群事件點(diǎn)時(shí),將所有點(diǎn)置于一個(gè)二維面中,用Pi=(xi,yi),i為索引點(diǎn)的指數(shù)。以隨機(jī)點(diǎn)Pj=(xj,yj)為中心,半徑為的圓區(qū)域范圍內(nèi),計(jì)數(shù)包含事件點(diǎn)的數(shù)量為numcurrent。假設(shè)該區(qū)域必須的最小點(diǎn)數(shù)目為nummin,當(dāng)numcurrent≥nummin時(shí),可認(rèn)為是特征信號,保留中心點(diǎn)Pj;當(dāng)numcurrent 檢測過程如圖3所示。 圖3 檢測平均極角 檢測區(qū)域后即可獲得旋轉(zhuǎn)中心O: (2) 其中(xmin,xmax,ymin,ymax)為檢測旋轉(zhuǎn)區(qū)域。我們需要知道每幀圖像中,需要把標(biāo)記物擬合估計(jì)成一條直線,記為旋轉(zhuǎn)向量,以便于后續(xù)計(jì)算分析該直線所處位置角度。 對每個(gè)事件組中的每個(gè)事件采用極坐標(biāo)形式估計(jì)。以旋轉(zhuǎn)中心O為原點(diǎn),因?yàn)樵趫D像坐標(biāo)中的X軸水平向右為正,Y軸豎直向下為正,則極角方向沿X軸順時(shí)針轉(zhuǎn)動(dòng)為正方向。 對每個(gè)事件ei計(jì)算其極徑ρi和極角θi: (3) (4) 記每個(gè)事件組中的事件最大極角為θmax,最小極角為θmin,計(jì)算其運(yùn)動(dòng)模糊殘影角θb: θb=θmax-θmin, (5) (6) 其中ξ為平均極角修正系數(shù),由于運(yùn)動(dòng)模糊殘影角的存在,需要對其進(jìn)行修改。ξ的取值應(yīng)根據(jù)轉(zhuǎn)速高低進(jìn)行取值,在實(shí)驗(yàn)中取ξ=0.1。 要計(jì)算電機(jī)軸的轉(zhuǎn)速,需要先獲取兩次采樣的旋轉(zhuǎn)向量的平均極角之差Δθ。在本文實(shí)驗(yàn)中,采用的標(biāo)記物為雙葉螺旋槳,具有兩邊對稱結(jié)構(gòu),在每一幀圖像中只檢測一邊,所以每次檢測電機(jī)旋轉(zhuǎn)半周的時(shí)間。 (7) 旋轉(zhuǎn)向量檢測過程示意圖如圖4所示。 圖4 檢測旋轉(zhuǎn)向量示意 轉(zhuǎn)過半圈的時(shí)間間隔Δt: Δt=t2-t1, (8) 可求得轉(zhuǎn)速: (9) 其中,t2與t1分別為當(dāng)前以及上一次檢測時(shí)的時(shí)間戳。 由于事件相機(jī)捕捉事件的隨機(jī)性,一次測量的結(jié)果具有很大的偶然隨機(jī)性。在這里,需要對三個(gè)參數(shù)變量取均值。 (10) 其中m為采樣次數(shù),θi為每次采樣的旋轉(zhuǎn)向量夾角。 (11) (12) 其中為累計(jì)計(jì)算半圈時(shí)間的次數(shù),為每次計(jì)算的轉(zhuǎn)速。 實(shí)驗(yàn)中采用樣本電機(jī)為42步進(jìn)電機(jī)[11],以雙葉螺旋槳作為標(biāo)記物,如圖5所示。 圖5 裝置實(shí)物 步進(jìn)電機(jī)可以精確地調(diào)節(jié)脈沖信號周期長短來設(shè)置轉(zhuǎn)速大小,最高轉(zhuǎn)速約為480 r/min。但在速度較高時(shí)步進(jìn)電機(jī)會(huì)產(chǎn)生失步現(xiàn)象,導(dǎo)致轉(zhuǎn)速不精確。使用的事件相機(jī)為動(dòng)態(tài)視覺傳感器系DVS列中的edvs 4337,像素值為(inivation所提供)[12]。 事件相機(jī)輸出的一個(gè)事件組所渲染的圖像并非像傳統(tǒng)相機(jī)輸出完整的圖像,檢測的區(qū)域與特征點(diǎn)的難度會(huì)有所下降,在CPU計(jì)算處理的性能將有所提升。在處理上為連續(xù)的事件流中,仍然是以幀為單位進(jìn)行數(shù)據(jù)處理,即在固定的時(shí)間間隔內(nèi)產(chǎn)生的多個(gè)事件組成一個(gè)事件組,將事件組渲染成一幀圖像。事件相機(jī)輸出的事件流成像效果與事件流速率(即幀率)相關(guān)。當(dāng)速率較高時(shí),在每一幀圖像中的事件越稀疏,產(chǎn)生的運(yùn)動(dòng)模糊殘影也越?。幌喾矗?dāng)事件流速率越低時(shí),每個(gè)事件組所包含的事件個(gè)數(shù)較多,產(chǎn)生的運(yùn)動(dòng)模糊也越大。電機(jī)軸末端帶動(dòng)標(biāo)記物轉(zhuǎn)動(dòng),逆時(shí)針轉(zhuǎn)動(dòng),轉(zhuǎn)速為240 r/min,事件流成像速率分別為30、60、100 Hz,事件相機(jī)獲取每一個(gè)事件組渲染成圖像幀,所得到渲染效果如圖6所示。 圖6 不同事件流速率的渲染效果 在渲染效果中,電機(jī)旋轉(zhuǎn)方向的前半部分(即藍(lán)色像素點(diǎn))polarity=1,后部分事件(即紅色像素點(diǎn)事件)polarity=0。事件流速率為30 Hz時(shí),成像效果較差,具有較大運(yùn)動(dòng)模糊殘影。隨著事件流速率的增大,成像效果逐漸變好,運(yùn)動(dòng)模糊殘影也會(huì)隨著減小。 當(dāng)電機(jī)在不同轉(zhuǎn)速下,事件相機(jī)輸出的事件流渲染成的圖像如圖7所示。其中電機(jī)均為逆時(shí)針方向旋轉(zhuǎn),電機(jī)轉(zhuǎn)速為30~480 r/min,事件流速率為100 Hz。當(dāng)電機(jī)的轉(zhuǎn)速越快時(shí),每幀渲染出的事件點(diǎn)將會(huì)變多,運(yùn)動(dòng)模糊殘影變大,其特征點(diǎn)與旋轉(zhuǎn)向量位置就越難檢測。 圖7 不同轉(zhuǎn)速在事件相機(jī)下的渲染效果 由于事件的輸出具有離散稀疏性,在連續(xù)兩幀中估計(jì)得到平均極角之差存在一定的隨機(jī)性。設(shè)置步進(jìn)電機(jī)轉(zhuǎn)速為30~480 r/min,事件相機(jī)的事件流速率設(shè)置為30、60、100 Hz,步進(jìn)電機(jī)轉(zhuǎn)速設(shè)置為30~480 r/min,每次采樣連續(xù)幀的轉(zhuǎn)角差如圖8的(a)(b)(c)所示。 圖8 不同事件流速率連續(xù)幀轉(zhuǎn)角之差 當(dāng)事件流速率為30 Hz時(shí),電機(jī)轉(zhuǎn)速大于240 r/min時(shí),將會(huì)產(chǎn)生信號失真現(xiàn)象;當(dāng)事件流速率為60 Hz時(shí),電機(jī)轉(zhuǎn)速大于420 r/min時(shí),也將會(huì)產(chǎn)生信號失真現(xiàn)象。當(dāng)事件流速率越大、電機(jī)轉(zhuǎn)速越小,捕獲速度也越快,產(chǎn)生的運(yùn)動(dòng)模糊殘影也越小。當(dāng)電機(jī)轉(zhuǎn)速越高時(shí),平均連續(xù)幀轉(zhuǎn)角差則越大,而采樣頻率固定時(shí),可能會(huì)出現(xiàn)電機(jī)每轉(zhuǎn)過多個(gè)半周時(shí),算法才檢測轉(zhuǎn)過一次半周的時(shí)間間隔,采樣得到的特征信號將會(huì)出現(xiàn)失真現(xiàn)象,無法還原原始轉(zhuǎn)速,估計(jì)的轉(zhuǎn)速誤差范圍也會(huì)變大。 設(shè)置轉(zhuǎn)速從60~480 r/min,得到估計(jì)轉(zhuǎn)速結(jié)果曲線如圖9所示。 圖9 優(yōu)化前轉(zhuǎn)速估計(jì)結(jié)果 利用均值濾波可將誤差較大的無效數(shù)據(jù)點(diǎn)濾去,保留與真實(shí)轉(zhuǎn)速相近的數(shù)據(jù),并將得到的數(shù)據(jù)進(jìn)行平滑化,結(jié)果如圖10所示。 最大誤差百分比如圖11所示。其中,最大誤差百分比為估計(jì)轉(zhuǎn)速與真實(shí)轉(zhuǎn)速的最大差值除以真實(shí)轉(zhuǎn)速。當(dāng)真實(shí)的轉(zhuǎn)速越高時(shí),由于事件相機(jī)輸出的隨機(jī)性,產(chǎn)生的誤差相應(yīng)較大,其值在真實(shí)值附近波動(dòng),估計(jì)轉(zhuǎn)速收斂于一個(gè)區(qū)間范圍內(nèi)。 圖10 優(yōu)化后轉(zhuǎn)速估計(jì)結(jié)果 圖11 估計(jì)轉(zhuǎn)速最大誤差百分比 本文提出一種基于事件相機(jī)對電機(jī)轉(zhuǎn)速測量方案,通過濾波、計(jì)算旋轉(zhuǎn)向量、均值優(yōu)化等步驟計(jì)算出電機(jī)的轉(zhuǎn)速。在不同事件流速率下比較電機(jī)不同轉(zhuǎn)速的連續(xù)幀轉(zhuǎn)角差,當(dāng)事件流流速越低,電機(jī)轉(zhuǎn)速越高時(shí),其運(yùn)動(dòng)模糊殘影角度也越大,易出現(xiàn)信號失真現(xiàn)象。在100 Hz的事件流速率下,估計(jì)的轉(zhuǎn)速范圍在500 r/min以下。當(dāng)采用更高的事件流速率,產(chǎn)生的運(yùn)動(dòng)模糊將減小,能更好地估計(jì)高速旋轉(zhuǎn)物體的轉(zhuǎn)速和運(yùn)動(dòng)情況。2.2 檢測旋轉(zhuǎn)區(qū)域
2.3 檢測旋轉(zhuǎn)向量的極角位置
2.4 計(jì)算轉(zhuǎn)速
2.5 均值優(yōu)化
3 實(shí)驗(yàn)
3.1 事件流圖像
3.2 轉(zhuǎn)角差測量
3.3 轉(zhuǎn)速測量
4 結(jié)語