一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HALCON的3D相機標定

新機器視覺 ? 來源:AI圖像 ? 作者:AI圖像 ? 2020-10-31 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉(zhuǎn)自:微信公眾號AI圖像

創(chuàng)建標定數(shù)據(jù)模型

你可以用算子create_calib_data創(chuàng)建一個標定數(shù)據(jù)模型,指定相機和標定物體的數(shù)量。當用一個相機的時候,你也用一個單獨的標定物體。

然后,你要做的是:

指定相機內(nèi)部參數(shù)的初始值

描述標定物體

指定相機內(nèi)參的初始值

你可以用算子set_calib_data_cam_param來設(shè)置相機內(nèi)部參數(shù)。

除了標定數(shù)據(jù)模型,算子也需要下面的參數(shù)作為輸入:

CameraIdx:相機的索引(0代表單個相機)

CameraType: 相機的類型

CameraParam: 相機內(nèi)參初始值的一個元組

那種畸變模型去使用

對于面陣相機,兩種畸變模型可供使用:劃分模型和多項式模型。劃分模型用一個參數(shù)來構(gòu)造徑向畸變,多項式模型用5個參數(shù)來構(gòu)造徑向和離心畸變。

劃分模型的優(yōu)勢是畸變可以被快速的應(yīng)用,尤其是對于反向畸變,例如如果世界坐標被映射到圖像平面。還有,如果只有幾張標定圖像被使用或者視野覆蓋不足,劃分模型則會比多項式模型得到更穩(wěn)定的結(jié)果。多項式模型的主要優(yōu)勢是它可以更精確的構(gòu)造畸變,因為其用了更高階的項去構(gòu)造徑向畸變,并且它也構(gòu)造了離心畸變。需要注意的是,多項式模型不能夠反推。因此,反向畸變必須被迭代計算看,其要比劃分模型反向畸變的計算要慢。

一般的,劃分模型應(yīng)該被用來標定。如果標定的精度不高,可以用多項式模型。但是需要注意的是,被用于多項式模型的標定序列必須提供一個完整的區(qū)域覆蓋,這個區(qū)域在后邊用于測量?;兛赡軙跊]有被標定板覆蓋的區(qū)域外邊被不準確的構(gòu)造出來。這種情況發(fā)生在圖像邊緣,也發(fā)生在標定板沒有覆蓋到的視野區(qū)域內(nèi)部。

描述標定物體

用算子set_calib_data_calib_object,你可以指定標定物體所需的信息。

如果你用的是HALCON的標定板,對應(yīng)的描述文件名字就足夠了。

如何獲得一個合適的標定板

確定給CCD相機的相機參數(shù)最簡單的方法就是利用HALCON的標定板(如圖1所示)。在這種情況下,找標定把的整個過程,提取標定標志點,以及決定提取標定標志點和各自3D世界坐標之間的對應(yīng)關(guān)系都可以自動的被執(zhí)行。更重要的是,標定板更加精確,1um或更小,對于高精度的應(yīng)用其是前提條件。

兩種類型的HALCON標定板是被支持的。尤其是,六角形排列的標志點和矩形排列的標志點的標定板是可行的。具有六角形排列的標定板是在HALCON12中引進的,在大多數(shù)應(yīng)用中被推薦使用,因為相比于矩形排列標志點的標定板,其提供了如下的優(yōu)點:

l具有矩形排列標志點的標定板應(yīng)該充滿圖像視野的四分之一。為了覆蓋包括不同傾斜的整個視野,許多圖像(至少10到20)是需要。因為六角形排列的標定板包含了眾多數(shù)目的標志點,因此用單個圖像就能夠覆蓋整個圖像面積,更少的圖像(6到7張)被需要去得到可比較的標定 結(jié)果。

l矩形排列標志點的標定板必須在圖像全部可見的,然而六角形排列的標定板可以伸出圖像的邊緣。進而,當放置標定板的時候,后者就不需要太多的在意。標定板圖像的獲取就變的更快和方便,而沒有穩(wěn)定性的損失。

一個六邊形排列的標定板在單張圖像上應(yīng)該充滿整個圖像區(qū)域。一個矩形排列的標定板應(yīng)該至少覆蓋圖像區(qū)域的9分之一。為了提高標定的質(zhì)量,我們推薦一個標定板至少覆蓋圖像區(qū)域的四分之一。

使用你自己的標定物體

利用HALCON,你不受限于使用一個平面標定板,例如HALCON標定板。你可以使用一個3D標定板或者甚至任意特征點(自然的標志)。僅有要求就是模型點的3D世界位置是已知的,并且具有很高的精度。

然后,你就簡單將標定物體的所有點(標志點)的3D坐標作為一個元組傳到算子set_calib_data_calib_object中的CalibObjeDescr。所有點的x, y, z坐標必須以【x, y, z】元組的順序進行打包。

然而,需要主要的是,如果你用自己的標定物,你就不能再用find_calib_object。相反,你必須自己來確定模型點的2D位置和對3D點的對應(yīng)關(guān)系。

在多位姿上觀察標定物

標定的主要輸入數(shù)據(jù)是所謂的觀察。為此,標定物在不同的位姿被放置。對于每一個位姿,相機獲取一張圖像。在這張圖像上,標定物的標志點被提取,還有他們的(像素)坐標,連同相機的索引,標定物,標定物的位姿,包含響應(yīng)標志點的索引,都被存儲在標定數(shù)據(jù)模型中。

如果你使用標準的HALCON標定板,你可以用算子find_calib_object去提取坐標,其將自動存儲獲得的信息到標定數(shù)據(jù)模型,包括標志點的坐標和標志點對應(yīng)的列表。

如果你用的是自己的標定物,你必須提取其標志點和確定其對應(yīng)關(guān)系,然后用set_calib_data_observ_points將信息存儲在標定數(shù)據(jù)模型中。

獲取標定圖像的規(guī)則

如果你想獲得準確的結(jié)果,請準照下面的規(guī)則:

用一個干凈的標定板

用多個圖像覆蓋整個視野,例如在視野所有區(qū)域至少放置標定一次

變換標定板的方向,包含標定板繞著x軸和y軸旋轉(zhuǎn),這樣標定圖案的透視畸變是清晰可見的。沒有一些傾斜的標定板,焦距是不能夠被合理的計算出來(接近45度的傾斜角度是被推薦的)

對于六角形排列的標定板,至少使用6張圖像,矩形排列的標定板10到15張

對于矩形排列的標定板,用一個背景比標定板更暗的光照

標定把亮的部分的灰度值至少為100

標定板的亮暗對比應(yīng)該超過100

用一個使標定板均勻的光照

圖像不能過曝(圖像亮的部分應(yīng)該嚴格低于255)

圓的直徑應(yīng)該至少20個像素

圓的直徑的像素至少20個像素

對于標定板大小的選取,六角形排列的標定板應(yīng)該覆蓋整個圖像,對于矩形排列的標定板,至少覆蓋整個圖像的1/4

六角形排列的標定板,至少一個定位圖像在圖像中是完全可見的。如果至少兩個定位圖是可見的,可能去檢測是否標定板是反射的。對于矩形排列的標定把,標定應(yīng)該在圖像中完全可見的。

圖像應(yīng)該盡可能的包含一點噪聲

圖像應(yīng)該被嚴格聚焦,例如在物體之間的過度應(yīng)該被清晰的界定開。

需要注意的是,一個好的標定結(jié)果僅僅是在相機視野中標定標志點均勻分布的情況下才能獲得。你可以想象一下相對于視野的3D空間的一部分作為一個標定體積,如圖2所示,這里展示了,當從不同角度看時,標定板的兩個位姿和它們標定標志點的位置??梢钥吹?,例如從面1看,更大的部分沒有被標志點所覆蓋。為了獲得更標志點的均勻分布,進而得到一個好的標定結(jié)果,你必須在你其他的圖像中放置標定板,進而對于整個視角,標定容積空的部分被最小化。注意的是,當有一個非常小的標定板(相比于視野而言),這就意味著比推薦的更多的標定圖像數(shù)量被需要使用。

如果一張圖像被用于標定過程或者如果標定板的方向在不同的標定圖像不發(fā)生變化,就不可能很好的確定焦距和相機的位姿;在這種情況下,僅僅聚焦之間的比率和標定板和相機之間的距離被確定下來。然而,在標定板平面進行世界坐標的測量是可能,但是不可能去讓相機參數(shù)去適應(yīng)在另一個面上進行測量,例如標定板被放置的面。

圖1:標定容積的查看:(左)具有兩個標定位姿的標定容積和(右)當不同角度看時,標定標志點相對應(yīng)的分布。對于一個好的標定結(jié)果,沒有標定標志點的區(qū)域(尤其從面1視角則更大)必須通過更多標定板位姿的謹慎選擇達到最小化。

結(jié)果世界坐標的精度,除了在圖像中的測量精度外,非常依賴被用來標定進程中所用的圖像的數(shù)量。越多圖像(具有更大不同的標定板位姿)被使用,更精確的結(jié)果將被獲取。

提取HALCON標定板上的標志點

算子find_calib_object尋找標定板,決定了標定標志點的圖像坐標,并具有很高的精度,最后將結(jié)果存儲在標定數(shù)據(jù)模型中。

需要注意的是find_caltab和find_marks_and_pose僅僅被用于矩形排列的標定板。還有,它們需要復(fù)雜的參數(shù)調(diào)整。相反的是,可以用于所有標準的HALCON標定板,自動選擇合適的參數(shù),因此更容易去使用。

限制標定到特定的參數(shù)

如果某相機參數(shù)已知了,你可以用算子set_calib_data從標定中排除它們,類似的,你可以限制標定到某些參數(shù)。

執(zhí)行標定

在準備了標定數(shù)據(jù)模型以后,可以通過調(diào)用calibrate_cameras來執(zhí)行標定,用標定數(shù)據(jù)模型作為輸入:

作為一個直接結(jié)果是,僅僅是標定錯誤被返回。你可以用算子get_calib_data來更進一步的去分析標定結(jié)果的質(zhì)量。

主要的標定結(jié)果,例如相機的內(nèi)參,被存儲在標定數(shù)據(jù)模型中。

訪問標定結(jié)果

算子calibrate_cameras的主要結(jié)果由相機內(nèi)參和每一張圖像標定板的位姿組成。算子將它們存儲在標定數(shù)據(jù)模型中,可以用算子get_calib_data來訪問它們。

相機外參并不能直接被獲取,因為所需的世界坐標系統(tǒng)的信息沒有存儲在標定數(shù)據(jù)模型中。然而,如果標定板被直接放置在測量平面上,其位姿可以被用來很容易的得到相機的外參,其是測量平面的位姿。

確定相機外參

相機外參描述了測量平面和相機的關(guān)系,例如如果僅僅外參是已知,就可能將相機坐標系統(tǒng)(CCS)轉(zhuǎn)化到測量平面的坐標系統(tǒng),反之亦然。在HALCON中,測量平面被定義為世界坐標系統(tǒng)(WCS)z=0的平面。

相機外參可以用不同的方法來確定:

利用從某一個標定圖像獲取的位姿,其中標定圖像中標定板被直接放置在測量平面上。在這種情況下,你就可以用算子get_calib_data來獲得其位姿。

通過一個標定板被直接放置在測量平面的額外圖像,將相機內(nèi)參的確定從相機外參的確定分離出來。應(yīng)用find_calib_object去提取標定標志點和位姿。

自己去確定3D世界點和它們在圖像映射的對應(yīng)關(guān)系,然后調(diào)用vector_to_pose。

如果你僅僅需要去精確地測量一個物體的尺寸,而不是在一個給定坐標系統(tǒng)的物體的絕對位置,前兩種方法中一種就可以使用。

后兩種情況具有相機外參的決定不依賴相機內(nèi)參的優(yōu)勢。如果用單個相機在數(shù)個平面上做測量,或者不能在原地標定相機,這將是更加靈活和有用。

下面將對不同的情況做詳細的講解。

在標定圖像之一將標定板放置在測量平面上

第一種情況是一種最容易決定外參的方法。標定板必須直接放置在測量平面上,例如流水線。

因為通過算子calibrate_cameras,標定板的位姿可以確定下來,你可以通過算子get_calib_data簡單的訪問其位姿。這樣,用一個單一的標定步驟,內(nèi)參和外參就能確定下來。這里,在第一個標定圖像中標定板(標定物索引0)的位姿被確定。請注意的是每一個位姿是由7個值組成的。

