前言
Python是现如今在人工智能领域较为热门的编程语言,因其简洁的语言风格、丰富的类库支持以及具有活跃的交流社区,受到广大开发者的喜爱。起初,python是一门辅助科学研究的一门语言,但因其在当今大热的大数据、人工智能领域得到大量运用,受到众多开发人员的追捧。Python也同样可在树莓派中运行,毕竟树莓派就是一台简易的Linux电脑。
那我们该如何在利用python在树莓派中进行人脸识别呢?这就需要用到一个库 opencv(当然也其他库可供选择,这里就只介绍opencv)
什么是opencv
OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.
不管你是做科学研究,还是商业应用,opencv都能够作为你理想的工具库,由于,对于这两者,它全然是免费的。 该库採用C及C++语言编写,能够在windows, linux, mac OSX系统上面执行。该库的全部代码都经过优化,计算效率非常高,由于,它更专注于设计成为一种用于实时系统的开源库。opencv採用C语言进行优化,并且,在多核机器上面,其执行速度会更快。它的一个目标是提供友好的机器视觉接口函数,从而使得复杂的机器视觉产品能够加速面世。该库包括了横跨工业产品检測、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。
同一时候,由于计算机视觉与机器学习密不可分,该库也包括了比較经常使用的一些机器学习算法。也许,非常多人知道,图像识别、机器视觉在安防领域有所应用。但,非常少有人知道,在航拍图片、街道图片(比如google street view)中,要严重依赖于机器视觉的摄像头标定、图像融合等技术。 近年来,在入侵检測、特定目标跟踪、目标检測、人脸检測、人脸识别、人脸跟踪等领域,opencv可谓大显身手,而这些,不过其应用的冰山一角。
现在,来自世界各地的各大公司、科研机构的研究人员,共同维护支持着opencv的开源库开发。这些公司和机构包括:微软,IBM,索尼、西门子、google、intel、斯坦福、MIT、CMU、剑桥。
安装最新python版本
为了确保一些最新的东西能够被使用,我建议有必要安装一个python3x版本。目前网上一些最新的教程基本都使用的python3版本,python3相对于python2进行了一些重构,因此能在python3上运行的代码在python2不一定能运行,为了避免一些不必要的麻烦,安装一个最新版本的python显得非常重要。
安装 python3 在下载前若你没有更换软件源,为了节约下载时间,建议更换软。什么?不知道如何更换软件源?请看这《更换软件源》 当然,要是你时间不是问题,你大可忽略。
1、在命令窗口输入如下指令下载python3:
sudo apt install python3
2、删除掉原先 python 的链接
sudo rm /usr/bin/python
3、创建一个新的链接指向刚刚安装的 python3
sudo ln -s /usr/bin/python3 /usr/bin/python
4、测试
在命令窗口输入
python3
若能正常输出python3x版本则安装成功。
安装opencv
python3在树莓派中安装opencv的方式有两种,一种是编译安装,另一种是pip命令安装。前者编译安装往往需要花费数小时时间,出现错误也会被整的挺烦躁的,对于大型项目就建议使用编译安装,但对于我们这些做些小项目的初学者,pip命令安装仅需几分钟就能完成,何乐而不为呢。
这里我只介绍pip安装。当然,如果你有编译安装的需求可看这篇文章:https://zhuanlan.zhihu.com/p/46032511
1、安装依赖
请逐条执行以下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libhdf5-dev libhdf5-serial-dev
sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
这些安装包保证了OpenCV的基础运行
2、安装opencv sudo pip3 install --no-cache-dir opencv-contrib-python==3.4.3.18
经过几分钟的等待之后,opencv就可安装完成了。
3、测试是否成功安装
依次运行如下指令: sudo python3 >>> import cv2 >>> print(cv2.version) 能正常输出安装版本则代表安装成功。
在python中运行opencv
在树莓派自带的python IDE中运行以下代码即可调用摄像头。
什么?你不知道如何在树莓派安装摄像头?请看这篇文章:《树莓派摄像头》
python代码:
import cv2 # 导入库
cap = cv2.VideoCapture(0) # 开启摄像头
# 循环读取图像
while True:
ok, img = cap.read() # 读取摄像头图像
if ok is False:
print('无法读取到摄像头!')
break
# 展示图像
cv2.imshow('image', img)
k = cv2.waitKey(10) # 键盘值
if k == 27: # 通过esc键退出摄像
break
# 关闭摄像头
cap.release()
cv2.destroyAllWindows()
运行效果
结尾
到这里OpenCV就安装成功了,对于图像识别你有啥想法就尽情尝试吧~
参考来源
- 什么是opencv:https://blog.csdn.net/wtfloser/article/details/89315982
- 升级树莓派python版本:https://www.jianshu.com/p/61b3119ab3f5
- 在树莓派上安装基于python3的OpenCV:https://zhuanlan.zhihu.com/p/92184435