shape_based_matching

所属分类:图形图象
开发工具:C/C++
文件大小:6040KB
下载次数:17
上传日期:2018-10-06 11:51:06
上 传 者liu__x
说明:  linemod实现形状模板匹配,基于边缘梯度信息
(linemod for match temlate)

文件列表:
shape_based_matching\CMakeCache.txt (1812, 2018-09-03)
shape_based_matching\CMakeFiles\cmake.check_cache (86, 2018-09-03)
shape_based_matching\CMakeLists.txt (572, 2018-09-03)
shape_based_matching\Gradient Response Maps for Real-TimeDetection of Textureless Objects.pdf (2861782, 2018-08-08)
shape_based_matching\LICENSE (1305, 2018-08-08)
shape_based_matching\line2Dup.cpp (50912, 2018-08-08)
shape_based_matching\line2Dup.h (11269, 2018-09-03)
shape_based_matching\test\case0\1.jpg (298126, 2018-08-08)
shape_based_matching\test\case0\2.jpg (30557, 2018-08-08)
shape_based_matching\test\case0\3.png (44638, 2018-08-08)
shape_based_matching\test\case0\4.png (306176, 2018-08-08)
shape_based_matching\test\case0\circle_templ.yaml (381510, 2018-08-08)
shape_based_matching\test\case0\features\nms_templ.png (218, 2018-08-08)
shape_based_matching\test\case0\features\no_nms_templ.png (386, 2018-08-08)
shape_based_matching\test\case0\result\1.png (985536, 2018-08-08)
shape_based_matching\test\case0\result\2.png (293129, 2018-08-08)
shape_based_matching\test\case0\result\3.png (43181, 2018-08-08)
shape_based_matching\test\case0\templ\circle.png (4311, 2018-08-08)
shape_based_matching\test\case1\result.png (134818, 2018-08-08)
shape_based_matching\test\case1\templ.png (807, 2018-08-08)
shape_based_matching\test\case1\test.png (212239, 2018-08-08)
shape_based_matching\test\case1\test_info.yaml (3507805, 2018-08-08)
shape_based_matching\test\case1\test_templ.yaml (2347893, 2018-08-08)
shape_based_matching\test\case1\train.png (192723, 2018-08-08)
shape_based_matching\test\case2\result\result.png (223900, 2018-08-08)
shape_based_matching\test\case2\result\templ.png (233, 2018-08-08)
shape_based_matching\test\case2\result\together.png (229169, 2018-08-08)
shape_based_matching\test\case2\test.png (225111, 2018-08-08)
shape_based_matching\test\case2\test_info.yaml (460280, 2018-08-08)
shape_based_matching\test\case2\test_templ.yaml (628921, 2018-08-08)
shape_based_matching\test\case2\train.png (17621, 2018-08-08)
shape_based_matching\test\circle_info.yaml (10757542, 2018-08-08)
shape_based_matching\test\ori_16bit_experiment\line2Dup_16bit_ori.cpp (52727, 2018-08-08)
shape_based_matching\test\ori_16bit_experiment\LUT16.txt (3194, 2018-08-08)
shape_based_matching\test\ori_16bit_experiment\LUT_gen.cpp (1595, 2018-08-08)
shape_based_matching\test.cpp (11860, 2018-09-03)
shape_based_matching\test\case0\features (0, 2018-09-03)
shape_based_matching\test\case0\result (0, 2018-09-03)
... ...

# shape_based_matching try to implement halcon shape based matching, refer to machine vision algorithms and applications, page 317 3.11.5, written by halcon engineers We find that shape based matching is the same as linemod. [linemod pdf](Gradient%20Response%20Maps%20for%20Real-TimeDetection%20of%20Textureless%20Objects.pdf) ## thoughts about the method The key of shape based matching, or linemod, is using gradient orientation only. Though both edge and orientation are resistant to disturbance, edge have only 1bit info(there is an edge or not), so it's hard to dig wanted shapes out if there are too many edges, but we have to have as many edges as possible if we want to find all the target shapes. It's quite a dilemma. However, gradient orientation has much more info than edge, so we can easily match shape orientation in the overwhelming img orientation by template matching across the img. Speed is also important. Thanks to the speeding up magic in linemod, we can handle 1000 templates in 20ms or so. [Chinese blog about the thoughts](https://www.zhihu.com/question/39513724/answer/441677905) ## improvment Comparing to opencv linemod src, we improve from 4 aspects: 1. delete depth modality so we don't need virtual func, this may speed up 2. opencv linemod can't use more than 63 features. Now wo can have up to 8191 3. simple codes for rotating and scaling img for training. see test.cpp for examples 4. nms for accurate edge selection ## some test ### Example for circle shape ![circle1](test/case0/1.jpg) ![circle1](test/case0/result/1.png) ![circle2](test/case0/2.jpg) ![circle2](test/case0/result/2.png) ![circle3](test/case0/3.png) ![circle3](test/case0/result/3.png) ### circle template before and after nms #### before nms ![before](test/case0/features/no_nms_templ.png) #### after nms ![after](test/case0/features/nms_templ.png) ### Simple example for arbitary shape Well, the example is too simple to show the robustness running time: 1024x1024, 60ms to construct response map, 7ms for 360 templates test img & templ features ![test](./test/case1/result.png) ![templ](test/case1/templ.png) ### noise test ![test2](test/case2/result/together.png)

近期下载者

相关文件


收藏者