陳文藝 楊 勇 楊 輝
(1.西安郵電大學現代郵政學院 西安 710061)(2.西安郵電大學電子工程學院 西安 710121)
光學直線編碼器一般由光源、條碼尺、光電檢測單元和信號處理電路幾部分組成[1]。在條碼尺編碼方式上,絕對式編碼器采用傳統周期二進制編碼是目前應用較多的一種編碼方式,如循環碼、反射碼、格雷碼等,這類編碼的特點是編碼位數和碼道數成正比[2],為減少絕對式編碼器的碼道數,提出了各種改進的2 碼道或3 碼道編碼方法,如矩陣式編碼、準絕對式編碼、游標式編碼、偽隨機碼編碼、M 碼編碼等。現在編碼的研究集中在單碼道編碼方式上,如簡碼編碼、位移連續碼等。條碼尺信號檢測和處理方式與條碼尺的編碼方式緊密相關,主要有直接光電檢測、莫爾條紋細分和圖像檢測三類。隨著圖像傳感器和集成電路技術的發展,光學直線編碼器采用了圖像檢測技術[3~4]。基于圖像傳感器的光學直線編碼器由于直接對編碼圖像進行數字化,并用數字信號處理技術提取條碼位置信息,極大地提高了檢測精度和可靠性[5~6]。
通常條碼尺難免會受到污損,采用一般的條碼圖像處理算法和條碼解碼技術難于正確檢測條碼位置和編碼,特別是對于m 序列這種連續編碼條碼,雖然有連續編碼定位的優點,但沒有條碼的起始和終止定位標志,少量條碼檢測錯誤就可能導致編碼定位出錯。因此,本文提出一種基于圖像處理技術的抗污損、大距離和測量精度高的絕對式條碼尺位置檢測技術。在實驗了大量算法思路,結合單碼道絕對位置條碼尺特點,提出了一種抗條碼尺污損的新的圖像處理算法,實現了條碼尺位置的可靠檢測。
條碼尺包括寬、窄兩種碼元,寬碼和窄碼的寬度(周期)相同,實際編碼波形信號幅度反應圖像傳感器檢測到的條碼尺圖像的光照強度,H 和L 對應兩種具有強對比的光強值。為方便解碼并降低誤碼率,兩種碼元要易于區別,因此,在一個編碼單元周期T 內,寬、窄碼波形占空比分別為2/3 和1/3,且波形呈現偶對稱,如圖1所示。

圖1 編碼單元:(a)寬碼;(b)窄碼
m 序列由帶有反饋的線性移位寄存器產生,在移位脈沖作用下,移位寄存器各級狀態實時更新,其最后一級輸出碼元序列[7]。如圖2 所示,移位寄存器狀態用{ai=0,1;i=0,1,…,13}表示,{ci=0,1;i=0,1,…,14}控制反饋的通、斷。14 階m 序列的本原多項式為f(x)=x14+x10+x6+x+1,可以生成(214-1)個不全為0 的連續編碼值,首尾相接即可得到絕對位置的編碼序列。m 序列階數和碼元周期決定條碼尺的長度,其可以制作很長。

圖2 14階m序列產生原理框圖
根據m序列和碼元周期構造條碼光柵尺,選取初始狀態10000000000000,生成的m 序列部分碼元 1001111011011011001111100110110010011111 01001111,構造的條碼尺圖像如圖3 所示,條碼尺圖像信號波形的高、低信號幅度分別對應條碼柵尺圖像的白色和黑色條碼,可以通過圖像傳感器獲取條碼尺的圖像信號。

圖3 周期T=3mm、總長49.149m局部條碼尺圖形
圖像采集系統獲取的一維圖像信號含有噪聲,對圖像信號先進行灰度形態學濾波,去除噪聲,濾波后的信號im_gmf 通過最大值、最小值濾波降低圖像椒鹽噪聲,均值濾波采用領域平均方法使得信號波形變的模糊平滑,處理的結果作為自適應閾值二值化的閾值im_t,再使用此閾值對形態學濾波后的圖像信號進行二值化。自適應閾值二值化圖像可以保護圖像的細節信息,有助于污損條碼定位。二值化圖像im_bin 是1bit 信號,更易于處理,同時有效地減小了光照不均對條碼識別的影響。

Goertzel算法迭代公式:

能量重心公式:

f(n)是具有n個采樣值的二值化圖像信號,通過式(2)、(3)和(4)計算出實數Sk(n)、頻率項的實部Re 和虛部Im,Pk是頻點k 處的能量。通過式(5)先初步計算出頻率范圍[f1,f2] 的質心位置k,在k的領域各取M 個整數頻點再次使用能量重心公式計算出的質心位置作為載波頻率f。
相干相位檢測法包括二值化圖像信號與同頻載波相乘、低通濾波和反正切計算,計算出的相位范圍(-π/2,π/2 ),需要對其解包裹得到真實的相位值分布函數,如圖4所示。

圖4 相干相位檢測框圖
視場內整周期的相位分布在理想情況下呈線性,圖像傳感器安裝傾斜會導致相位分布近似為二次曲線。最小二乘法運用最小化誤差的平方和來逼近最佳函數曲線,使用其對相位數據進行曲線擬合,擬合樣值(xi,yi),i=1,2,…,n,擬合多項式方程y=ax2+bx+c,矩陣方程:

