人脸识别与人脸检测(Mac版)

简介: 笔记

一、简单的人脸识别


人脸识别作为人工智能领域的经典案例,我们使用python来实现它,从他的代码量来看,实现简单的人脸识别并不需要太多代码,这得益于python中强大的库-cv2。在运行人脸识别代码时,如果是Mac电脑,用pycharm编辑器是不能打开摄像头的,因为pycharm没有权限获取Mac的摄像头,则采取的做法是使用Mac终端的vim编辑器来运行。(Windows的我不太清楚)

代码如下:

import cv2
# 导入cv2:sudo -H pip install --ignore-installed opencv-python
# 0 代表笔记本的摄像头,(不需要打开摄像头,cv会自动打开摄像头)
video = cv2.VideoCapture(0)
while (1):
    # read返回两个值 一个 是否读取成功  一个是每一帧的视频数据
    stream, frame = video.read()
    if not stream:
        break
    # 将读取到的视频显示出来
    cv2.imshow("video", frame)
    # waitKey 可以监听键盘输入,当你把光标点击到视频的时候按下键盘就能获取到输入了哪个键,因此我这里做了监听 如果按下 q 键 则退出
    key = cv2.waitKey(2)
    if key == ord('q'):
        break
video.release()
cv2.destroyAllWindows()


二、人脸检测


同样是使用终端来运行

代码如下:

import dlib
import cv2
video = cv2.VideoCapture(0)
detector = dlib.get_frontal_face_detector()
# 用终端操作
def read_camera0():
    """
    读取电脑摄像头的视频(不需要打开摄像头,cv会自动打开摄像头)
    """
    while 1:
        stream, frame = video.read()
        if stream:
            yield frame
        else:
            print("Cannot Read Camera0")
            break
def show_camera_faces():
    """
    读取摄像头数据,显示出来加上人脸检测
    """
    frames = read_camera0()
    for image in frames:
        rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        detect = detector(rgb_image, 1)
        for i, d in enumerate(detect):
            x1, y1, x2, y2, w, h = d.left(), d.top(), d.right() + 1, d.bottom() + 1, d.width(), d.height()
            cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 0), 2)
        cv2.imshow("video", image)
        key = cv2.waitKey(2)
        print(key)
        if key == ord('q'):
            break
    video.release()
    cv2.destroyAllWindows()
if __name__ == '__main__':
    show_camera_faces()

人脸图片识别

代码如下:

import cv2
import dlib
picture = '/Users/caizhengjie/Desktop/蔡政洁/WechatIMG1的副本.jpeg'
detector = dlib.get_frontal_face_detector()
def add_face_from_image(image):
  imdata = cv2.imread(image)
  rgb_image = cv2.cvtColor(imdata, cv2.COLOR_BGR2RGB)
  faces = detector(rgb_image, 1)
  if len(faces) == 0:
    print("没有检测到人脸")
  else:
       print('到此就获取到了人脸数据')
if __name__ == '__main__':
    add_face_from_image(picture)



相关文章
|
7月前
|
机器学习/深度学习 监控 算法框架/工具
使用Python实现深度学习模型:人脸识别与人脸表情分析
【7月更文挑战第18天】 使用Python实现深度学习模型:人脸识别与人脸表情分析
295 2
|
8月前
|
移动开发 文字识别 算法
视觉智能开放平台产品使用合集之人脸核身是否包含静默活体检测
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
8月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之活体检测通过后,从返回结果中选择哪张图片进行人脸核身
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
8月前
|
机器学习/深度学习 数据采集 监控
人脸识别与检测
人脸识别与检测
138 4
|
8月前
|
机器学习/深度学习 监控 固态存储
人脸识别与检测
人脸识别与检测
73 0
|
9月前
|
JSON 安全 Java
人脸识别活体检测之张张嘴和眨眨眼
人脸识别活体检测之张张嘴和眨眨眼
|
9月前
|
计算机视觉
人脸识别活体检测之张张嘴和眨眨眼——login.jsp
人脸识别活体检测之张张嘴和眨眨眼——login.jsp
|
9月前
|
计算机视觉
人脸识别活体检测之张张嘴和眨眨眼——readme
人脸识别活体检测之张张嘴和眨眨眼——readme
|
9月前
|
计算机视觉
人脸识别活体检测之张张嘴和眨眨眼——FaceServlet
人脸识别活体检测之张张嘴和眨眨眼——FaceServlet
|
9月前
|
计算机视觉
人脸识别活体检测之张张嘴和眨眨眼——Json_Parsing
人脸识别活体检测之张张嘴和眨眨眼——Json_Parsing