目前,我正在尝试用Python开发AI系统来匹配2张照片中的神圣物体。第一张照片是由DSLR相机拍摄的高分辨率神圣物体(A)照片。

第二张照片是由手机相机拍摄的神圣物体(A)照片。

我需要人工智能系统来预测类似的百分比从0- 100%。我尝试了一些方法论,但没有得到好的结果。
请建议哪种方法适用于预测模型?谢谢
发布于 2020-09-04 20:59:39
一种方法是使用template-matching
如果您使用第一个图像作为模板:



步骤:
将template和source图像都应用到灰度,并应用Canny edge detection.
- template = cv2.imread("template\_resized.jpg") template = cv2.cvtColor(template, cv2.COLOR\_BGR2GRAY) template = cv2.Canny(template, 50, 200)- 
- source = cv2.imread("source\_resized.jpg") source = cv2.cvtColor(source, cv2.COLOR\_BGR2GRAY) source = cv2.Canny(source, 50, 200)- 
匹配
- `result = cv2.matchTemplate(source, template, cv2.TM_CCOEFF)`- We need maximum-value and maximum-value location from the `result`- `(_, maxVal, _, maxLoc) = cv2.minMaxLoc(result)`- (startX, startY) = (int(maxLoc[0] \* r), int(maxLoc[1] \* r)) (endX, endY) = (int((maxLoc[0] + w) \* r), int((maxLoc[1] + h) \* r))- Draw Rectangle- cv2.rectangle(image, (startX, startY), (endX, endY), (0, 0, 255), 2)可能的问题:为什么不使用原始图像大小?
答:嗯,template-matching对小图像效果更好。否则,结果并不令人满意。如果我使用原始图像大小,结果将是:link
可能的问题:您为什么要使用cv2.TM_CCOEFF
答:这只是一个示例,您可以使用其他parameters进行实验
可能的问题:如何使用模板匹配来计算相似度百分比?
答:请看这个answer。如上所述,您可以使用minMaxLoc的输出作为相似度百分比。
有关完整代码,请查看opencv-python tutorial。
https://stackoverflow.com/questions/63740859
复制相似问题