国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model

這篇具有很好參考價(jià)值的文章主要介紹了3D Matching:實(shí)現(xiàn)halcon中的find_surface_model。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

????????halcon中的三維匹配大致分為兩類(lèi),一類(lèi)是基于形狀的(Shape-Based),一類(lèi)是基于表面的(Surface-Based)?;谛螤畹钠ヅ淇捎糜趩蝹€(gè)2D圖像中定位復(fù)雜的3D物體,3D物體模型必須是CAD模型,且?guī)缀芜吘壡逦梢?jiàn),使用的相機(jī)也要預(yù)先進(jìn)行校準(zhǔn)。基于表面的匹配可用于3D場(chǎng)景中快速定位復(fù)雜的3D物體,比如在點(diǎn)云中尋找物體,模型可以從CAD或3D傳感器中獲得,可以包含光滑的表面,基于表面的匹配也稱(chēng)為“體積匹配”。

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model,3d,計(jì)算機(jī)視覺(jué),opencv

halcon中的surface matching

? ? ? ? halcon中surface matching參考文獻(xiàn)為:Model Globally, Match Locally: Efficient and Robust 3D Object Recognition,該方法已申請(qǐng)專(zhuān)利。通常我們只要知道模型中的三個(gè)點(diǎn),以及其在場(chǎng)景中對(duì)應(yīng)的三個(gè)點(diǎn)就可以確定位姿,如果每個(gè)點(diǎn)都有一個(gè)方向,那么只需要一組對(duì)應(yīng)點(diǎn)和轉(zhuǎn)動(dòng)角度就能確定位姿。文獻(xiàn)中定義了PPF(point pair feature)這樣的特征矢量,在創(chuàng)建模板時(shí)計(jì)算每個(gè)特征點(diǎn)與其他特征點(diǎn)的PPF,構(gòu)建哈希表,將具有相同 feature 的 point pair 放在一起,在匹配時(shí)從場(chǎng)景中選取一部分關(guān)鍵點(diǎn),將每個(gè)關(guān)鍵點(diǎn)與其他場(chǎng)景點(diǎn)計(jì)算PPF,根據(jù)存儲(chǔ)好的哈希表對(duì)模型點(diǎn)和轉(zhuǎn)動(dòng)角度進(jìn)行反向投票,超過(guò)設(shè)定分?jǐn)?shù)就認(rèn)為找到了模型的point pair,根據(jù)模型點(diǎn)和轉(zhuǎn)動(dòng)角度算出變換矩陣得到初始位姿,再用ICP求精。

? ? ? ? 基于PPF的surface matching網(wǎng)上有很多文章,GitHub上有很多開(kāi)源實(shí)現(xiàn),opencv中也實(shí)現(xiàn)了該算法,對(duì)于算法的原理我不再詳細(xì)展開(kāi),感興趣的可以自己查找相關(guān)資料。這里只談一下我的實(shí)現(xiàn)過(guò)程及所遇到的問(wèn)題。

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model,3d,計(jì)算機(jī)視覺(jué),opencv

模型點(diǎn)云

? ? ? ? 首先是模型訓(xùn)練,最主要的問(wèn)題是點(diǎn)云降采樣,降采樣可以加速計(jì)算,并且避免一些很接近的點(diǎn),在點(diǎn)云匹配過(guò)程也需要對(duì)場(chǎng)景進(jìn)行降采樣,點(diǎn)云的降采樣有兩種辦法,一種是使用kdtree,一種是使用octree,目前兩種方法我還在對(duì)比中,降采樣之后的PPF計(jì)算,需要限制兩個(gè)點(diǎn)的距離和法向量夾角,夾角超過(guò)30度都會(huì)保留,計(jì)算好后保存至本地。

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model,3d,計(jì)算機(jī)視覺(jué),opencv

模型點(diǎn)云(降采樣后)

? ? ? ? 第二步是模型匹配,先對(duì)場(chǎng)景點(diǎn)降采樣,之后選取一定比例的場(chǎng)景點(diǎn)作為關(guān)鍵點(diǎn),然后計(jì)算每個(gè)關(guān)鍵點(diǎn)與其他場(chǎng)景點(diǎn)的PPF,根據(jù)模型訓(xùn)練時(shí)保存的哈希表對(duì)模型點(diǎn)和轉(zhuǎn)動(dòng)角度進(jìn)行投票,如果票數(shù)高于設(shè)定值,保存關(guān)鍵點(diǎn)、模型點(diǎn)與轉(zhuǎn)動(dòng)角度,并計(jì)算變換矩陣,該矩陣即為模型點(diǎn)對(duì)應(yīng)關(guān)鍵點(diǎn)的位姿。值得注意的是計(jì)算PPF時(shí)要以關(guān)鍵點(diǎn)為圓心,選取指定半徑范圍內(nèi)的場(chǎng)景點(diǎn),因?yàn)榫嚯x太遠(yuǎn)的兩個(gè)點(diǎn)不可能處在同一物體上,在Going Further with Point Pair Features這篇文章就指出使用一大一小兩個(gè)voting ball做兩輪投票,大小半徑由bounding box確定。

