<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          攝像機標(biāo)定技術(shù)及其應(yīng)用——單目攝像機

          共 9347字,需瀏覽 19分鐘

           ·

          2024-05-03 10:05

          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達

             

          一、為什么要進行攝像機標(biāo)定




            隨著機器視覺的迅猛發(fā)展,我們已經(jīng)不滿足于使用攝像機進行監(jiān)控、抓拍這種較為簡單的功能。更多的用戶青睞于它在非接觸三維尺寸測量上的應(yīng)用。我們所謂的三維測量是廣義的三維測量,它不僅包括三維物體的重構(gòu)與測量,還包括在三維空間中識別任意二維平面上的尺寸以及位置。這種技術(shù)目前已被應(yīng)用在高精度的工業(yè)模具以及裝配測量中,其中任意二維平面上的尺寸檢測技術(shù)應(yīng)用得更為廣泛。


          圖一

            如圖1當(dāng)被測平面和像平面平行且成像模型為理想的小孔成像模型,我們設(shè)焦距為f、工作距離為d,則被測物OP和它的像O’P’關(guān)系可簡單的表示為:

          |OP|=|O’P’|×d/f  【1】

            但是在實際應(yīng)用中并非如此,我們無法嚴格控制像平面和被測平面的位置,所用的鏡頭也不是嚴格的小孔模型。如果直接使用【1】式計算將會產(chǎn)生極大的誤差。因此,為了獲取更高的測量精度,我們需要通過標(biāo)定來實現(xiàn)坐標(biāo)平面的轉(zhuǎn)換以及圖像的校正。

          二、什么是攝像機標(biāo)定




            在實際應(yīng)用中,被測平面的不確定性以及鏡頭的畸變使我們已經(jīng)無法簡單的使用【1】式計算出實際距離,但是我們可以將目前能夠獲得的數(shù)據(jù)進行轉(zhuǎn)換,使這些數(shù)據(jù)符合【1】式的使用條件。也就是將任意坐標(biāo)平面通過旋轉(zhuǎn)和平移映射到理想坐標(biāo)平面上,對有畸變的圖像進行校正,讓它成為符合小孔成像模型的像平面。有了這種方法,我們只要確定轉(zhuǎn)換算法、校正算法以及【1】式中的參數(shù)就可以實現(xiàn)三維空間中任意平面上尺寸與位置的測量。我們將這種確定參數(shù)的過程稱之為標(biāo)定。

          三、攝像機單目標(biāo)定




            攝像機標(biāo)定的方法根據(jù)攝像機的數(shù)目可分為單目標(biāo)定、雙目標(biāo)定以及多目標(biāo)定。其中單目攝像機標(biāo)定是雙目標(biāo)定的基礎(chǔ),而多目攝像機的標(biāo)定則是雙目攝像機的擴展。因此,我們今天首先來為大家介紹單目標(biāo)定。在平面測量中影響我們拍攝圖像形變的因素有兩個:鏡頭和攝像機的姿態(tài)。根據(jù)這兩個因素我們將攝像機的參數(shù)分為兩組,攝像機內(nèi)參和攝像機外參。

           1、攝像機內(nèi)參


            內(nèi)參一般包括鏡頭的焦距f、鏡頭畸變參數(shù)k、光軸中心坐標(biāo)(Cx,Cy)以及像元尺寸Sx,Sy,當(dāng)攝像機和鏡頭確定時,這些參數(shù)唯一確定。下面我們來詳細介紹一下各參數(shù)的數(shù)學(xué)模型。

          1)焦距

            根據(jù)鏡頭類型不同焦距的計算可分為針孔模型和遠心模型。如圖3我們假設(shè)世界坐標(biāo)系有任一點P(x,y),在攝像機靶面所成的像為P’(u,v),根據(jù)不同的光路模型它們之間有如下的對應(yīng)關(guān)系

           a) 針孔模型

           b)遠心模型

          由于遠心鏡頭特殊的光路設(shè)計使得像的大小與拍攝距離無關(guān),因此表達式比針孔模型更為簡單。

          2)鏡頭畸變

            受到鏡頭的制作和安裝精度的影響,我們所獲得圖像會產(chǎn)生非線性失真。我們稱這種失真為鏡頭畸變。鏡頭畸變產(chǎn)生的誤差使得理想針孔模型已不再適用。因此我們需要先將所得圖像進行校正,再應(yīng)用理想的針孔模型。假設(shè)我們所獲取的原始圖像坐標(biāo)(u,v)、校正后的結(jié)果(u’,v’),其畸變模型坐標(biāo)關(guān)系為:

           a)徑向畸變


            徑向畸變主要由透鏡制作過程中表面曲率引起,它會使圖像發(fā)生桶形畸變和枕形畸變(如圖4)。其數(shù)學(xué)模型如下:

            其中,如果對精度要求不是很高我們可以令將上式簡化為如下表達式:

           b)離心畸變

            離心變量又稱偏心變量,它的誤差來源于透鏡的安裝精度,這主要是因為所有鏡片的光學(xué)中心并不能嚴格的保證在同一條直線上。這種誤差除了在引入徑向畸變同時還會引入切向畸變。由于之前我們已經(jīng)進行了徑向畸變的校正,因此我們在此基礎(chǔ)上只需加入切向畸變校正即可。其數(shù)學(xué)模型如下:

           

           c)薄棱鏡畸變

          影響薄棱鏡畸變的主要因素的是透鏡以及攝像機靶面的平行度,鏡片與攝像機靶面夾角越大畸變就越嚴重。其數(shù)學(xué)表達式如下:

           d)畸變校正

            在實際的應(yīng)用中,大多數(shù)工業(yè)攝像機的廠商可以通過攝像機接口螺紋的機械精度來保證鏡頭透鏡與靶面的平行性,而且這種畸變產(chǎn)生的誤差較小,因此在一般的圖像標(biāo)定中不作考慮。至此,我們已經(jīng)基本掌握了大多數(shù)情況下畸變產(chǎn)生的原因以及數(shù)學(xué)模型。結(jié)合【5】、【7】兩式我們可以推導(dǎo)出鏡頭畸變校正模型:

          2. 攝像機外參


            攝像機的外參是指攝像機坐標(biāo)系與世界坐標(biāo)系的轉(zhuǎn)換參數(shù)它主要由旋轉(zhuǎn)矩陣R和平移矩陣T組成。對于任意三維坐標(biāo)系,我們都可以通過這兩個矩陣將其轉(zhuǎn)換到攝像機坐標(biāo)系中。其數(shù)學(xué)模型為 【10】

          1)旋轉(zhuǎn)矩陣R

                            

            如圖5所示,我們通過沿坐標(biāo)軸x、y、z分別旋轉(zhuǎn)α、β、γ來實現(xiàn)坐標(biāo)系的轉(zhuǎn)換。因此,旋轉(zhuǎn)矩陣R可分解為Rx(α)、Ry(β)、Rz(γ)三個矩陣相乘的形式。我們以z軸為例,假設(shè)(x0,y0)與x軸夾角為θ,且到原點距離為r,通過旋轉(zhuǎn)矩陣

            Rz(γ)坐標(biāo)系沿z軸旋轉(zhuǎn)γ后得到點(x1,y1),我們可得方程組:

          x1=r·cos(θ+γ)      【11】

          y1=r·sin(θ+γ)       【12】

            由三角函數(shù)展開得:

          x1= r·cos(θ) cos(γ)- r·sin(θ) sin(γ)    【13】

          y1= r·sin(θ) cos(γ)+ r·cos(θ) sin(γ)   【14】

            由(x0,y0)與x軸夾角為θ得:

          x0=r·cos(θ)          【15】

          y0=r·sin(θ)          【16】

            將【15】式帶入【13】式、【16】式帶入【14】式得:

          x1=x0·cos(γ)-y0·sin(γ)     【17】

          y1=y0·cos(γ)+x0·sin(γ)    【18】

            因此

            以此類推求得Rx(α)和Ry(β)將它們與Rz(γ)相乘得:

          2)平移矩陣T

                                                     

            通過旋轉(zhuǎn)矩陣運算后,世界坐標(biāo)系的三個坐標(biāo)軸會與攝像機坐標(biāo)系對應(yīng)的坐標(biāo)軸相平行。此時我們已經(jīng)離我們的目標(biāo)又近了一步。如圖7所示我們現(xiàn)在只要沿各坐標(biāo)軸做平移運算即可,由此得:

          3)參數(shù)求解

            根據(jù)【2】、【9】、【20】、【21】這幾個數(shù)學(xué)模型,我們可以得知,若想確定一個攝像機與被測平面的相對位置,則需要確定包括內(nèi)參、外參在內(nèi)的14個參數(shù) ,其中是已知的。因此,我們至少需要9個坐標(biāo)點,構(gòu)成9個方程才可以解出剩余的9個未知數(shù)。在通常情況下,點的分布以覆蓋大部分視場為準(zhǔn),獲得的數(shù)據(jù)點越多,統(tǒng)計的參數(shù)就越準(zhǔn)確。我們一般采用最小二乘法或者線性規(guī)劃等統(tǒng)計算法來求解相應(yīng)參數(shù)。下面我們以HALCON為例演示一個標(biāo)定的全過程。

            HALCON是德國MVTEC Software GmbH公司開發(fā)的一套完善的機器視覺算法軟件包。它除了擁有亞像素精度的算法以及高效的處理性能外,在三維重構(gòu)方面它也有卓越的表現(xiàn)。它的開發(fā)環(huán)境中自帶攝像機標(biāo)定工具,可以輕松的完成攝像機的標(biāo)定工作。同時,您還可以使用HALCON生成可打印的標(biāo)定板文件。下面我們就來介紹一下攝像機標(biāo)定的整個流程。

           a)生成標(biāo)定板

            i. 創(chuàng)建標(biāo)定板

            使用HALCON開發(fā)環(huán)境HDevelop創(chuàng)建標(biāo)定板

            在選擇尺寸選擇時推薦大家使用邊長為視野1/3左右的標(biāo)定板                

            ii.打印標(biāo)定板

            通過GSView等高精度打印軟件打印標(biāo)定板。

           b) 攝像機參數(shù)設(shè)置

            輸入所使用的攝像機以及鏡頭的相關(guān)參數(shù)

           

           c)拍攝標(biāo)定板圖像

            我們采用平移和傾斜的方式使得拍攝圖像中的標(biāo)定板盡量覆蓋整個視場。

            一般情況我們需要保存15幅不同位置的圖像,具體位置如下:

           d)標(biāo)定圖像載入

            通過HALCON我們可以實時拍攝圖像也可以讀取我們事先拍攝好的圖像進行標(biāo)定。如果標(biāo)定板識別成功,圖像上將繪制出標(biāo)定板坐標(biāo)系。

           e)標(biāo)定

            標(biāo)定后我們會獲得攝像機內(nèi)參和外參。我們還可以將它們保存起來用于坐標(biāo)轉(zhuǎn)換或圖像校正。 

           

           f)驗證標(biāo)定結(jié)果

            在HALCON中不僅有攝像機標(biāo)定工具還有測量工具,下面我們使用HDevelop自帶的一維測量助手來驗證一下我們的標(biāo)定結(jié)果。

          首先我們要加載我們剛才標(biāo)定的數(shù)據(jù)。

            成功加載標(biāo)定數(shù)據(jù)后我們就可以使用我們隨機拍攝的一張圖像進行測量。

           

            通過以上幾步操作,現(xiàn)在我們就已經(jīng)得到了像素點的實際距離。


            復(fù)雜的標(biāo)定工作在HALCON的幫助下就輕松的完成了。不僅如此,以上的所有步驟都可以導(dǎo)出為代碼,我們可以將這些代碼集成到我們自己的程序中。

            備注:若采用高精度的標(biāo)定板將會得到更高精度的標(biāo)定結(jié)果。

          四、應(yīng)用




            單目攝像機標(biāo)定技術(shù)適用于被測表面曲率較小且需要獲取實際數(shù)據(jù)的應(yīng)用場合,比如食品、機械制造以及半導(dǎo)體等。理論上,在檢測過程中所有的被測物尺寸的判斷都可以使用像素尺寸來完成。雖然像素尺寸和實際尺寸對于計算機來說幾乎是一樣的,一般只用于比較大小,但是對于我們來說實際尺寸更加直觀。

          圖15                        圖16

            圖15為速凍魚柳檢測系統(tǒng)的圖像處理示例。由于實際應(yīng)用中不同批次的魚柳寬度不同,因此,最好的辦法是使用標(biāo)定后獲取的實際數(shù)據(jù)來進行計算。這種判定方法使得系統(tǒng)參數(shù)更加直觀,設(shè)置更加方便。圖16為工件尺寸檢測系統(tǒng),通過標(biāo)定,我們不僅可以獲取實際數(shù)據(jù),而且可以將它們直接和CAD中數(shù)據(jù)進行比較,提高檢測效率。

          五、結(jié)語




            在機器視覺產(chǎn)業(yè)的蓬勃發(fā)展的今天,攝像機標(biāo)定已經(jīng)逐步應(yīng)用到醫(yī)療、食品、磨具生產(chǎn)、半導(dǎo)體生產(chǎn)等諸多檢測系統(tǒng)中。隨著像HALCON這樣的算法庫用戶群的不斷擴大,攝像機標(biāo)定在作為我們研究課題的同時,也會不斷的走進工業(yè)應(yīng)用中。它將為我們提供更完善,更精準(zhǔn)的二維以及三維空間的解決方案,成為提高工業(yè)生產(chǎn)效率和產(chǎn)品質(zhì)量的推動力。

           


               


          聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)習(xí)、交流之目的。文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。


                  
          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线色导航网站 | 一本一道无码免费看视频 | 一区二区三区日本黄色电影 | 国产一级二级免费在线观看 | TS人妖一区二区三区 |