shape_based_matching icon indicating copy to clipboard operation
shape_based_matching copied to clipboard

请问算子的匹配精度够不够?

Open libaineu2004 opened this issue 3 years ago • 18 comments

halcon论坛有关讨论: http://www.ihalcon.com/read-16881-1.html 有热心网友的回复: opencv自带的匹配一般满足不了工业需求,对于精度要求不高的场合,shape_based_matching就够用了,还带缩放和旋转噢。 用相机拿实物测试一下就知道了,相机和实物不动,有时候测试出来的角度不一样,有些偏1°上下波动,就是同一条件多次触发测试。当然这和检测的图像也有一些关系,有些效果好的图像是比较稳定的。

libaineu2004 avatar Apr 13 '21 02:04 libaineu2004

不知道用了ICP没,不用的话波动2个像素左右正常

meiqua avatar Apr 13 '21 12:04 meiqua

不知道用了ICP没,不用的话波动2个像素左右正常

能否简单介绍一下ICP的原理?谢谢

libaineu2004 avatar Apr 13 '21 14:04 libaineu2004

网上很多介绍

meiqua avatar Apr 15 '21 05:04 meiqua

不知道用了ICP没,不用的话波动2个像素左右正常

请问一下,相机和物体不动,有时候选择的模板有一定差异,icp之后的结果也有1-2个像素的差异,有什么办法可以进一步提高匹配的稳定性吗?

zhirui-gao avatar Apr 15 '21 07:04 zhirui-gao

@zhirui-gao 模板有差异的话后面确实修正不回来,因为模板是基准。

meiqua avatar Apr 17 '21 01:04 meiqua

@zhirui-gao 模板有差异的话后面确实修正不回来,因为模板是基准。

好的,谢谢

zhirui-gao avatar Apr 17 '21 02:04 zhirui-gao

请问一下,subpixel分支主要修改的哪些地方,亚像素是指的icp的亚像素还是linemod的亚像素?

zhirui-gao avatar Apr 25 '21 09:04 zhirui-gao

@zhirui-gao 主要修改了ICP

meiqua avatar Apr 27 '21 05:04 meiqua

master分支支持icp吗?

libaineu2004 avatar Aug 03 '21 01:08 libaineu2004

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

DennisLiu1993 avatar May 12 '22 14:05 DennisLiu1993

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

源码的算子性能如何?500万以上像素的图片,运算速度快不快?有没有采用simd指令集来实现CPU加速?

libaineu2004 avatar May 12 '22 15:05 libaineu2004

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

谢谢,我之后会尝试一下

zhirui-gao avatar May 12 '22 15:05 zhirui-gao

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

源码的算子性能如何?500万以上像素的图片,运算速度快不快?有没有采用simd指令集来实现CPU加速?

怎樣算快? 這樣快不快? Inspection Image : 4024 X 3036

Template Image: 762 X 521

Library Index Score Angle PosX PosY Execution Time
My Tool 0 1 0.046 1725.857 1045.433 112ms
My Tool 1 0.998 -119.979 2662.869 1537.446
My Tool 2 0.991 120.150 1768.936 2098.494
Cognex 0 1 0.030 1725.960 1045.470 125ms
Cognex 1 0.989 -119.960 2663.750 1538.040
Cognex 2 0.983 120.090 1769.250 2099.410
Aisys 0 1 0 1726.000 1045.500 202ms
Aisys 1 0.990 -119.935 2663.630 1539.060
Aisys 2 0.979 120.000 1769.63 2099.780

DennisLiu1993 avatar May 17 '22 10:05 DennisLiu1993

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

源码的算子性能如何?500万以上像素的图片,运算速度快不快?有没有采用simd指令集来实现CPU加速?

怎樣算快? 這樣快不快? Inspection Image : 4024 X 3036

Template Image: 762 X 521

Library Index Score Angle PosX PosY Execution Time My Tool 0 1 0.046 1725.857 1045.433 112ms My Tool 1 0.998 -119.979 2662.869 1537.446 My Tool 2 0.991 120.150 1768.936 2098.494 Cognex 0 1 0.030 1725.960 1045.470 125ms Cognex 1 0.989 -119.960 2663.750 1538.040 Cognex 2 0.983 120.090 1769.250 2099.410 Aisys 0 1 0 1726.000 1045.500 202ms Aisys 1 0.990 -119.935 2663.630 1539.060 Aisys 2 0.979 120.000 1769.63 2099.780

1、能否和halcon软件做一下对比?同样的图片,halcon能做到多少ms? 2、看了你的源码,使用的是原生的opencv算子,能否自主使用simd指令集优化再提速? 3、你的git项目实现了NCC匹配(ncc match)。下一步有无计划实现形状匹配算子(shape based match)?

libaineu2004 avatar May 17 '22 14:05 libaineu2004

@zhirui-gao @libaineu2004 可以參考下我寫的NCC-Based的模板匹配,實際測試相機和物體不動基本不會有誤差 https://github.com/DennisLiu1993/Fastest_Image_Pattern_Matching

源码的算子性能如何?500万以上像素的图片,运算速度快不快?有没有采用simd指令集来实现CPU加速?

怎樣算快? 這樣快不快? Inspection Image : 4024 X 3036 Template Image: 762 X 521 Library Index Score Angle PosX PosY Execution Time My Tool 0 1 0.046 1725.857 1045.433 112ms My Tool 1 0.998 -119.979 2662.869 1537.446 My Tool 2 0.991 120.150 1768.936 2098.494 Cognex 0 1 0.030 1725.960 1045.470 125ms Cognex 1 0.989 -119.960 2663.750 1538.040 Cognex 2 0.983 120.090 1769.250 2099.410 Aisys 0 1 0 1726.000 1045.500 202ms Aisys 1 0.990 -119.935 2663.630 1539.060 Aisys 2 0.979 120.000 1769.63 2099.780

1、能否和halcon软件做一下对比?同样的图片,halcon能做到多少ms? 2、看了你的源码,使用的是原生的opencv算子,能否自主使用simd指令集优化再提速? 3、你的git项目实现了NCC匹配(ncc match)。下一步有无计划实现形状匹配算子(shape based match)?

  1. 手邊沒有halcon的Licence,可能請有Licence的網友補充。Cognex也是行業龍頭,他們的數據已經放到比較表中
  2. 就我所知,NCC算法內容只有矩陣捲積(NCC公式的分子)適合用SIMD,這部分opencv內部是由Intel kernel實現了,我相信這部份很難超越
  3. 沒有計畫,@meiqua 已經完成大部分內容
  4. 這個專案可能改善的部分: 1.金字塔搜尋策略,若你有想到請提供給我 2.meiqua提到的fusion,金字塔NCC匹配中,是先將影像旋轉再進行運算,也就是在同一個level可能對同一張圖旋轉多次,也許能透過OpenCV4.X的GAPI加速

DennisLiu1993 avatar May 18 '22 07:05 DennisLiu1993

3. 計畫,@meiqua 已經完成大部分內容

1.halcon的官方license可以在,https://www.51halcon.com/thread-387-1-1.html 这个网站提供下载,每个月更新一次license。 2.关于优化提速的建议,国内有高手写了一系列博客,你抽空看看有无帮助。 https://www.cnblogs.com/Imageshop/p/14559685.html https://www.cnblogs.com/Imageshop/p/14615375.html https://www.cnblogs.com/Imageshop/p/14821562.html https://www.cnblogs.com/Imageshop/p/16035727.html https://www.cnblogs.com/Imageshop/p/16277326.html https://www.cnblogs.com/Imageshop/p/16288364.html

libaineu2004 avatar May 18 '22 07:05 libaineu2004

第一篇提到的問題基本上我的repo都解決了 其他篇關於形狀的,實在是個大工程,有時間再研究吧

Halcon有機會我會試試

DennisLiu1993 avatar May 18 '22 08:05 DennisLiu1993

1、你写的NCC匹配,建议有必要拿halcon对比测试一下。国内工业界广泛应用halcon。这样测试的结果比较有说服力。 建议多找些图片测试。至少500万像素的图片。主要是速度,精度,稳定性三个指标。 2、你写的NCC匹配,建议新增模板文件保存和读取这个功能。 3、形状匹配的确是大工程。如果你有空闲,建议把meiqua的项目,https://github.com/meiqua/shape_based_matching 使用VC++/MFC实现一下,带人机交互的界面,方便大家使用和测试。

libaineu2004 avatar May 18 '22 13:05 libaineu2004