2020最新的一种特征描述符BEBLID(只需一行代码就可以获得比ORB高14%的性能)
一.摘要
opencv 4.5.1以上的版本都包含了BEBLID,这是一个新的特征描述符号。
相对于ORB,它可以在减少执行时间的情况下提升图像匹配精度,官方代码在Github库中:
Github地址
原文地址:
pdf
下图可以看到产生了500多个角点
匹配结果
二.代码
BEBLID算法相对于ORB其实只修改了特征描述符处的代码,下面是修改后的代码:
detector = cv2.ORB_create(10000)
kpts1 = detector.detect(image1, None)
kpts2 = detector.detect(image2, None)
# descriptor = cv.ORB_create()
BEBLID= cv2.xfeatures2d.BEBLID_create(0.75)
start_time = time.time()
keypoints1, descriptors1 = BEBLID.compute(image1, kpts1)
keypoints2, descriptors2 = BEBLID.compute(image2, kpts2 )
修改前的ORB代码如下:
orb = cv2.ORB_create()
keypoints1, descriptors1 = orb.detectAndCompute(image1, None)
keypoints2, descriptors2 = orb.detectAndCompute(image2, None)
完整的orb算法的代码以及其原理讲解可以见我另外一篇文章:
无人机航拍图像匹配——ORB算法实践(含代码)
三. BEBLID的原理
具体原理可以参见下面这篇文章: