IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> dlib-正面人脸检测 -> 正文阅读

[人工智能]dlib-正面人脸检测

作者:recommend-item-box type_download clearfix

需要安装dlib,参考:dlib安装参坑记录
本人对于人工智能属于零基础,所以以下内容是在网上查阅的资料并整理出来的。
我想干啥:我想实现人脸识别。
需要做啥:人脸检测、人脸识别
人脸检测怎么做?
查阅到可以使用Haar特征分类器或dlib检测方法。
一开始使用Haar特征分类器时,发现很多方法我都使用不了。不知道是不是版本的原因。
在这里插入图片描述

所以换到了dlib检测方法。
大概需要如下几步:
a、灰度处理

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

b、获得dlib的正面人脸检测器

detector = dlib.get_frontal_face_detector()

c、进行检测

rects = detector(gray_img)

d、在图片中圈出人脸部分

cv2.rectangle(img,(x1,y1),(x2,y2),(0,252,0),2)

e、对步骤d中圈出的框进行文字描述

cv2.putText(img=image, text="Face: {}".format(i + 1), org=(x-10, y-10), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=0.5, color=(0, 255, 0), thickness=2)

具体代码如下:

# encoding:utf-8

import dlib
import numpy as np
import cv2

def rect_to_bb(rect): # 获得人脸矩形的坐标信息
    x1 = rect.left()
    y1 = rect.top()
    x2 = rect.right()
    y2 = rect.bottom()
    return (x1, y1, x2, y2)
    # x = rect.left()
    # y = rect.top()
    # w = rect.right() - x
    # h = rect.bottom() - y
    # return (x, y, w, h)

# def resize(image, width=1200):  # 将待检测的image进行resize
#     r = width * 1.0 / image.shape[1]
#     dim = (width, int(image.shape[0] * r))
#     resized = cv2.resize(image, dim, interpolation=cv2.INTER_AREA)
#     return resized

def detect_face(image):
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 灰度处理 
    detector = dlib.get_frontal_face_detector() # 获得dlib的正面人脸检测器
    # image = resize(image, width=1200)
    rects = detector(gray,1) # 第一个参数是灰度图像 第二个参数不知道,可能与检测器的识别度有关0的时候只检测除了3张脸,少了三张脸。1,2,3的时候检测到六张脸
    for (i, rect) in enumerate(rects):
        (x, y, x2, y2) = rect_to_bb(rect)
        # cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
        cv2.rectangle(image, (x, y), (x2, y2), (0, 255, 0), 2) # 参数:图片,左上角坐标,右下角坐标,颜色,边框粗细值
        cv2.putText(img=image, text="Face: {}".format(i + 1), org=(x-10, y-10), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=0.5, color=(0, 255, 0), thickness=2) 
        # 参数:图片,文字,字体,字号,颜色,文字粗细值

    cv2.imshow("Output", image)
    cv2.waitKey(0)

if __name__ == "__main__":
    # test_img1 = cv2.imread("test_data/test1.jpg")
    # test_img2 = cv2.imread("test_data/test2.jpg")
    # test_img3 = cv2.imread("test_data/test3.jpg")
    # detect_face(test_img1)
    # detect_face(test_img2)
    # detect_face(test_img3)
    test_img5 = cv2.imread("test_data/test5.jpg")
    detect_face(test_img5)


原文参考自:https://blog.csdn.net/liuxiao214/article/details/83411820

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-25 18:06:59  更:2022-06-25 18:10:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:46:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码