根據式(6)計算二次曲線系數a、b 和c,通過相位的二次曲線可以插補污損條碼相位值。每個碼元周期T 相同,可以計算整個視場內單個碼元的相位分布,相位值范圍( 0 ,2π ),從而可通過碼元相位值定位條碼位置[12~15]。
最小二乘法擬合出的相位二次曲線和周期T可計算出單個碼元的線性相位分布函數phase,選取合適的比較值與每個碼元相位值進行比較來定位碼元位置。

條碼位置code_p確定后,通過碼元占空比解碼碼元值,并通過原圖的對比度標出錯誤條碼。在有效條碼范圍內,條碼位置code_p作為有效標志,參考系統時鐘,以碼元周期T 為單位,對二值化圖像的單個碼元中的高、低電平分別計數時鐘周期數量s1和s0,兩者比較的結果作為當前碼元的解碼值code_value。

算法中首先生成14 階m 序列碼,解碼出的碼元序列與m序列進行互相關運算,視場內條碼碼元數量要大于等于m序列的階數,才能確保絕對位置檢測的唯一性。
各地質背景中二疊系土壤硒含量最高,平均值為1.52mg/kg,其次為三疊系與泥盆系,分別為1.21與1.01mg/kg,最低為奧陶系,為0.57 mg/kg。可以發現,石門縣各地質背景表層土壤總體硒含量較高,其土壤平均值全部達到富硒標準(0.4mg/kg)。
互相關運算公式:

視場內條碼碼元序列Q 與m 序列位置一一對應碼元作比較,相同碼元數量為A,不同碼元數量為D,PP最大時所對應的m序列碼元位置為絕對位置的粗測位置ap。然后,縮小m 序列范圍,多次進行互相關運算可以提高測量的準確度。絕對位置精確值a_position是粗測位置、視場內光心碼元偏移數量offset、周期T 和目標碼元的相位偏移ph 計算的結果。

灰度形態學濾波對噪聲圖像進行閉運算和開運算,選取的濾波窗口為9 個像素點;最大值、最小值濾波窗口為41 個像素點,窗口中像素值的最大值和最小值的算術平均值作為濾波后的像素值;均值濾波窗口為11,取11 個像素值的算術平均值作為輸出像素值,各濾波模板遍歷所有的像素點,灰度形態學濾波后的圖像信號與閾值進行比較得到1bit的二值化圖像。仿真波形如圖5所示。

圖5 原圖像、形態學濾波圖像、閾值、二值化圖像
原圖像經過灰度形態學濾波處理后去除了很多噪聲,自適應閾值是動態變化的,可以保留一些圖像的細節,為準備識別條碼創造了條件,從圖5可以看出二值化圖像可以反映原始圖像有效信息,也方便后續信號處理。
用于載波頻率計算的初設已知整數頻點范圍[2 5,66] ,共計算42個頻點的能量,通過能量重心公式初次計算的載波頻率點k 為55Hz;在k 兩邊各取10個頻率點,估計21個頻率點的質心位置,計算的頻率值f 為49.58Hz 作為最終的精確頻率值,兩次計算可以提高檢測的精確度。
圖像采集單元獲取的一幀圖像的像素點數量與圖像傳感器的視場掃描寬度和像素密度有關,算法仿真中樣值點n取2048個像素值,對解調出的相位進行參數統計,計算出相位擬合二次曲線的系數a=-2.952×10-7,b=-2.661×10-3,c=3.205。擬合的曲線如圖6所示。

圖6 相位擬合二次曲線
通過擬合的相位曲線計算單個碼元周期內的相位,碼元相位范圍[0 ,2π] ,還可以插補污損碼元相位值,相位波形呈現等間距規律鋸齒狀,碼元相位分布如圖7所示。

圖7 碼元周期相位分布
采用相位的全局信息定位條碼位置,其與局部碼元檢測關系不大,可實現污損、錯誤條碼位置的定位。用單個碼元的相位可以定位碼元位置,碼元相位值與預設固定相位值比較得到的條碼位置,如圖8所示。

圖8 條碼范圍、碼元位置、二值化圖像
構造三種帶噪聲的條碼柵尺圖像信號,它們的碼元寬度(周期)不同,碼元編碼方法相同,如圖9所示,其符合14 階m 序列編碼規范,加載到算法模塊中來驗證算法的功能。

圖9 帶噪聲的條碼柵尺圖像信號
圖9 中的三個圖像信號分別對應條碼尺位置,解碼后的條碼值對應全局m 序列中的3 段序列,通過算法處理后的結果如表1所示。
表1 中三個頻率分別是條碼圖像信號的載波頻率,解碼出的碼元數目不同,是因為視場內碼元寬度不同,只需碼元數量大于m序列階數。三個條碼圖像經過圖像處理和絕對位置計算,準確地定位條碼位置、解碼出條碼值并與波形碼元相同,能夠精確地計算出絕對位置。

表1 算法仿真結果
本文提出的絕對式直線位置檢測方法,編碼簡單,條碼識別準確,對光強變化不敏感,可測距離大,算法仿真驗證詳實可靠。后續采用基于FPGA和接觸式圖像傳感器建立硬件系統,獲取條碼圖像、圖像處理和絕對位置計算。還需控制運行速度以減少運動模糊對精度的影響,從而驗證系統的高速、高精度和高效性。因此,算法應用前景廣闊,可應用于自動化立體倉庫、導軌懸掛輸送機、軌道巡檢機器人等定位系統。