如果標定把是無限的薄的,結(jié)果位姿將是測量平面的真實位姿。因為真實的標定板有一個厚度d>0,標定板的位姿通過一個垂直于測量平面的量d的移動,例如沿著WCS的z軸。為了矯正它,我們需要沿著WCS的z軸去移動位姿d個單位。為了執(zhí)行這個移動,算子set_origin_pose被利用:

一般地,只要標定板和測量平面的空間關(guān)系是已知的,標定板在WCS中就可以任意地鎖定方向(如圖3所示)。然后,為了從標定板位姿中獲得測量平面的位姿,一個剛性轉(zhuǎn)換時必須的。在下面的例子中,標定板的位姿沿著y軸平移,接著繞著x軸旋轉(zhuǎn)。

在一個單獨圖像中放置標定板在測量平面上

如果用HALCON標定板的優(yōu)勢可以將相機內(nèi)參和外參分離所具有的靈活性相結(jié)合,第二種相機外參確定的方法可以使用。

首先,相機按照標定步驟進行標定。這可以優(yōu)先于相機在最終使用點安裝之前完成。

然后,在最終使用點安裝完相機以后,外參就可以被確定。僅僅需要做的就是取一張圖,圖中標定被直接放在了測量平面上。從這張圖中,外參就可以被確定下來。這里,內(nèi)參,標定板被直接放在測量平面上的圖像和標定標志點的世界坐標可從文件中讀取。

然后,標定標志點和標定板的位姿被提?。?/p>

最后,考慮到標定板的厚度,被給相機位姿原點的值平移標定板厚度個單位。

圖3 標定板和測量平面的關(guān)系

需要注意的是,如果你想將標定步驟分為兩個部分來完成的話,相機的聚焦是很重要的,因為改變焦點就相當于改變焦距,其是內(nèi)參的一部分。

利用已知的3D點和它們對應(yīng)的圖像點

如果在給定的世界坐標系統(tǒng)中執(zhí)行測量是必要的,對于外參的確定,第三種情況就可以使用。這里,你需要知道至少不再一條直線上3個點的3D世界坐標,然后,你必須確定這些點映射后相對應(yīng)的圖像坐標。現(xiàn)在,算子vector_to_pose可以被用來確定相機的外參。

下面的程序作為一個確定外參的例子。

首先,三個點的世界坐標被設(shè)定。

然后,在圖像上這些點映射后的圖像坐標被確定。在這個例子中,它們被很簡單的設(shè)定位一些接近的 值。實際上,它們應(yīng)該以亞像素的精度確定下來,因為他們定義了相機外參。

最后,算子vector_to_pose在已知對應(yīng)關(guān)系和相機內(nèi)參的情況下,被調(diào)用。

從標定數(shù)據(jù)模型中刪除觀測圖

為了確定有關(guān)標定的觀測效果,或者從標定數(shù)據(jù)模型中移除壞質(zhì)量的觀測數(shù)據(jù),可以用算子remove_calib_data_observ刪除一個觀測圖。

當再次執(zhí)行相機標定的時候,需要注意標定錯誤的改變。

保存結(jié)果和銷毀標定數(shù)據(jù)模型

在訪問結(jié)果(或者用算子write_cam_par和write_pose來存儲它們),你可以借助算子clear_calib_data銷毀標定數(shù)據(jù)模型。

原文標題:HALCON高級篇:3D相機標定

文章出處:【微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 3D
    3D
    +關(guān)注

    關(guān)注

    9

    文章

    2959

    瀏覽量

    110753
  • 相機
    +關(guān)注

    關(guān)注

    4

    文章

    1468

    瀏覽量

    54688

