FREAK 特征提取 OpenCV

数据挖掘 Python opencv
2021-10-11 06:00:20

我想知道如何在 python 中使用 FREAK 特征提取,我阅读了文档,但我需要一些示例。我写了这段代码:

freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,None)

但描述符是无,为什么?

我使用了 SURF 检测到的关键点而不是 None 参数:

surfDetector = cv2.xfeatures2d.SURF_create()
keypoints = surfDetector.detect(image,None) 
freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,keypoints)

但是输出非常非常大,并且难以处理。我怎样才能解决这个问题?谢谢...

1个回答

FREAK 只是一个特征描述符,因此为了使用它,您必须为其提供一组关键点来提取您的特征,例如 FAST、AGAST、SIFT 的关键点检测器等。原始论文使用 AGAST

您可能需要处理关键点,因为区域要求不同(SURF 的关键点可能离边界太近而无法计算 FREAK)。

keypoints = SomeDetector(image)
freakExtractor = cv2.xfeatures2d.FREAK_create()
keypoints,descriptors= freakExtractor.compute(image,keypoints)

怪胎:快速视网膜关键点论文说:

Rostenand 和 Drummond 在 [A] 中提出了角检测的 FAST 标准,由 Mair 等人改进。在 [B] 中使用他们的 AGAST 检测器。后者是定位关键点的快速算法。Leutenegger 等人在 BRISK 中使用的检测器。在 [C] 中是多尺度 AGAST。他们使用 FAST 分数作为显着性度量来搜索尺度空间中的最大值。我们使用相同的检测器来评估 FREAK。

  • [A] E. 罗斯滕和 T. 德拉蒙德。用于高速角点检测的机器学习。计算机视觉-ECCV 2006,第 430-443 页,2006。
  • [B] E. Mair、G. Hager、D. Burschka、M. Suppa 和 G. Hirzinger。基于加速段测试的自适应和通用角点检测。计算机视觉-ECCV 2010,第 183-196 页,2010。2
  • [C] S. Leutenegger、M. Chli 和 R. Siegwart。轻快:二进制稳健不变的可扩展关键点。2011 年。

资料来源:HereThis SO question