【问题标题】:Unable to detect faces of cartoon images无法检测卡通图像的人脸
【发布时间】:2020-07-23 02:09:21
【问题描述】:

我正在尝试使用 opencv 和 python 实现卡通代码的简单人脸检测。虽然我使用的代码适用于人类的面孔,但我无法使用它检测卡通面孔。有什么方法可以让它也检测卡通脸。

import cv2
import matplotlib.pyplot as plt

imagePath = 'frame179.jpg'
cascPath = '/Users/tonystark/opencv/data/haarcascades/haarcascade_frontalface_default.xml'

faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=40,
    minSize=(24, 24),
    flags=cv2.CASCADE_SCALE_IMAGE
)

图片是human,我可以获取面部的位置,而对于cartoon,我无法获取面部的位置。

提前非常感谢!

【问题讨论】:

    标签: python opencv image-processing face-recognition


    【解决方案1】:

    Haar 级联仅用于检测一个特定的事物,在您的情况下,它已被训练为仅检测人脸。您将不得不创建另一个 haar 级联来检测卡通面孔。

    你可以参考这个视频来创建一个-https://www.youtube.com/watch?v=jG3bu0tjFbk

    【讨论】:

      【解决方案2】:

      其实我同意以上所有的cmets。对于 catroon 对象没有现成的解决方案,我尝试了很多模型,但没有任何效果(ORB、Haar Cascade、SuperPixel 等),也没有 AutoML 解决方案(来自 Google 或 Amazon)也不起作用。在卡通对象中进行人脸识别只有一种方法。该解决方案是首先制作自己的图像标记数据集,然后尝试训练一些模型来检测物体。所以我选择了这种方式,结果很好,准确率高达 91%。

      【讨论】:

        【解决方案3】:

        因此,由于卡通图像与人类的图像非常不同,我们需要从头开始分别为它们训练一个模型。 我实现了一个YOLO模型,并且训练它,结果真的很好!

        labelImg 可用于准备数据集。

        我参考了这个博客:Darknet YOLO using OpenCV 创建我自己的 YOLO 检测器,其中克隆和修改了 github 存储库 Darknet YOLO

        编辑: 我的project on github

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-01
          • 2010-11-10
          • 1970-01-01
          • 2018-06-19
          • 1970-01-01
          • 2021-06-18
          相关资源
          最近更新 更多