2021-3-4 19:56:31 [显示全部楼层]
2205浏览
查看: 2205|回复: 5

[项目分享] Mind+OpenCV —— 用Python模式 十分钟搞定人脸识别

[复制链接]
本帖最后由 Forgotten 于 2021-3-9 15:14 编辑

简介

OpenCV库是一个常用的开源图像处理库,有Python版本,可以实现画图、人脸识别等功能,使用简单,功能强大。

Mind+的Python模式可以非常简单的部署环境,使用也非常简单,因此在Mind+中使用OpenCV可以非常快速的实现人脸识别。

安装

常规OpenCV安装会比较麻烦,但是使用Mind+则非常简单,可以一键安装依赖库。

  • 安装Mind+1.7.0及以上版本 http://mindplus.cc

  • 打开软件,切换到Python模式,等待终端出现Python信息。

  • 点击库管理,首次打开等待一下初始化完成,切换到阿里源,选择图像处理中的opencv-Python,点击安装,等待完成,如果安装慢(超过半小时)可以尝试重启软件后切换不同的Python源。  

使用

环境检测

  • 安装完成之后,可以在终端输入命令查看当前使用的openCV版本:

依次输入:

import cv2 回车

print(cv2.__version__) 回车,可以看到当前cv2的版本号,能正确输出则说明安装没有问题

  • 接下来查看OpenCV安装目录:

    继续输入:

    print(cv2.__file__) 回车

    • 可以打开这个目录,会发现里面有一些xml文件,这个是一些模型文件,后面的代码中将引用他们。

摄像头窗口显示

  • OpenCV对于窗口显示非常简单,新建一个文件双击打开,输入如下代码:

#  -*- coding: UTF-8 -*-
import cv2 as cv

cap = cv.VideoCapture(0) #打开编号0的摄像头

while(True):
    # 获取摄像头帧数据
    ret, frame = cap.read()

    # 处理为灰度帧
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

    # 使用两个窗口显示获取的内容
    cv.imshow('frame',frame)
    cv.imshow('gray',gray)
    #间隔一段时间显示,如果按下Q键则退出
    if cv.waitKey(20) & 0xFF == ord('q'):
        break
# 退出
cap.release()
cv.destroyAllWindows()
  • 打开或插上电脑摄像头,点击运行,稍等片刻就会看到弹出两个窗口显示了摄像头画面,一个彩色一个灰色。

    注意:如果串口没有数据显示,则可能电脑摄像头编号不是0,尝试修改为其他,或者查看设备管理器中摄像头是否正常,以及检查安全软件是否拦截。

人脸识别

  • 前面说过opencv库自带了一些识别算法,其中就包含人脸识别算法,输入如下代码,注意程序第5行需要导入模型文件需要复制到当前项目中。
#  -*- coding: UTF-8 -*-
import cv2 as cv

# 导入模型文件,此文件在opencv库文件夹下,需要复制到与当前程序同文件夹下
face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv.VideoCapture(0) #打开编号0的摄像头

while(True):
    # 获取摄像头帧数据
    ret, frame = cap.read()

    # 处理为灰度帧
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

    # 使用人脸识别模型识别
    faces = face_cascade.detectMultiScale(gray,1.3,5)

    # 将识别到的结果坐标在画面上画一个矩形框
    for (x,y,w,h) in faces:
        frame = cv.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)

    # 显示有框的画面
    cv.imshow('frame',frame)

    #间隔一段时间显示,如果按下Q键则退出
    if cv.waitKey(20) & 0xFF == ord('q'):
        break
# 退出
cap.release()
cv.destroyAllWindows()
  • 点击打开文件位置会打开一个文件夹,将前面步骤中打开的opencv安装目录下的对应模型文件复制到这个文件夹中,然后刷新文件目录即可看到。

  • 点击运行代码,将摄像头对着人脸,则人脸上就会被标记出来。

  • 获取到人脸坐标之后,接下来就可以使用坐标做其他事情了

image-20210304191431348.png image-20210304191558592.png face2.gif

liweilin  高级技师

发表于 2021-3-5 00:08:25

这个人脸识别是使用级联分类器?
回复

使用道具 举报

Forgotten  版主
 楼主|

发表于 2021-3-5 10:56:33

回复

使用道具 举报

媛媛  高级技师

发表于 2021-3-5 14:04:43

学习了,每天来看看,总能学到不少新知识
回复

使用道具 举报

gray6666  初级技神

发表于 2021-3-25 12:48:53

我这里一直转圈安装不上去怎么办?
回复

使用道具 举报

Forgotten  版主
 楼主|

发表于 2021-4-1 18:28:01

gray6666 发表于 2021-3-25 12:48
我这里一直转圈安装不上去怎么办?

切换成阿里云,重启软件之后再加载试试
如果还是不行尝试电脑连接手机热点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail