, ,
(石家莊鐵道大學(xué) 機械工程學(xué)院,河北 石家莊 050043)
圖1 基于機器視覺的沖床改造示意圖
在一種基于機器視覺的沖床自動化改造中,如圖1所示為沖床改造的示意圖,機器視覺系統(tǒng)實現(xiàn)了對板料的自動布料,得到了在圖像坐標系下布料位置坐標,為了實現(xiàn)沖床落料,需要進行坐標變換確定沖床沖頭坐標系和在世界坐標系下工業(yè)相機和板料的位置關(guān)系[1-2],根據(jù)位置關(guān)系,控制系統(tǒng)控制送料平臺將板料移送至沖頭落料位置下方,控制系統(tǒng)控制沖頭實現(xiàn)沖壓動作得到落料件,這就需要求解攝像機外參數(shù)。與此同時,為防止鏡頭畸變導(dǎo)致落料件不完整,需要對采集到的布料圖像進行畸變矯正,以提高落料精度,這就需要獲得攝像機畸變參數(shù)。
空間某點的位置和其在圖像中對應(yīng)映射點之間的關(guān)系是由攝像機成像的數(shù)學(xué)模型唯一確定,獲得的攝像機成像模型參數(shù)就是攝像機參數(shù),其只能通過實驗根據(jù)攝像機模型進行計算獲得,攝像機參數(shù)的確定過程稱為攝像機標定[3]。經(jīng)過大量的文獻研讀,標定方法主要有傳統(tǒng)標定方法、自標定方法、和基于主動視覺的標定方法。基于HALCON機器視覺軟件的標定方法能夠利用自帶編程語言開發(fā)標定程序并應(yīng)用到實際應(yīng)用環(huán)境當中,因此基于HALCON的標定方法研究與應(yīng)用越來越廣泛。文獻[4]提出一種基于HALCON的雙曲面折反射全景標定方法,適用于全景足球機器人定位精度要求;文獻[5]基于HALCON平面標定板,設(shè)計了一種新的手眼機器人視覺標定方法,適用于工業(yè)上需要抓取定位及裝配的機器人視覺系統(tǒng)。該標定方法屬于傳統(tǒng)標定方法,傳統(tǒng)標定法具有技術(shù)最成熟,標定操作簡單,精度高的特點,應(yīng)用最為廣泛。在沖床改造中機器視覺系統(tǒng)采用了HALCON機器視覺軟件,沖床使用前對攝像機進行一次標定無需再次標定,傳統(tǒng)標定法采用標定板進行標定,而標準標定板雖然精度高但價格昂貴,因此提出了采用自制標定板的基于HALCON的面陣相機單目視覺標定方法,并對其進行了實驗驗證。
在不同的機器視覺應(yīng)用中,所采用的攝像機類型和具體應(yīng)用條件都不同,所以采用的標定方法也不相同,因此有多種HALCON相機模型。沖床改造中采用CCD面陣相機,該類相機的標定一般采用’area_scan_division’和’area_scan_polynomial’兩種模型。
圖2 HALCON面陣相機針孔模型
圖2為HALCON面陣相機針孔模型,世界坐標系中的一點P通過鏡頭的光心投影到圖像平面的P′點,圖像平面位于鏡頭光心后端鏡頭焦距f處。世界坐標系到攝像機坐標變換,可由式(1)表示,該變換屬于剛度變換[6]
(1)
式中,R=(α,β,γ)T為正交單位旋轉(zhuǎn)矩陣,α,β,γ分別是繞攝像機坐標系x,y,z軸的旋轉(zhuǎn)角度;T=(tx,ty,tz)T為三維平移向量。 為攝像機的外參。
對于針孔攝像機模型來說,攝像機坐標系中的三維點到圖像平面坐標系的投影為投射投影,可用下式表示
(2)
圖像平面坐標系到圖像坐標系的轉(zhuǎn)換可以由式(3)表示
圖3 鏡頭畸變示意圖
(3)
式中,sy和sx是縮放比例系數(shù),表示針孔攝像機CCD傳感器中各個傳感器單元在水平方向和垂直方向的距離。點 (cx,cy)定義了徑向畸變的中心,是鏡頭光心在圖像平面上的垂直投影。式(2)和式(3)中的參數(shù)(f,k,sx,sy,cx,cy)被稱為攝像機的內(nèi)部參數(shù)。
實際應(yīng)用中,由于鏡頭畸變的存在會使(u,v)發(fā)生改變,圖3為鏡頭畸變示意圖,可見若鏡頭未畸變,投影點P′將在點P與光心連線的延長線上,鏡頭畸變導(dǎo)致P′ 的位置發(fā)生了偏移,需對畸變進行修正。
面陣相機如果采用’area_scan_division模型,可以用式(4)表示
(4)
’area_scan_division’相機畸變模型只考慮了徑向畸變,屬于線性畸變模型,模型參數(shù)求解可逆;而’area_scan_polynomial’畸變模型同時考慮了徑向畸變和切向畸變,屬于非線性畸變模型,畸變參數(shù)求解不可逆。’area_scan_polynomial’相機畸變模型使用K1,K2,K33個參數(shù)表示徑向畸變, P1,P2兩個參數(shù)表示切向畸變,從畸變圖像平面坐標系轉(zhuǎn)換到非畸變圖像平面坐標系的相機畸變模型的數(shù)學(xué)表達式為
(5)
(6)
傳統(tǒng)的標定方法需要標準的標定板來實現(xiàn)標定,選擇合適的標定板有助于簡化標定流程,提高標定精度等。
根據(jù)標定原理,首先,在進行攝像機標定時,必須建立已知世界坐標系三維空間點的坐標和這些已知空間點在圖像中的投影點的二維圖像坐標的對應(yīng)關(guān)系。為滿足這一要求,通常將容易提取特征的標志物放置在一個已知位置上,以便于上述對應(yīng)關(guān)系的確定。圓靶的圓心坐標和角點坐標提取算法簡單并易于提取。因此,標定板主要采用圓形靶標和棋盤方格兩種類型。然后,攝像機標定世界坐標系中已知點與其在標定圖像中的投影的對應(yīng)關(guān)系需確定,這一過程的實現(xiàn)難度較大。因此,標定板設(shè)計時采用的結(jié)構(gòu)一般盡可能使確定對應(yīng)關(guān)系的過程更簡單。比如,使用一個平面標定板,在其平面上繪制多個整齊排列的標志點。平面標定板具有容易操作、制作精度高和制作工藝簡單等優(yōu)點。
圖4 HALCON標定板
如圖4所示為HALCON標定板,在一個黑色等邊矩形方框中包含7行7列共49個等直徑黑色圓形靶標,每個圓靶的圓心作為標定點,使用HALCON標定板時世界坐標系原點可定義在正中央圓靶的圓心位置,坐標軸z軸垂直標定板向上,坐標系方向可由位于矩形邊框的左上角的方向標記唯一確定。
選用HALCON軟件配套設(shè)計的標定板有很多優(yōu)勢。HALCON標定板對HALCON軟件有極好的兼容性,軟件開發(fā)時進行了大量的優(yōu)化,使用HALCON標定板進行標定開發(fā)時,開發(fā)者不需要單獨對標定板進行描述,僅需軟件通過相關(guān)算子自動生成標定板描述文件并直接調(diào)用,使用極其方便;標定板主要有圓形靶標和棋盤方格兩種類型,與棋盤方格的角點提取相比圓形靶標的圓心提取算法抗噪能力更強,算法簡單,執(zhí)行速度快,圓心坐標可以精確提取,因此HALCON標定板具有高標定精度;HALCON標定板所有圓靶按照等間距行列排列,呈矩形陣列,排列方式簡單,各個圓靶的圓心坐標容易提取,攝像機標定算法相對簡單,算法執(zhí)行速度更快,精度更高。綜合這些優(yōu)勢,標定實驗中采用HALCON標定板。
HALCON標定板精密度高,但價格昂貴,若實驗精度要求不高,可以使用自制的標定板進行實驗,這樣不僅降低成本,而且根據(jù)攝像機拍攝范圍大小生成最合適大小的標定板。本文擬采用自制標定板進行標定實驗。
首先在HALCON的Hdevelop開發(fā)環(huán)境中調(diào)用HALCON標定板生成算子gen_caltab;其次運行程序,生成標定板描述文件和標定板圖像文件;最后使用Gsview圖像軟件打開標定板圖像文件并打印完成自制標定板,為后續(xù)工作奠定基礎(chǔ)。
標定圖像的采集是攝像機標定的必要過程,使用HALCON標定板進行圖像采集最簡單、最有效的方法是使用HALCON自帶的標定助手完成,與此同時可以生成標定代碼,為標定算法的開發(fā)提供參考,減輕開發(fā)強度。
為了驗證標定方法能否滿足整個機器視覺系統(tǒng)標定精度等要求,根據(jù)沖床改造方案搭建了模擬真實環(huán)境下的實驗平臺,模擬真實的圖像采集方法和圖像采集環(huán)境,實驗場景如圖5所示。平臺搭建方法為:首先安放并固定背光裝置,之后使用相機支架將相機固定并調(diào)整相機到離背光正上方預(yù)設(shè)高度,并通過支架自帶的功能調(diào)節(jié)鏡頭垂直于地面,工業(yè)相機采用的是GigEVision接口的相機,因此將相機通過網(wǎng)線連接到計算機的網(wǎng)卡,并連接電源,準備拍攝圖像。隨后計算機安裝好攝像機驅(qū)動程序和HALCON機器視覺軟件,給設(shè)備供電,打開光源,調(diào)試設(shè)備并確認能否正常工作。調(diào)試好設(shè)備后,通過Hdevelop中的圖像獲取助手,拍攝圖像,根據(jù)獲取的圖像,移動支架調(diào)整支架的方位和調(diào)節(jié)裝置保證相機處于背光區(qū)域正中心,鏡頭光心垂直于背光板并且圖像無偏斜。最后手動調(diào)節(jié)鏡頭的光圈和調(diào)焦環(huán)以獲取質(zhì)量最佳的圖像。設(shè)備調(diào)試好后,接下來就是利用HALCON的Hdevelop開發(fā)環(huán)境進行圖像獲取。
打開軟件中的攝像機標定助手,在安裝一欄中選擇標定任務(wù)、加載所采用的標定板的標定板描述文件和正確填入攝像機參數(shù),然后在標定一欄中采用圖像采集助手實時獲取標定圖像,在圖像采集中根據(jù)標定助手的提示調(diào)整設(shè)備曝光等,多次拍攝拍攝范圍標定板不同方位的標定圖像,在基本覆蓋整個拍攝范圍后,保存圖像,點擊標定按鈕,進行標定;標定結(jié)果可以點擊結(jié)果一欄查看;在代碼生成一欄中可以根據(jù)需要生成參考的標定代碼。采集到的部分標定圖像見圖6。
圖5 實驗場景
圖6 標定圖像
采用’area_scan_division’模型為例,對相機標定算法進行研究、開發(fā)和實驗驗證。
圖7為標定程序?qū)崿F(xiàn)流程,標定程序?qū)崿F(xiàn)過程:
第一步,創(chuàng)建標定數(shù)據(jù)模型。使用算子create_calib_data,實例中為create_calib_data (’calibration_object’, 1, 1, CalibHandle),該算子是為了創(chuàng)建標定數(shù)據(jù)模型,即標定的數(shù)據(jù)將存放于CalibHandle中。
第二步,設(shè)定攝像機的初始化參數(shù)。攝像機參數(shù)初始化算子為set_calib_data_cam_param (CalibHandle,0,’area_scan_division’,StartParameters)。式中StartParameters:=[0.025,0,3.75e-006,3.75e-006, 648,483,1 296,966],參數(shù)根據(jù)硬件參數(shù)確定。攝像機參數(shù)初始化設(shè)置可以減少標定運算量,加快標定實現(xiàn)。
第三步,描述標定板。set_calib_data_calib_object (CalibHandle, 0, TmpCtrl_PlateDescription)為標定板描述算子。TmpCtrl_PlateDescription是標定板描述文件所在路徑,使用自制的HALCON標定板時,調(diào)用由gen_caltab算子生成的標定板描述文件。標定板描述文件中的標定板信息必須與標定過程中使用的標定板實際規(guī)格、尺寸相符,否則無法進行標定或獲得的標定結(jié)果錯誤。
第四步,獲取標定數(shù)據(jù)。標定數(shù)據(jù)均是通過標定板圖像獲得的,首先是識別出標定板并確定所在位置,然后在標定板中識別出標定點確定其位置。
圖7 標定程序?qū)崿F(xiàn)流程
獲取標定數(shù)據(jù)的過程就是HALCON中提取目標點的過程,具體實現(xiàn)過程:首先使用find_caltab算子對標定圖像進行高斯濾波,使標定板區(qū)域特征突出并提高標定板區(qū)域分割精度,接下來進行閾值分割將標定板的區(qū)域分離出來;然后使用find_marks_and_pose算子對標定板區(qū)域中的黑心圓形標志點進行分割和提取,確定圓的個數(shù)、周長、坐標位置等,這些信息應(yīng)該和標定板描述文件中的一致,否則find_marks_and_pose算子自動調(diào)整參數(shù)StartThresh,使得StartThresh按照DeltaThresh步長減小到MinThresh,直到找到準確的圓心。
find_calib_object算子可以一并實現(xiàn)前面兩個算子的功能,為了簡化運算,采用后者。因為采集的標定圖像為多幅圖像,因此通過循環(huán)語句控制,對多幅圖像進行圖像標定數(shù)據(jù)獲取。
第五步,標定。利用算子camera_calibration(CalibDataID, Errors)執(zhí)行相機標定,返回平均投影誤差Errors。
第六步,輸出標定結(jié)果。通過算子get_calib_data (CalibHandle, ’camera’, 0, ’params’, CameraParameters),將攝像機內(nèi)參存儲在CamParam中,通過write_cam_par()算子將內(nèi)參寫入文本文件。當標定板在測量平面上時,默認測量平面在世界坐標系xoy面上,z=0,此時直接調(diào)用get_calib_data(CalibDataID,’calib_obj_pose’,[0,NumImage],’pose’,CameraPose)得相機外參。
運行標定程序,得到標定結(jié)果。取采用’area_scan_division’模型的其中一次標定結(jié)果進行分析:攝像機外參CameraPose [-0.146 407, 0.086 028 8, 1.258 25, 1.307 78, 355.458, 179.572, 0],攝像機內(nèi)參CameraParameters [0.027 251 1, -203.496, 3.774 74e-006, 3.75e-006, 1 164.85, -176.784, 1 296, 966],平均投影誤差Errors0.365 579 個像素點。實驗中CCD芯片像素尺寸為3.75 μm,工作距離為1.5 m,焦距為25 mm,平均投影誤差換算成世界坐標系下實際誤差采用公式(7)[6]進行計算。
(7)
式中,SC為CCD芯片尺寸;FOV為視場;f為焦距;dw為工作距離。
采用自制標定板標定時,標定誤差產(chǎn)生的原因有多種,其中標定板自身存在誤差是標定誤差產(chǎn)生的主因。實驗中采用自制標定板,打印標定板標志點輪廓的清晰程度,標定板粘貼的平整程度等都會影響標定結(jié)果、產(chǎn)生標定誤差。為了減小自制標定板的標定誤差,實驗中多次改進完善自制標定板的制作方法并對實驗結(jié)果進行比較分析,完善自制標定板的標定流程。采用不同改進措施標定實驗的平均投影誤差見表1。
表1 自制標定板改進實驗數(shù)據(jù)對比
由實驗結(jié)果可以看出,最后得到的平均投影誤差為0.082 3 mm,該誤差大小不會對沖床布料和落料的精度造成影響。因此實驗結(jié)果得到了機床改造坐標變換和圖像畸變矯正的必要參數(shù),平均投影誤差換算成世界坐標系下實際誤差,在允許范圍,該標定方法能夠滿足實際需要。
根據(jù)實現(xiàn)沖床自動化改造的實際需要,提出了一種采用自制標定板的基于HALCON的面陣相機單目視覺標定方法。并且根據(jù)沖床改造方案搭建了模擬真實環(huán)境下的實驗平臺,采用自制標定板,對該方法進行了實驗驗證。實驗得到攝像機內(nèi)外參數(shù)和畸變參數(shù),標定結(jié)果的平均投影誤差小,標定結(jié)果能夠應(yīng)用到?jīng)_床改造中的坐標變換和圖像矯正。該方法采用自制標定板,在滿足標定精度的同時降低了沖床改造成本。