大幅面多相機高精度定位及測量解決方案

  隨著機器視覺應用的日益廣泛,大幅面多相機視覺系統的需求越來越多,主要應用方向為大幅面高精度的定位與測量和場景拼接等。多相機視覺系統的難點在于多相機坐標系的統一,可以分為兩類,一是相機視野間無重疊部分,二是相機視野間有重疊部分。相機間無重疊部分的情況主要用于大幅面多相機高精度的定位和測量,相機間有重疊部分的情況主要用于場景的拼接等。???????

使用大標定板統一坐標的方法

方案簡介:

  此方法采用一塊大標定板來統一各個相機的坐標,每個大標定板中有若干小標定板,各個小標定板間的位置關系都是已知的,各個相機都能拍攝到一個小標定板。通過各個小標定板可以標定每個相機的內部參數和外部參數,每個相機的坐標都可以轉換到各個小標定板的坐標系上,從而統一各個相機的坐標。

系統結構:

常用的標定板形式:

上圖所示為單個標定板圖像,大標定板由若干單個標定板組成,標定板的大小和數量根據實際測量情況而定。

多個標定板組合示意圖:

案例分析:


(1)檢測目標分析

測量產品需要若干個測量指標。如下圖所示。

(2)圖像獲取

采用4只相機來完成所有項目的測量,分別拍到的照片如下圖所示。

(3)檢測流程

先分別利用每張圖的兩條垂直邊計算出它們的交點,那么得到的4個交點就可以算出L1和L2的值,如下圖所示。


利用4個邊角圖來測量4個角的L3,如下圖所示,這里可以選擇測量多個點,也可以取它們的平均值。

注意事項:

  此種方法需要將多只相機的坐標統一到一個坐標系中,并且單一相機還要做自己的校準,保證精度。

根據檢測要求,設置取多少個點作為參考,但是這影響測試的時間,需酌情考慮。

?應用領域:

手機和平板電腦面板尺寸的檢測。


相對運動統一坐標的方法

方案簡介:

  此方法采用相機和被測物之間的相對運動來統一相機的坐標,相機和被測物只要一方運動即可,記錄各個位置的坐標,然后通過數學運算來統一坐標。通常情況下是相機位置固定,被測物通過機械手等運動裝置進行移動,然后把相機坐標系統一到機械手等運動裝置的原點。

總體結構:

方法介紹:

   通過相機拍攝的圖像對mark點進行定位,從而計算出被測物相對于標準位置的偏差,包含角度偏差和位移偏差,最終確定機械裝置需要旋轉的角度和平移的距離。選用手機觸摸屏和手機外殼的定位系統來介紹算法原理。
  手機觸摸屏和手機外殼的定位系統,使用多支相機代替一支相機的方法進行定位,使手機觸摸屏和手機外殼精確組裝。相機分為兩組,每組兩支相機,一組拍攝手機外殼(組1),一組拍攝觸摸屏(組2),兩組相機標定方法相同,下面只介紹拍攝手機外殼的兩支相機的標定。相機固定,機械手吸住手機外殼移動,兩支相機分別拍攝手機外殼的兩個定位孔,使用模板匹配的方法對兩個定位孔進行識別,如下圖所示:

(1)通過機械手的移動獲取標定所用坐標

  組1相機1: 把mark點移動到相機視野中,定相機的初始位置,得到初始mark點的中心坐標Point11(cRow11, cColumn11),機械手沿X方向移動一定距離(5mm)后得到mark點的中心坐標Point12 (cRow12, cColumn12),機械手沿Y方向移動一定距離(6mm)后得到mark點的中心坐標Point13(cRow13, cColumn13),同時可以得到在上述三個位置機械手的空間坐標Robot11(X1[0],Y1[0])、 Robot12(X1[1],Y1[1]) 、Robot13(X1[2],Y1[2])。
  組1相機2: 同上,把相同mark點移動到相機視野中,通過相同的操作得到坐標:Point21 (cRow21, cColumn21)、Point22 (cRow22, cColumn22)、Point23 (cRow23, cColumn23)、Robot21 (X2[0],Y2[0])、 Robot22(X2[1],Y2[2])、Robot23(X2[2],Y2[2])。

(2) 圖像距離和實際距離之間轉換比例關系的確定:

  通過數學運算可計算得到比例關系。