? ? ? ? 第三步是位姿聚類(lèi),上一步中得到了很多位姿,這里我們要進(jìn)行兩次聚類(lèi),第一次是針對(duì)一個(gè)參考點(diǎn)對(duì)應(yīng)多個(gè)位姿,第二次是針對(duì)一個(gè)位姿對(duì)應(yīng)多個(gè)參考點(diǎn),兩種情況下都需要合并,第一次聚類(lèi)將位姿轉(zhuǎn)換為axis-angle+translate的形式,通過(guò)旋轉(zhuǎn)角度和平移量判斷是否為同類(lèi),第二次聚類(lèi)將位姿轉(zhuǎn)換為rotation+translate的形式,直接對(duì)模型的box center進(jìn)行旋轉(zhuǎn)+平移,如果變換后的點(diǎn)非常接近,直接合并。

? ? ? ? 第四步是點(diǎn)云配準(zhǔn),即ICP pose refinement,以第三步得到的位姿作為初始值,在場(chǎng)景點(diǎn)中尋找模型點(diǎn)的最近點(diǎn),根據(jù)距離和方向確定對(duì)應(yīng)關(guān)系,由新的點(diǎn)對(duì)計(jì)算新的位姿,再以新的位姿進(jìn)行下一次計(jì)算,迭代至收斂或發(fā)散。對(duì)于收斂的結(jié)果重新進(jìn)行評(píng)分,落在模型上的點(diǎn)越多,分?jǐn)?shù)越高。在配準(zhǔn)過(guò)程中找到正確的對(duì)應(yīng)點(diǎn)以及使用穩(wěn)健的icp非常關(guān)鍵,對(duì)應(yīng)點(diǎn)的查找我們借助kdtree或者octree,icp使用robust symmetric icp。

? ? ? ? 目前的速度和精度還可以,可視化是在cloudcompare中完成,后續(xù)我會(huì)發(fā)布測(cè)試demo,對(duì)于位姿篩選、ICP算法、投票過(guò)程,我會(huì)繼續(xù)深入研究,也歡迎大家與我討論。

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model,3d,計(jì)算機(jī)視覺(jué),opencv

匹配結(jié)果1

3D Matching:實(shí)現(xiàn)halcon中的find_surface_model,3d,計(jì)算機(jī)視覺(jué),opencv匹配結(jié)果2文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-847718.html

