我正在尝试使用python和OpenCV构建一个简单的图像搜索/识别引擎。我以这种方式提取图像特征:
alg = cv2.ORB_create()
kps = alg.detect(image)
kps = sorted(kps, key=lambda x: -x.response)[:vector_size]
kps, dsc = alg.compute(image, kps)
dsc = dsc.flatten()
needed_size = (32 * 64)
if dsc.size < needed_size:
dsc = np.concatenate([dsc, np.zeros(needed_size - dsc.size)])
return dsc
然后,我从照相机拍摄一幅图像,然后以相同的方式提取图像特征并计算汉明距离。问题是,如果我比较完全相同的图像,则距离为0,但是当图像“嵌入”在相机框架中时,我将无法搜索该图像。我知道ORB可以在上下文中找到对象,但是我不知道如何为此目的使用它。有什么建议吗?