【问题标题】:Mouth detection in Opencv detects multiple areas in androidOpencv中的嘴巴检测检测android中的多个区域
【发布时间】:2019-05-24 17:44:12
【问题描述】:

我是安卓新手。我正在使用 opencv 来检测人的面部和嘴巴。它没有正确检测嘴巴。你能帮我吗? 这是我的代码:

mJavaDetectorLip = 
loadClassifier(R.raw.haarcascade_mcs_mouth,"haarcascade_mcs_mouth.xml", 
cascadeDir);
......
 Rect liparea = new Rect(new Point(20,20),new Point(mGray.width() - 20, 
  mGray.height() - 20 ));
 lipArea(mJavaLip,liparea,100);
  ......

这是我的代码:

   private Mat lipArea(CascadeClassifier clasificator, Rect area, int 
    size) {
    Mat template = new Mat();
    Mat mROI = mGray.submat(area);
    MatOfRect mouths = new MatOfRect();
    Point lips = new Point();

    //isolate the eyes first
    clasificator.detectMultiScale(mROI, mouths, 1.1, 2, Objdetect.CASCADE_FIND_BIGGEST_OBJECT
            | Objdetect.CASCADE_SCALE_IMAGE, new Size(30, 30), new Size());

   Rect[] mouthArray = mouths.toArray();
    for (int i = 0; i < mouthArray.length;) {
        Rect e = mouthArray[i];
       e.x = area.x + e.x;
        e.y = area.y + e.y;
        Point center1 = new Point(e.x  + mouthArray[i].width * 0.5,
               e.y + mouthArray[i].height * 0.5);
        int radius = (int) Math.round(mouthArray[i].width / 2);
        Imgproc.circle(mRgba, center1, radius, new Scalar(255, 0, 0), 4, 8, 0);

new Scalar(0,255,0),1,8,0);

        return template;
    }

    return template;
}

它不是停留在一个地方,而是在整个脸上移动。

【问题讨论】:

    标签: java android opencv opencv3.0 face-detection


    【解决方案1】:

    它不是停留在一个地方,而是在整个脸上移动。

    这是一种预期的行为,因为嘴的特征非常有限,而且误报的可能性很高。例如,您的眼睛也将具有与您的嘴唇相似的特征。为了缓解这个问题,OpenCV docs 建议我们必须首先检测给定帧中的人脸,如果有多个人脸,则根据人脸矩形区域或其他参数选择一个人脸。人脸检测成功后,将人脸矩形分成两半,只搜索下半部分的嘴唇。

    这将显着提高您的准确性,因为面部的 Haar 特征非常复杂且训练有素。将搜索范围从整个画面缩小到脸部的下半部分也可以节省时间。

    【讨论】:

    • 它仅在横向模式下工作。当我切换到纵向模式时,它会检测到肩膀某处的嘴唇。
    • 我猜这是其他问题,请调试为特征检测传递的帧,并确保您使用正确的逻辑渲染嘴唇。尝试更深入地调试它应该在横向和纵向模式下工作的变量。
    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 2016-10-08
    • 2023-04-06
    • 2013-07-14
    • 2016-10-21
    • 2017-04-12
    • 2014-06-15
    • 1970-01-01
    相关资源
    最近更新 更多