为树莓派安装opencv并进行人脸识别

  • 1.更改modules文件
  • 2.确认树莓派摄像头安装成功
  • 3.在树莓派上安装运行在Python2上的OpenCV
  • 4.下载人脸识别代码和xml文件并运行
    • 参考:如何从github上下载xml文件
  • 人脸识别教程相关链接
  • 附:两个错误的解决办法

本文前半部分(安装)原创作者:同济大学开源软件协会 子豪兄
转载或复制请以 原文超链接形式 并注明出处 子豪兄。

网上的教程很多都没有办法一步到位,关键在于人脸识别的xml文件路径不对,其实是xml文件根本不存在,路径怎么写都不对,在成功运行程序后,记录下过程,供大家参考

1.更改modules文件

sudo nano /etc/modules
在这个文件末尾添加一行:
bcm2835-v4l2

2.确认树莓派摄像头安装成功

输入命令:
vcgencmd get_camera

如果得到下面的结果,则证明摄像头连接成功

3.在树莓派上安装运行在Python2上的OpenCV

(1)安装

打开树莓派的命令行界面,两个命令即可完成安装。执行第一条命令需要半个小时左右,请耐心等待。第二条命令执行只需要几秒钟。

子豪兄友情提示:
建议第一个命令用树莓派桌面上自带的命令行工具运行,而不要使用远程ssh连接。因为执行命令时间太长,中途如果ssh断线的话无法得知是否已经安装完毕。
命令:
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

(2)在Python2上测试OpenCV

安装好之后,在命令行中输入python或者python2,回车

输入:import cv2

如果出现下图的结果,说明Python2环境下的OpenCV安装成功。


也可以输入

cv2.version
查看opencv版本号

也可以在桌面命令行里输入以下三个命令调用树莓派摄像头,把摄像头捕捉到的画面显示在桌面上,按ctrl+c键退出。

git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py

三条命令依次执行即可

== 至此opencv安装完成==

4.下载人脸识别代码和xml文件并运行

(没有xml文件,代码是会出错的)

代码如下:来自github

import numpy as np
import cv2
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')#xml文件名,注意写对路径,  提示“ ./  ”的意思是当前文件夹
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height
while True:ret, img = cap.read()img = cv2.flip(img, -1)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces = faceCascade.detectMultiScale(gray,     scaleFactor=1.2,minNeighbors=5,     minSize=(20, 20))for (x,y,w,h) in faces:cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)roi_gray = gray[y:y+h, x:x+w]roi_color = img[y:y+h, x:x+w]  cv2.imshow('video',img)k = cv2.waitKey(30) & 0xffif k == 27: # press 'ESC' to quit #先点击视频窗口,然后按esc键即可终止此程序,注意不要使用ctrl+C/X/Z 来退出程序,在raspi上容易卡住break
cap.release()
cv2.destroyAllWindows()

参考:如何从github上下载xml文件

xml文件链接:https://github.com/Mjrovai/OpenCV-Face-Recognition/tree/master/FaceDetection/Cascades

从github想下载的文件的详情页面返回到上层目录,直到右下方出现图示Clone or download,点击即可

人脸识别教程相关链接

手把手教你使用OpenCV库(附实例、Python代码解析)
OpenCV + Python 实现人脸识别
Linux下用OpenCV制作自己的人脸识别xml文件

附:两个错误的解决办法

一:

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor
版权声明:本文为CSDN博主「一个处女座的程序猿」的原创文章,遵循 CC 4.0 BY-SA 版权协议。原文链接:https://blog.csdn.net/qq_41185868/article/details/79818012

二:
OpenCV Error: Assertion failed (!empty()) in detectMultiScale