原文標題:HALCON高級篇:3D相機標定

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    遷移科技推出全新3D智能相機

    工業(yè)視覺領(lǐng)域迎來里程碑式突破!遷移科技正式發(fā)布全系升級的3D智能相機,將強悍算力直接嵌入相機內(nèi)部,替代傳統(tǒng) “相機 + 工控機 + 顯卡” 的系統(tǒng)架構(gòu)。通過集成化設(shè)計,在空間節(jié)省、成本
    的頭像 發(fā)表于 05-29 13:58 ?367次閱讀

    3D AD庫文件

    3D庫文件
    發(fā)表于 05-28 13:57 ?5次下載

    2025年3D工業(yè)相機選型及推薦

    3D工業(yè)相機的選型
    的頭像 發(fā)表于 05-21 16:49 ?365次閱讀
    2025年<b class='flag-5'>3D</b>工業(yè)<b class='flag-5'>相機</b>選型及推薦

    3D閃存的制造工藝與挑戰(zhàn)

    3D閃存有著更大容量、更低成本和更高性能的優(yōu)勢,本文介紹了3D閃存的制造工藝與挑戰(zhàn)。
    的頭像 發(fā)表于 04-08 14:38 ?1053次閱讀
    <b class='flag-5'>3D</b>閃存的制造工藝與挑戰(zhàn)

    對于結(jié)構(gòu)光測量、3D視覺的應(yīng)用,使用100%offset的lightcrafter是否能用于點云生成的應(yīng)用?

    你好,我有一些對于offset的疑問,希望能夠得到解答。 對于結(jié)構(gòu)光測量、3D視覺的應(yīng)用,使用100%offset的lightcrafter是否能用于點云生成的應(yīng)用? 標定和三角重建算法和zero
    發(fā)表于 02-28 06:20

    DLP_LightCrafter_4500_3D_Scan_Application軟件進行相機和投影儀標定時,進入相機拍照界面后程序未響應(yīng)然后退出怎么解決?

    DLP_LightCrafter_4500_3D_Scan_Application 軟件進行相機和投影儀標定時,進入相機拍照界面后,程序未響應(yīng)然后退出,參考手冊DLPU019B沒有相
    發(fā)表于 02-26 06:14

    肇觀電子首發(fā)自標定3D深度相機

    肇觀電子近日宣布,憑借自研VPU芯片的異構(gòu)計算架構(gòu)與實時動態(tài)優(yōu)化算法,成功實現(xiàn)了深度相機的全生命周期自標定技術(shù),為全球首創(chuàng)。
    的頭像 發(fā)表于 02-10 17:54 ?624次閱讀

    SciChart 3D for WPF圖表庫

    SciChart 3D for WPF 是一個實時、高性能的 WPF 3D 圖表庫,專為金融、醫(yī)療和科學(xué)應(yīng)用程序而設(shè)計。非常適合需要極致性能和豐富的交互式 3D 圖表的項目。 使用我們
    的頭像 發(fā)表于 01-23 13:49 ?621次閱讀
    SciChart <b class='flag-5'>3D</b> for WPF圖表庫

    騰訊混元3D AI創(chuàng)作引擎正式上線

    近日,騰訊公司宣布其自主研發(fā)的混元3D AI創(chuàng)作引擎已正式上線。這一創(chuàng)新性的創(chuàng)作工具,標志著騰訊在3D內(nèi)容生成領(lǐng)域邁出了重要一步。 混元3D AI創(chuàng)作引擎的核心功能極為強大,用戶只需通過簡單的提示詞
    的頭像 發(fā)表于 01-22 10:26 ?586次閱讀

    C#通過Halcon實現(xiàn)3D點云重繪

    C# 通過 Halcon 實現(xiàn) 3D 點云重繪
    發(fā)表于 01-05 09:16 ?0次下載

    C#基于Halcon實現(xiàn)Basler相機采圖

    C#基于Halcon實現(xiàn)Basler相機采圖
    發(fā)表于 01-05 09:16 ?0次下載

    技術(shù)指南丨深視智能3D相機上下對射測厚操作流程

    深視智能激光三維輪廓測量儀上下對射測厚操作流程說明旨在協(xié)助用戶更加全面地了解我們的傳感器設(shè)備。①帶圓孔定位上下測厚標定:基本流程:安裝好相機,掃描標定塊。在做完3D
    的頭像 發(fā)表于 08-12 08:37 ?1101次閱讀
    技術(shù)指南丨深視智能<b class='flag-5'>3D</b><b class='flag-5'>相機</b>上下對射測厚操作流程

    深視智能3D相機2.5D模式高度差測量SOP流程

    深視智能3D相機2.5D模式高度差測量SOP流程
    的頭像 發(fā)表于 07-27 08:41 ?1157次閱讀
    深視智能<b class='flag-5'>3D</b><b class='flag-5'>相機</b>2.5<b class='flag-5'>D</b>模式高度差測量SOP流程

    深視智能3D相機在軸承內(nèi)徑檢測的應(yīng)用

    3D相機
    深視智能科技
    發(fā)布于 :2024年07月23日 10:33:54