美文网首页
人眼定位识别

人眼定位识别

作者: 影醉阏轩窗 | 来源:发表于2018-06-10 01:12 被阅读0次
  • 本系列历程启发于“禾路老师”的视频课程,学习到两个重要知识点:实战和自己的库!
  • 本系列历程多源于answer.opencv论坛的一些牛人的解答,作为小白只是代码的搬运工。

言归正传,请看项目要求:

  • 求取找到人眼位置
  • 根据人眼特征确定
  • 简单的小例子,实用价值不大,但是对于其他项目有帮助!
image

思路分析一:

  • 利用黑色特征进行筛选
  • 然后根据眼睛是成对出现,再进一步帅选

思路分析二:

  • 利用拉普拉斯金字塔对人进行特征提取
  • 提取之后利用眼睛位置很亮进行帅选
  • 当然也可以根据眼睛大概的位置进行帅选,如:脸部、成对出现、周围是白色眼珠。。。。

代码实现:

  • 本博文利用第二种方法,识别精度和效率较高
  1. 去拉普拉斯金字塔,自己手动构造。
  2. 利用眼睛特征进行筛选
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main(int argc, const char** argv)
{
    Mat matFrontFace = imread("abc.png");
    Mat gray; Mat temp;
    double minPixelValue, maxPixelValue;
    Point minPixelPoint, maxPixelPoint;
    cvtColor(matFrontFace, gray, COLOR_BGR2GRAY);
    // Laplacian pyramid
    pyrDown(gray, temp);
    pyrUp(temp, temp);
    temp = gray - temp;
    // 找两个最亮的地方,且距离不能低于一个阈值
    size_t count = 0;
    vector<Point2i> point;
    do
    {
        //寻找最大值
        minMaxLoc(temp, &minPixelValue, &maxPixelValue, &minPixelPoint, &maxPixelPoint);
        if (count == 0)
        {
            point.push_back(maxPixelPoint);
            circle(matFrontFace, maxPixelPoint, 10, Scalar(0, 0, 255), 2);
            temp.at<uchar>(maxPixelPoint.y, maxPixelPoint.x) = 0;
            count++;
        }
        else
        {
            //---两只眼睛高度差别低于5,距离在35-100之内
            float dis = sqrt(pow(maxPixelPoint.x - point[0].x, 2) + pow(maxPixelPoint.y - point[0].y, 2));
            if (dis > 35 && dis<100 && abs(maxPixelPoint.y - point[0].y)<5)
            {
                point.push_back(maxPixelPoint);
                circle(matFrontFace, maxPixelPoint, 10, Scalar(0, 0, 255), 2);
                count++;
            }
            else
            {
                temp.at<uchar>(maxPixelPoint.y, maxPixelPoint.x) = 0;
            }
        }
    } while (count!=2);
    
}
人眼定位结果图 拉普拉斯金字塔

参考资料:

相关文章

  • 人眼定位识别

    本系列历程启发于“禾路老师”的视频课程,学习到两个重要知识点:实战和自己的库!本系列历程多源于answer.ope...

  • ImageNet数据集

    原始ImageNet包括三个任务:物体识别定位、物体检测、视频物体识别。 Downsampled ImageNet...

  • 2017年终总结:人脸识别应用爆发来临

    2017人脸识别行业热点频频,市场频频关注背后,是人脸识别行业巨大的市场空间。目前,中国人脸识别精确度已经超过人眼...

  • 基于深度学习的视频行为分析总结

    一、什么是视频行为分析? 基于视频的行为识别包括两个主要问题,即行为定位和行为识别。行为定位即找到有行为的视频片段...

  • 【转载】人脸识别系统的原理与发展

    1,人脸识别介绍 广义定义:构建人脸识别系统的一系列相关技术,包括人脸图像采集,人脸定位,人脸识别预处理,身份确认...

  • 3、网页元素的定位-1-定位方式及目的

    1、元素定位的关键: 元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。 2、如何能定位到...

  • [SP_03] Selenium WebDriver定位元素的9

    目录结构 一、元素定位:id与name属性的定位 元素定位:是自动测试的核心。想要操作一个元素,首先需要识别这个元...

  • 爬虫:9. 验证码识别

    验证码识别 验证码识别是爬虫必不可少的一项技能,但是目前的验证码花样百出,此教程只能做到识别较简单的,那些人眼都很...

  • 【超级客源】自动定位,快速获取附近精准客源

    超级客源荣耀版增加新功能:自动识别定位。附近客源定位搜索。行业任意筛选,定位附近行业客源。附近商户一网打尽。精准客...

  • 数据集

    MIT/Facebook出品的面向行为识别与定位的视频数据集SLACpaper project

网友评论

      本文标题:人眼定位识别

      本文链接:https://www.haomeiwen.com/subject/qyaxeftx.html