为树莓派安装opencv并进行人脸识别相关推荐

  1. bootstrap文件不能被识别_树莓派安装openCV做图像识别

    有时候我们会使用树莓派和摄像头去做图像识别,在树莓派和LINUX系统中最常用opencv去做图像识别,这次来介绍下树莓派安装opencv和用树莓派做图像识别. 一.树莓派的系统 安装就不介绍了.直接开 ...

  2. 树莓派安装openCV做图像识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 有时候我们会使用树莓派和摄像头去做图像识别,在 ...

  3. Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储

    原 Python+OpenCv实现AI人脸识别身份认证系统(2)--人脸数据采集.存储 2019年07月02日 08:47:52 不脱发的程序猿 阅读数 602更多 所属专栏: 人脸识别身份认证系统设 ...

  4. 基于树莓派(ARM)的人脸识别摄像头(QT5.8+OPENCV3.4.5)开发总结

    前言 这是帮学妹做的一个毕业设计,觉得有趣就接了.功能较为简单,更像是一个带了人脸识别功能的行车记录仪.从18年12月开始做,大部分代码在3月写出来,到现在大概花了20个工作日的样子.期间从零开始学了 ...

  5. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  6. OpenCV+百度云人脸识别项目及源码

    OpenCV+百度云人脸识别项目及源码 1.需要的硬件环境 虚拟机 带有摄像头的电脑 2.整体项目的框架 用Opencv识别人脸,上传百度云进行识别对比 3.虚拟机上需要装的库 sudo apt-ge ...

  7. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)

    基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...

  8. 使用openCV进行视频人脸识别

    视频人脸识别系列 第一篇 使用openCV进行视频人脸识别 第二篇 使用虹软SDK进行视频人脸识别 第三篇 使用虹软SDK进行视频人脸比对 文章目录 视频人脸识别系列 前言 一.环境搭建 开发环境 配 ...

  9. 【树莓派4B深度学习 垃圾分类】Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类【深度学习 招式篇】

    [树莓派4B深度学习 垃圾分类]Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类[深度学习 招式篇] 后记 1.激活虚拟环境+进入代码+更改测试集路径(这里是安装成功后测试的代码 ...

最新文章

  1. 【翻译】关于回调地狱
  2. 如何使用Arthas定位线上 Dubbo 线程池满异常
  3. python常用8大算法
  4. 计算机二级c语言公共基础知识(免费的) 百度云,计算机二级c语言公共基础知识(免费的).doc...
  5. JKD源码系列(4)-AbstractStringBuilder
  6. 壳管式热交换器行业调研报告 - 市场现状分析与发展前景预测
  7. 在cs页面获取input的值方法
  8. 工程、技术与工程师三者之间的相互关系
  9. 海量数据处理--离线批处理技术(Hadoop)
  10. 认识QA, 游戏测试工程师究竟是做什么的?
  11. 天牛须和贪心算法_BAS_optimization 天牛须算法的简单编写 - 下载 - 搜珍网
  12. xp系统粘贴是灰色的_电脑无法复制粘贴,教你电脑无法复制粘贴怎么解决
  13. C. 点和圆 (类与对象)
  14. 模板脚手架资质怎么办理
  15. android6.0 Bluetooth蓝牙源码流程笔记
  16. 如何使用 apt-get、apt-cache、apt-file 命令管理包
  17. axure能做剪切蒙版吗_UI设计师扔掉PS,使用Axure是怎样一种体验?
  18. Houdini概述——文件管理
  19. LCD中文字模编译前自动提取的方法
  20. 使用现代C++如何避免bugs(上)

热门文章

  1. VB 用 Shell “ explorer “ 打开.dat 结尾的文件,总是无效的过程调用解决方案
  2. android ui风格 车载,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!
  3. 现代计算机系统的层次结构
  4. 对接京东接口之安装(预约/改约/派工/改派)jingdong.las.im.hfs.appointment.push(Java实现)
  5. 【MarkDown】CSDN Markdown之用户旅程图journey详解
  6. 网络孙子兵法!黑客攻防也有三十六计(转)
  7. vue异步引入百度地图API
  8. 【海洋遥感】海洋遥感/BGC Argo/南极磷虾/Python
  9. android 省电模式,android省电模式设置
  10. 清明节 (April 4)