(3) 標準線斜率求取:

  需要在兩個相機的視野中各選取一點作為標準線的起始點和終點,然后求取此標準線在機械手坐標系中的斜率。調整機械手到合適位置,確定此處為標準位置,此時組1的兩支相機分別拍攝初始位置的兩個不同的mark點的圖像。通過模板匹配方法找到兩個相機初始位置視野中兩個mark點的中心坐標Point10(Row10,Column10)和Point20(Row20,Column20),Point10和Point20確定為標準線的起始點和終點。求取Point10在機械手中的坐標如圖6所示,下圖中XOY是機械手坐標系,X1O1Y1是組1相機1的圖像坐標。

  通過點到直線的距離運算可以得到d14,d15和d16的實際長度,由于在移動過程中使用的是同一個mark點,d1,d2,d3在相機1和相機2的視野中的值是一樣的。從而可以得到Point10在機械手坐標系中的實際坐標為:
  Point10X=X1[1]+d16+d2,Point10Y=Y1[1]+(d1-d15)。
  同樣可以得到Point20在機械手坐標系中的實際坐標:
  Point20X=X2[1]+d26+d2,Point20Y=Y2[1]+(d1-d25)。
  求取該標準線斜率;
  K=(Point20Y-Point10Y)/(Ponit20X-Point20Y)=(Y2[1]-Y1[1]-d25+d15)/(X2[1]-X1[1]+d26-d16)
  之后在每次定位時需要和此標準線的斜率進行比較,從而得到和標準線的夾角,最后進行旋轉校正。
注意:由于Point10和Point20會落在不同的位置,在計算Point10和Point20的實際坐標時上述公式會有所變化,但原理相同。

(1) 旋轉中心的確定

  依據三個點就可以確定一個圓的原理,讓機械手在初始位置旋轉三次,得到Robot31,Robot32和Robot33三個相對于機械手坐標系的坐標點,三個點的坐標就可以求出旋轉圓心的坐標。

定位校準

   以后在每次進行檢測時,得到的結果都和標準線進行比較,可以得到和標準線的夾角和相對于標準位置的位置偏差,根據得到的角度和位置偏差進行校正。在校正過程中需要先旋轉后平移,做一個閉環反饋系統實時校正。

應用領域:

手機或平板電腦觸摸屏和外殼的裝配定位。

標定方法拼接圖像

方案簡介:

  對于有些大幅面物體 ,可以通過拍攝多幅圖像,每幅圖像覆蓋物體的不同的部分。如果攝像機經過標定并且它們與一個共有的世界坐標系之間的相對關系已知,就可以通過不同的圖像進行精確測量。
  甚至可以將多幅圖像拼接為一副覆蓋整個物體的大圖,這個可以通過將每幅圖像都校正到同一個測量平面上實現。在結果圖像上,可以直接在世界坐標系中進行測量。

圖像拼接示意圖:

安裝:

  兩個攝像機或多個攝像機必須安裝在一個穩定的平臺上,并且每幅圖像覆蓋整個場景的一部分。攝像機的方位可以隨意,也就是說不需要它們看起來平行或垂直于物體表面。調整攝像機焦距、燈光以及交迭區域,使用一個大的可以覆蓋整個視野的參照物。為了保證可以將多幅圖像拼接為一副大圖,它們之間必須存在一個小的交迭區域。交迭區域可以很小,因為這個交迭區域只是為了保證在拼接的結果圖像中沒有縫隙,下圖為交疊區域示意圖。

標定:

圖像的標定可以分為兩個步驟。

確定每個攝像機的內參。可以分別對每個攝像機進行標定求取攝像機的內參。

  確定所有攝像機的外參。因為最后要將所有的圖像轉換到某一個世界坐標系中,所以需要使用一個大的標定物,這個標定物可以出現在所有的圖像中,它可以由多個標定板組合而成,標定板的數量和使用攝像機的數量一致。下圖為兩個相機分別拍攝到的標定圖像。

?

注意:為了確定攝像機的外參,每個攝像機只需要拍攝一副標定圖像就已經足夠。標定物在多個攝像機分別進行拍攝標定圖像的過程中不可以移動。理想情況下,這些標定圖像應該同時獲取。

將單個圖像拼接為一個大圖:

  首先,每幅圖像都必須進行校正,將這些圖像轉換到一個共有的坐標系中,它們之間就會正確匹配。在得到所有進行校正圖像需要的映射圖后,使用兩個攝像機拍攝的每個圖像對都可以進行校正并且高效的拼接。拼接的結果圖由兩幅校正后的圖像組成,每個校正后的圖像占圖像的一個部分,下圖為校正后的圖像和拼接結果。

應用領域:

液晶面板表面質量的檢測

非標定方法拼接圖像

