学习Python的应用笔记

Python 学习

  • 怎么学习编程
  • 问题一:我想用Python人脸识别
    • Python的安装
    • pip命令安装Python 依赖包
    • 编写程序人脸识别程序
      • 程序的第一步,先完成简单的识别

怎么学习编程

这里只讲使用,不讲语法,额,稍微讲点儿语法。

想自己上大学的时候,大一直接上去就学C语言。然后就被一个问题困扰了多年,“C语言到底能干啥?”。这个问题同样可以用到其他学科,“高等数学能干啥?线性代数能干啥?概率论能干啥?”。填鸭式教育加上自己悟性太差,自己又没有好的学习习惯,造就了一个极其普通的普通学生,更多时间都是为了考试,结果大学4年的时间里,除了学习了51单片机,大部分还是自学的以外,其他科学完就还给了老师。我们好歹是工科学校啊,毕业的时候就只有一种感觉,感觉自己啥也不会。然后各种焦虑,直到学习编程,总算有个可以混饭吃的技术。但是随着年龄增长,就会发现,MD,现在年轻人太不给面子了,比你年轻,比你能熬夜,比你能加班,轻轻松松把老员工按在地上摩擦。老员工不多学点,很快就被摩擦到没。
焦虑就更严重了,直到有个高人指点:所有知识都是来自于生活,也就是说,知识都是解决生活中问题的方法、经验的总结。无论是物理学、化学、数学、编程,都是为了解决生活中的问题。你为啥学习的时候是先学习知识而不是先发现问题呢?比如说,你想做人脸识别,第一个要学的是Python,然后你就一头扎进Python的语法,出不来,却忘了你学习Python的原因,所以你学啥不会啥,最好的学习方法时先学会分析问题,然后再选择工具,工具只是一个手段,比如说:做人脸识别,你得明白什么样的图片最好处理,然后再选择语言,再在处理图片的过程中了解语言的规则,很快就学会这个编程语言了。说的好像很有道理… …仿佛明白了什么……
学习Python的应用笔记_第1张图片
于是乎,开始学习Python。其实有一定编程基础,学习其他语言还是比较轻松的,主要是看自己想解决的问题了。

问题一:我想用Python人脸识别

套用高人的逻辑:我的主要目的是人脸识别,借用的工具是Python,用其他语言也是可以的,C++、Java、Javascript都可以实现。既然是用Python,那大概得晓得Python到底是为了什么发明的,看了Python起源才发现,Python的创始人Guido van Rossum居然是为了打发圣诞节无聊,开发出来的新的解释程序……学习Python的应用笔记_第2张图片

算了,大佬的世界咱不懂……
人脸识别必然是对图像的处理,那么需要的工具就是基于Python的图像处理工具,还能有啥:openCV-python。
ok,问题到这里就解决了百分之二十了,晓得了要用啥。

Python的安装

这里就不做过多的赘述,因为网上实在是太多了,搜一搜就一大把。这里我安装的是Python3.7windows10 系统。Python 跑不起来或者pip没有作用的大多数情况都是因为环境变量没配置或者安装位置的权限有问题。学会合理Google或者Bing,最次,百度总会吧。

pip命令安装Python 依赖包

到这一步的时候,默认你上一步是OK的。什么叫依赖包,其实我不大喜欢叫依赖包,我喜欢叫别人造好的工具,也就是工具包,也有其他人这么叫。此时打开windows的powershell,不是win10系统的打开cmd,Linux的打开terminal
学习Python的应用笔记_第3张图片
稍微检查一下python 和 pip
powershell 中输入:pip -V,如果正常会如下图所示输出:在这里插入图片描述
powershell 中输入:python -V,如果正常会如下图所示输出:
在这里插入图片描述
powershell中输入以下命令,安装openCV的依赖包:

pip install opencv-python

如果总是安装失败,可以换个pip源。
opencv-python安装的时候会自动安装numpy,安装完后,调用下面的命令来查看包是否安装

pip list

学习Python的应用笔记_第4张图片
然后安装 opencv-contrib-python

pip instal opencv-contrib-python

该安装的已经安装完毕,这个时候已经完成百分之40的工作。

编写程序人脸识别程序

OpenCV 的用法这里不做详细解释,也对人脸识别的原理也不做过多的解释,因为涉及到的知识点比较多,要是真的讲起来那可是一个大工程,这里只做应用。
opencv-contrib-python是OpenCV的一个拓展包,这里可以用它来训练自己的人脸数据模型。
下来开始吧!!!!

程序的第一步,先完成简单的识别

打开Python IDLE,点击菜单栏 File ,再点击下拉菜单中 New File 新建一个文件,保存到你想保存的地方。
在你python安装的位置,实在找不到在powershell中输入

pip -V

输出内容里就有python的安装路径,以我电脑为例:
在这里插入图片描述
进入python安装目录下的\Lib\site-packages\cv2\data目录,找到haarcascade_frontalface_default.xmlhaarcascade_eye.xml这两个文件,复制粘贴到你刚才新建的python项目的目录下,第一个文件为脸部分类特征集,第二个为眼睛分类特征集。
然后再你的python文件中输入以下代码:

# 引入openCV
import cv2

# 加载人脸识别分类器
face_casade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# 定义摄像头,这里传的参数是0 即我笔记本自带的摄像头,如果是其他摄像头输入1、2以此类推,这里我遇到一个坑,
# 就是联想电脑的摄像头驱动有问题,导致摄像头可以打开但是没有图像,最后在
# 联想官网下载了新的摄像头驱动才搞定的
capture = cv2.VideoCapture(0)
# 定义摄像头是否读取成功标志位
capture_ok = True
while capture_ok:
	# 调用摄像头获取摄像头采集到的头像
	capture_ok,image = capture.read()
	# 如果摄像头采集失败,跳出打印错误,跳出循环
	if (bool(1-capture_ok)) :
		print('camera error!!')
		break
	# 如果图片读取正常,将RGB图片转为灰度图
	gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
	# 开始人脸检测
	faces = face_casade.detectMultiScale(gray_image,scaleFactor=1.2,minNeighbors=5,minSize=(32,32))
	# 把检测到的人脸用绿色的框框出来
	for(x,y,w,h) in faces:
		cv2.rectangle(image,(x,y),(x+2,y+h),(0,255,0),2)
	# 将处理好的图片显示出来
	cv2.imshow('video',image)
	# 等待结束操作按键,按q键退出。这里传入1(即1ms)是为了让图片时候不出现掉帧,如果想试一下可以改大试一下就知道了
	if (cv2.waitKey(1) == 113):
		break
#结束时释放资源
capture.release()
cv2.destroyAllWindows()

直接在电脑上运行起来就可以看到你自己美丽的脸庞了!这个时候检测人脸是没有啥问题,但是不能识别摄像头下的你是谁!下一篇就来训练一个人脸特征集来制作正儿八经的人脸识别程序吧。

你可能感兴趣的:(学习笔记,人脸识别,编程语言,python)