到了這里,關(guān)于3D Matching:實(shí)現(xiàn)halcon中的find_surface_model的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Halcon中的一些3D算子

    Halcon中的一些3D算子

    1.read_object_model_3d? 從文件讀取一個(gè)3d模型 如下圖,讀的一個(gè)ply文件出來(lái)是個(gè)3d點(diǎn)云模型 ?2.visualize_object_model_3d? 交互式展示3d模型 即上個(gè)算子讀出來(lái)后,通過(guò)這個(gè)算子可以把3d模型顯示出來(lái)旋轉(zhuǎn)、平移,縮放來(lái)觀(guān)察操作 算子簽名 visualize_object_model_3d( : : WindowHandle, ObjectModel3D,

    2024年02月11日
    瀏覽(23)
  • 嚼一嚼Halcon中的3D手眼標(biāo)定

    嚼一嚼Halcon中的3D手眼標(biāo)定

    一、問(wèn)題概述 1、何為手眼標(biāo)定? 要讓機(jī)器人的手抓住杯子,就必須知道 杯子跟手的相對(duì)位置關(guān)系 ,而杯子的位置則是通過(guò)機(jī)器人的眼睛看見(jiàn)的,所以,我們只需要知道 機(jī)器人的手和眼睛的轉(zhuǎn)換關(guān)系 ,就可以隨時(shí)抓取機(jī)器人眼睛所看到的物體了。 2、手眼標(biāo)定的2種形式 1)

    2024年02月04日
    瀏覽(21)
  • HALCON的綜合應(yīng)用案例【01】: 3D 算法處理在 Visual Studio 2019 C# 環(huán)境中的集成實(shí)例

    HALCON的綜合應(yīng)用案例【01】: 3D 算法處理在 Visual Studio 2019 C# 環(huán)境中的集成實(shí)例

    HALCON 為一款比較流行的商業(yè)視覺(jué)處理軟件,他提供了多種開(kāi)發(fā)的模式,可以在HALCON中開(kāi)發(fā),也可以將HALCON的設(shè)計(jì)通過(guò)導(dǎo)出庫(kù)的形式集成到其他開(kāi)發(fā)環(huán)境里面,以方便系統(tǒng)集成。本文為筆者自己的一個(gè)3D 視覺(jué)檢測(cè)項(xiàng)目,利用HALCON的3D 庫(kù)開(kāi)發(fā)算法,然后,將算法集成到 MS-VS-C#的環(huán)

    2024年02月06日
    瀏覽(24)
  • Halcon—3D測(cè)量算法的那點(diǎn)數(shù)學(xué)公式和代碼實(shí)現(xiàn)

    ?? 個(gè)人主頁(yè):蘇州程序大白 ?? 個(gè)人社區(qū):CSDN全國(guó)各地程序猿 ??作者介紹:中國(guó)DBA聯(lián)盟(ACDU)成員,CSDN全國(guó)各地程序猿(媛)聚集地管理員。目前從事工業(yè)自動(dòng)化軟件開(kāi)發(fā)工作。擅長(zhǎng)C#、Java、機(jī)器視覺(jué)、底層算法等語(yǔ)言。2019年成立柒月軟件工作室,2021年注冊(cè)蘇州凱捷智能科技

    2023年04月08日
    瀏覽(23)
  • 3D Surface Subdivision Methods 3D 曲面細(xì)分方法

    3D Surface Subdivision Methods 3D 曲面細(xì)分方法

    原文地址: https://doc.cgal.org/latest/Subdivision_method_3/index.html#Chapter_3D_Surface_Subdivision_Methods 細(xì)分方法遞歸地細(xì)化控制網(wǎng)格并生成逼近極限表面的點(diǎn)。 該包由四種流行的細(xì)分方法及其細(xì)化主機(jī)組成。 支持的細(xì)分方法包括 Catmull-Clark、Loop、Doo-Sabin 和 √3 細(xì)分。 它們各自的細(xì)化宿主是

    2024年01月19日
    瀏覽(22)
  • HALCON visualize_object_model_3d 算子原理的理解以及使用HSmartWindowControlWPF重實(shí)現(xiàn)

    HALCON visualize_object_model_3d 算子原理的理解以及使用HSmartWindowControlWPF重實(shí)現(xiàn)

    1. 參數(shù)說(shuō)明 WindowHandle:顯示點(diǎn)云的窗口句柄 ObjectModel3D:待顯示的點(diǎn)云對(duì)象 CamParam:相機(jī)內(nèi)參 此處的相機(jī)指的是一個(gè)虛擬相機(jī),為觀(guān)察點(diǎn)云提供一個(gè)視角,如下圖,點(diǎn)云在一個(gè)場(chǎng)景坐標(biāo)系中(SCS),我們?cè)赪indowHandle中看到的點(diǎn)云效果就是通過(guò)此虛擬相機(jī)看到的點(diǎn)云 該值可以

    2024年02月14日
    瀏覽(145)
  • Open3D Surface reconstruction 表面重建

    在許多情況下,我們希望生成密集的3D幾何體,即三角形網(wǎng)格(triangle mesh)。然而,從多視點(diǎn)立體方法或深度傳感器中,我們只能獲得非結(jié)構(gòu)化的點(diǎn)云。要從此非結(jié)構(gòu)化輸入中獲取三角形網(wǎng)格,我們需要執(zhí)行表面重建。在文獻(xiàn)中存在幾種方法,Open3D目前實(shí)現(xiàn)了以下方法: Alpha

    2023年04月27日
    瀏覽(15)
  • LeetCode 892. Surface Area of 3D Shapes【數(shù)組,數(shù)學(xué)】簡(jiǎn)單

    LeetCode 892. Surface Area of 3D Shapes【數(shù)組,數(shù)學(xué)】簡(jiǎn)單

    本文屬于「征服LeetCode」系列文章之一,這一系列正式開(kāi)始于2021/08/12。由于LeetCode上部分題目有鎖,本系列將至少持續(xù)到刷完所有無(wú)鎖題之日為止;由于LeetCode還在不斷地創(chuàng)建新題,本系列的終止日期可能是永遠(yuǎn)。在這一系列刷題文章中,我不僅會(huì)講解多種解題思路及其優(yōu)化,

    2024年02月10日
    瀏覽(14)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包