• opencv 机器学习-人脸识别


    基本概念

    在这里插入图片描述

    计算机视觉与机器学习的关系

    计算机视觉是机器学习的一种应用,而且是最有价值的应用

    人脸识别

    • 哈尔(Haar)级联方法
    • 深度学习方法(DNN)

    哈尔(Haar)级联方法

    • Haar是专门为解决人脸识别而推出的
    • 在深度学习还不流行时,Haar已经可以商用

    哈尔(Haar)级联方法人脸识别步骤

    • 创建Haar级联器
    • 导入图片并将其灰度化
    • 调用detectMultiScale方法进行人脸识别

    detectMultiScale

    • detectMultiScale(img,double scaleFactor=1.1,int minNeighbors=3,…)
    import cv2 as cv
    import numpy as np
    
    # 第一步,创建Haar级联器
    facer = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
    # 第二步,导入人脸识别的图片并将其灰度化
    img = cv.imread(r"C:\Users\Administrator\Desktop\girl.png")
    gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    
    # 第三步,进行人脸识别
    # [[x,y,w,h]]
    faces = facer.detectMultiScale(gray, 1.2, 5)
    
    for (x, y, w, h) in faces:
        cv.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
    cv.imshow("img", img)
    cv.waitKey(0)
    
    

    在这里插入图片描述

    其他部位检测

    import cv2 as cv
    import numpy as np
    
    # 第一步,创建Haar级联器
    facer = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
    eye = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_eye.xml')
    
    # 第二步,导入人脸识别的图片并将其灰度化
    img = cv.imread('./tt.jpg')
    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    
    # 第三步,进行人脸识别
    # [[x,y,w,h]]
    faces = facer.detectMultiScale(gray, 1.2, 5)
    
    
    i = 0
    for (x, y, w, h) in faces:
        cv.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
        roi_img = img[y:y+h, x:x+w]
        eyes = eye.detectMultiScale(roi_img, 1.2, 5)
        for (x, y, w, h) in eyes:
            cv.rectangle(roi_img, (x, y), (x + w, y + h), (255, 0, 0), 2)
        i = i+1
        winname = "fave" + str(i)
        cv.imshow(winname, roi_img)
        cv.waitKey(0)
    
    
  • 相关阅读:
    Tableau表格取消合并单元格
    Python —— Reference | hou
    (g6)Radial 辐射布局
    【Java】volatile-内存可见性问题
    【前端】关于Hash,MD5的学习
    新一代网状网协议T-Mesh无线通信技术优势介绍
    信息系统项目管理师 12题
    muduo源码剖析之Connector客户端连接类
    为什么百度百科总是审核不通过?
    React中useRef()方法
  • 原文地址:https://blog.csdn.net/qq_41803556/article/details/127040251