我正在尝试编写一种分类算法,该算法将识别出以下图像:1)以2)中性/纯背景为特色的人物。这个想法是要找到易于被人类编辑“化身”的图像。我不是试图自己亲自进行前景提取。
我正在使用对象检测(尤其是Mask R-CNN)和OpenCV的组合。这就是我到目前为止所拥有的。
这是我要识别的图像的正面示例:
面具R-CNN会告诉我,是的,这里有个人,甚至提供了用于实例分割的面具:
然后我可以抓住面具并使用OpenCV操纵图像:
If CLng(visa.Cells(x, 16).Value2) = Deceased(visa_Inx) Then
这时,我必须对提取的背景进行某种测试。而且我愿意接受想法!但是我的第一个想法是尝试检测仅在遮罩区域中的任何边缘。
# just get the first mask
mask = masks[0]
# invert the mask
inverse_mask = np.invert(mask).astype(np.uint8)
# use bitwise_and to extract the background
inverse_masked_data = cv2.bitwise_and(im, im, mask=inverse_mask)
这似乎很有希望,但是我正在了解自己的实例。因此,对“边缘”的任何测试都将失败,因为其中有一些边缘。
我的边缘检测想法看起来不错吗?如果是这样,我如何改进我的代码以使其正常工作?
还是我应该探索其他途径?