gpt4 book ai didi

c++ - FAST角点检测器中分数计算背后的算法

转载 作者:行者123 更新时间:2023-12-05 03:42:22 27 4
gpt4 key购买 nike

在 FAST 角点检测器中如何计算检测到的角点的分数?我阅读了原始论文“用于高速角点检测的机器学习”,但在分数计算部分没有明确提及它们指的是哪 N 个连续像素。是否满足该点角点标准的 N 个连续像素?我还找到了以下链接

https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV1011/AV1FeaturefromAcceleratedSegmentTest.pdf这就是 FAST corner score computation 的说法。此外,我没有发现本文中描述的得分函数与 OPENCV 为半径为 3 的布雷森纳姆圆所做的得分计算之间有任何对应关系。

https://github.com/opencv/opencv/blob/master/modules/features2d/src/fast_score.cpp

分数已经在上面链接的cornerScore<16>函数中计算出来了。除了这些,没有其他文章明确谈到Fast feature Detector中的FAST score计算。任何人都可以给我任何见解吗?

N.B - 我也看过第二篇论文“Faster and Better:A machine learning approach to corner detection”但是它没有明确提到分数计算。

最佳答案

在线文档也让我感到困惑:

The score function is defined as:“The sum of the absolute difference between the pixels in the contiguous arc and the centrepixel”

我很确定 OpenCV 不会那样计算分数。如果你耐心看完the source code你提到,你会发现函数cornerScore<16>正在这样做:

  1. 获取以目标像素为中心的圆上的16个像素值
  2. 从 16 个像素中取出一组 9 个连续像素,计算这 9 个像素与中心像素之间的绝对差异,并取最小值(来自 9 个绝对差异)(称为阈值 )
  3. 将16中的每一个像素作为第2步的开始,得到16个阈值
  4. 返回最大阈值作为角点得分

从这个管道中,您可以看到 OpenCV 计算的分数是使目标像素成为 FAST-corner 的最大阈值

关于c++ - FAST角点检测器中分数计算背后的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67306891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com