• 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)
    
    
  • 相关阅读:
    【论文速读】 | AI驱动修复:漏洞自动化修复的未来
    【软件测试】男生vs女生,谁更加适合?没有你发现不了的bug......
    java编程基础总结——16.Object类
    基础算法之递归
    Parasoft让单元测试重获青睐
    爆火的正规号卡推广分销 流量卡分销代理平台
    Java Stream 的使用
    【Mysql学习笔记】关键字顺序以及执行顺序
    最近公共祖先 LCA
    【七】redis缓存与数据库数据一致性
  • 原文地址:https://blog.csdn.net/qq_41803556/article/details/127040251