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

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

[复制链接]

简介

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对于窗口显示非常简单,新建一个文件双击打开,输入如下代码:

#  -*- 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库自带了一些识别算法,其中就包含人脸检测算法,输入如下代码。
#  -*- coding: UTF-8 -*-
import cv2 as cv

# 导入内置的模型文件,此文件在opencv库文件夹下,使用cv.data.haarcascades +的方式即可引用
face_cascade = cv.CascadeClassifier(cv.data.haarcascades +'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()
  • 点击运行代码,将摄像头对着人脸,则人脸上就会被标记出来。

  • 获取到人脸坐标之后,接下来就可以使用坐标做其他控制操作了

Mind+OpenCV —— 用Python模式  十分钟搞定人脸检测图3Mind+OpenCV —— 用Python模式  十分钟搞定人脸检测图2Mind+OpenCV —— 用Python模式  十分钟搞定人脸检测图1

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
我这里一直转圈安装不上去怎么办?

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

使用道具 举报

Coolhua  见习技师

发表于 2021-12-1 08:37:28

使用这个程序出现如下报错,怎么解决:Traceback (most recent call last):   File "C:\Users\COOLHUA\Documents\mindplus-py\user\2021-12-01-08-19-45\opencv.py", line 13, in <module>     gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cp>>>82: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
回复

使用道具 举报

Forgotten  版主
 楼主|

发表于 2021-12-15 17:47:15

Coolhua 发表于 2021-12-1 08:37
使用这个程序出现如下报错,怎么解决:Traceback (most recent call last):   File "C:%users\COOLHUA\Docu ...

应该是没有读取到摄像头,打开设备管理器看一下照相机项目下面有没有摄像头,你可以试试调整这个编号
cap = cv.VideoCapture(0) #打开编号0的摄像头

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail