我正在尝试创建一个GPU支持的BOVW模型,它使用KAZE描述符和SVM模型来分类对象。但我得到了一个错误,我无法绕过,我没有找到任何关于它的文档。你知道吗
更具体地说,我正在加载一个图像,提取KAZE描述符,使用BOVW模型提取聚集索引,并将它们传递给SVM模型。你知道吗
image = cv2.imread('/path/to/image.jpg')
image = cv2.UMat(image)
# feature_extractor = cv2.KAZE_create
# bow_extract = cv2.BOWImgDescriptorExtractor, pretrained
# svm = cv2.ml.SVM_create(), pretrained
kp = feature_extractor.detect(image)
bowsig = bow_extract.compute(image=image, keypoints=kp)
prediction = svm.predict(bowsig)
错误发生在bow_extract.compute(image=image, keypoints=kp)
:
TypeError: image is not a numpy array, neither a scalar
现在,在docs for cv2.BOWImgDescriptorExtractor中,compute函数接受InputArray,这也可能是UMat。。。你知道吗
现在我被难倒了。我应该把代码中可以使用GPU的变量转换成cv2.UMat(image
在feature_extractor.detect(image)
和bowsig
在svm.predict(bowsig)
)并且忘记在GPU上计算BOVW特性吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