我想使用ArUco标记来检测对象并使用predefined dictionary。
我只需要少量不同的标记。大约10.我现在想知道不同的预定义词典之间的优缺点。
词典在标记量和位大小方面有所不同。
到目前为止我的想法:
数量较少的标记会降低标记间距 距离,因此标记ID分类错误的可能性。但是,可用的唯一标记的最大数量较低。
具有较低的位大小有助于更好地识别标记,如果 它们在捕获图像中的像素大小很小(标记在图像中打印得很小/很远)。但是,可用的唯一标记的最大数量较低。
到目前为止,我的思维过程是否正确?我错过了什么吗?
所以对我来说,只需要10个不同的标记,我可能应该坚持使用 DICT_4X4_50 字典来获得最佳的标记检测结果?!
或者用更少的标记来创建我自己的字典来增加标记之间距离会更好吗?
答案 0 :(得分:5)
我是ArUco的主要开发人员。我个人推荐ARUCO_MIP_36h12词典的前10个标记。除非您以极低的分辨率进行工作,否则在使用4x4或3x3之类的小标记时,并没有真正的改善。这是因为库在内部将检测到的标记减小到很小的大小(大约50x50位,而不管其在实际图像中的尺寸如何),并且正是在这种分辨率下对代码进行了分析。
最新论文描述了ArUco库的完整说明的管道 https://www.researchgate.net/publication/325787310_Speeded_Up_Detection_of_Squared_Fiducial_Markers在第3.2节中。另外,您可以在以下文档中获得更多信息: https://docs.google.com/document/d/1QU9KoBtjSM2kF6ITOjQ76xqL7H0TEtXriJX5kwi9Kgc
答案 1 :(得分:1)
用 docs 中的相关引用补充 Rafael 关于位大小的回答:
<块引用>标记由外部黑色边框和编码二进制模式的内部区域组成。二进制模式是唯一的并标识每个标记。根据字典的不同,有更多或更少位的标记。 bit 越多,字典中的单词越多,混淆的机会就越小。但是,更多位意味着正确检测需要更高的分辨率。