簡介:

  此種方法和前三種方法相比精度較低,適用于不需要實現高精度拼接的應用場合。這種拼接方法的優點是不需要進行攝像機標定,并且每幅單獨的圖像可以自動進行排列。
拍攝單幅圖像規則:

在拍攝每幅圖像時需要遵循下面這些規則:

(1)相鄰的圖像之間必須有交迭

(2)圖像之間的交迭區域必須有比較明顯的特征,這樣就可以保證比較精確的自動匹配過程。如果在某些交迭區域內的特征不明顯那么可以通過定義合適的圖像對來克服。如果整個物體的特征都不是特別明顯,那么交迭區域就應該更大一些。

(3)交迭的圖像的縮放比例必須大約相等。一般情況下,縮放比例的不同不能超過 5-10%

(4)這些圖像的亮度應該相似,至少在交迭區域部分的亮度相似。否則,如果亮度區別非常明顯的話,圖像之間的接縫在結果圖像中就非常明顯,如下圖所示。

定義交疊圖像對:

需要定義一些交迭圖像對,通過匹配確定這些圖像對之間的轉換關系。匹配的過程只會應用在這些交迭圖像對上。

  如果需要拼接的圖像比較多,或者交迭圖像每行圖像比較多,此時合理徹底地安排圖像對的配置十分重要。否則就可能有些圖像不能實現精確匹配。這主要是因為噪聲造成點坐標的一些誤差導致不能準確計算圖像之間的轉換關系,這些誤差會由一個圖像傳到下一幅圖像上。
提取圖像中的特征點:
  提取出的特征點的數量影響運行時間以及匹配的結果。特征點的數量越多,匹配的過程就越慢。但是太少的特征點將增大產生錯誤結果的可能性。

在交迭的區域中匹配特征點并且確定圖像之間轉換關系:

  在進行圖像拼接過程中最重要的任務就是圖像對之間的匹配過程。匹配的圖像對可以有任意的平移和旋轉,唯一的要求就是圖像應該有大約相同的縮放比例。如果圖像之間平移和旋轉的信息可用,它就可以用來限定尋找區域,這樣就可以加速匹配過程并且使算法更加健壯。匹配特征點過程如下圖所示。

生成拼接圖像

知道了圖像對之間的轉換關系,就可以調用函數進行圖像拼接,下圖為拼接好的圖像。

注意:

  需要注意球面拼接的情況,上述方法只適用于攝像機繞光心旋轉或縮放。如果攝像機的移動包含平移或不是嚴格繞光心的旋轉,使用這種方法得到的拼接結果將不準確也就不能夠用在精確測量的場合。
應用領域:

(1)街景的拼接。

(2)電子地圖的制作。

(3)醫學影像的拼接















本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255083.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255083.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255083.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hadoop 使用FileSystem API 讀取數據

代碼: package com.hadoop;import java.io.IOException; import java.io.InputStream; import java.net.URI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.…

EPSON 機器人多任務下的互鎖處理

在很多時候,有多個任務具有動作命令指令。為了防止多個任務運行動作命令時,對僅有的一個機器人產生的控制沖突,有必要進行連鎖處理。一個任務進行機器人控制時,另一個任務則會等待控制權。這樣,各任務就可以完全按照預…

mysql高可用方案MHA介紹

mysql高可用方案MHA介紹概述MHA是一位日本MySQL大牛用Perl寫的一套MySQL故障切換方案,來保證數據庫系統的高可用.在宕機的時間內(通常10—30秒內),完成故障切換,部署MHA,可避免主從一致性問題,節…

SQL遞歸查詢(with as)

SQL遞歸查詢(with cte as) with cte as( select Id,Pid,DeptName,0 as lvl from Department where Id 2 union all select d.Id,d.Pid,d.DeptName,lvl1 from cte c inner join Department d on c.Id d.Pid)select * from cte1 表結構Id Pid …

庖丁解牛TLD(一)——開篇

最近在網上多次看到有關Zdenek Kalal的TLD的文章,說他做的工作如何的帥,看了一下TLD的視頻,感覺確實做的很好,有人夸張的說他這個系統可以和Kniect媲美,我倒是兩者的工作可比性不大,實現的方法也不同。但這…

Arduino從DHT11讀取溫濕度數據并顯示在1602LCD

硬件清單 Arduino NANO1602LCD PCF8574T模塊YL-47 DHT11模塊 連線 1. 連接LCD: PCF8574T模塊4pin(Gnd, Vcc, SDA i2c數據, SCL i2c時鐘) 連接至Arduino接口 Gnd -> Gnd, Vcc -> Vcc, SDA -> A4, SDL -> A52. 連接YL-47 DHT11: Gnd -> Gnd, Vcc -> Vcc, Data…

服務器性能測試

淺談服務器性能測試的全生命周期——從測試、結果分析到優化策略 原創 2016-06-16 Micheal 騰訊WeTest測試開發者的共同關注!作者:Micheal,騰訊資深后臺開發工程師。WeTest導讀 服務器性能測試是一項非常重要而且必要的工作,本文是…

庖丁解牛TLD(二)——初始化工作(為算法的準備)

我說的初始化,還不是算法的初始化工作,而是讀入圖像,響應鍵盤鼠標之類的工作。作者提供的代碼中的工作包含了從攝像頭讀取和從文件中讀取兩種輸入方案。這里介紹一下從文件輸入的辦法。因為OpenCV從視頻讀取圖像序列的辦法有很好的demo&#…

(轉載)Qt中MOC的一些限制

無意中發現在Qt的文檔里有一篇關于moc工具的limitation的文章,里頭的東西值得學習一下。 Qt一個鏈接的錯誤, 程序結構很簡單, 就是designer設計主界面,在代碼里用多重繼承方式使用, 奇怪的錯誤信息如下: mo…

庖丁解牛TLD(三)——算法初始化

上一講我提到對于算法的初始化工作主要是在tldInit這個函數里實現的。主要分為如下幾大步驟,1)初始化Detector。2)初始化Trajectory。3)訓練Detector 1)初始化Detector 其中bb_scan為掃描grid區域,該函數輸入為boundin…

Web測試容易忽略的地方

1.瀏覽器的后退按鈕 提交表單一條已經成功提交的記錄,back后再提交,看系統會如何處理。檢查多次使用back健的情況在有back的地方,back,回到原來的頁面,再back,重復幾次,看是否會報錯。 2.通過修…

[Android]你不知道的Android進程化(4)--進程通信AIDL框架

大家好,我系蒼王。以下是我這個系列的相關文章,有興趣可以參考一下,可以給個喜歡或者關注我的文章。[Android]如何做一個崩潰率少于千分之三噶應用app--章節列表Google爸爸,聽說要將一些插件化hook系統的變量屬性禁用,…

在未啟動程序情況 點擊視圖設計器 彈出未將對象引用窗體的解決方案

請問下 在未運行程序情況 點擊視圖設計器 彈出未將對象引用窗體 解決方案:1.看后臺進程是不是相關的進程在啟動,如果有關閉進程;重啟vs,即可2.重啟電腦轉載于:https://www.cnblogs.com/yang12311/p/5593838.html

圖像配準的步驟

目前,很難找到一種普適的方法能夠應對所有的配準情況,任何一種配準算法都必須考慮圖像的成像原理、幾何變形、噪聲影響、配準精度等因素。不過,從原理上將,配準算法可以大致分為以下四個步驟: (1&#xff0…

Jm86中的encode_one_macroblock注釋

Jm86中的encode_one_macroblock注釋 /*! ************************************************************************************** /brief* Mode Decision for a macroblock* //該函數的作用是編碼一個宏塊(包括幀間、幀內、幀內預測的方式)。*…

Python之路【第十七篇】:裝飾器

寫代碼的時候有一個原則,開放封閉原則(面向對象):對某些東西開放,對某些封閉,在裝飾器這里,函數內部是封閉的,不允許改變函數的內部。 裝飾器用來裝飾函數,可以讓函數在執行之前或者執行之后&am…

HALCON示例程序measure_chip.hdev芯片封裝檢測

HALCON示例程序measure_chip.hdev芯片封裝檢測 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘die_on_chip’) get_image_size (Image, Width, Height) dev_close_window () dev_open_window (0, 0, Width * 2, He…

工業機器人智能發展:視覺和觸覺感應簡化

機器人工業協會(Robotic Industries Association)指出,從2003到2005年間,北美機器人工業以20%的平均年增長率發展。在汽車市場需求疲軟以及外國廠商的壓力不斷增加的背景下,這一成就是如何取得的?成本的普遍…

ASP站點無法訪問怎么辦

確保啟用了目錄瀏覽功能 轉載于:https://www.cnblogs.com/acetaohai123/p/6571257.html

五、案例-指令參考-freemarker指令、表達式

案例-指令參考描述&#xff1a;本人自己測試寫了一遍&#xff0c;如有錯的地方&#xff0c;懂freemarker的朋友望指點指點&#xff01; 案例-指令參考 表達式 一、 Assign 1、<#assign name1"北京" name2"上海" name3"廣東"> 調用&#xf…