安装anaconda环境
访问anaconda网站下载最新版本的anaconda for windows。
anaconda平台网站下载页面。
注意:确保选择python 3.6版本和相应的体系结构(32位或64位)。
安装anaconda环境及其默认值设置。
anaconda平台的高级版安装选项窗口。
确保保留“将anaconda添加到我的path环境变量”选项取消选择。
一个窗口,显示使用anaconda平台安装microsoft visual studio代码安装的选项。
本教程不需要安装“microsoft visual studio code”,因为它将使用spyder ide环境以python编程。
继续并选择在出现时跳过安装选项。
一些程序将是我通过设置过程安装:anaconda prompt,anaconda navigator和spyder ide。
完成安装后,在windows任务栏中搜索“anaconda prompt”并打开桌面应用程序。
在搜索框中显示anaconda prompt桌面应用程序的windows任务栏。
使用anaconda提示
要测试anaconda命令是否正常工作,请运行以下代码。
测试anaconda命令是否正常运行所需的特定代码。
此过程中,为python 3.5版本创建了一个新的anaconda环境。
使用anaconda安装程序设置了python 3.6版本,但出于兼容性原因,我们将使用带有open cv3的python 3.5版本分布。
创建新环境
使用anaconda创建新环境所需的特定代码。
你会找到一个输出如下所示的例子:
使用anaconda激活新环境所需的代码输出示例。
anaconda将安装一些新包;只需输入‘y’表示是,然后按回车键继续安装。
在下一步中,我们将安装更多的包,所以让anaconda经销商安装所需的包,否则它可能会没有与python正确集成。
安装完成后,环境被激活:
在anaconda中激活确认环境的特定代码。
如果安装成功完成,您会注意到‘(base)’环境已更改为新环境。
这表示新环境已激活并且anaconda已将‘$ path’变量更改为‘c:/users/akshay/anaconda3/envs/myopencv’位置。现在所有未来的安装都只适用于这个特定的环境。
python版本现在也应该显示为python 3.5而不是系统版本。
确认anaconda平台当前正在运行的python版本的特定代码。
安装opencv3和依赖项
首先,安装numpy库进行科学计算。
安装numpy库所需的特定代码。
然后安装anaconda-client。
安装anaconda-client所需的特定代码。
最后,安装opencv3(由于它的大小,可能需要一些时间才能下载库。)
在anaconda平台中安装opencv3所需的特定代码。
现在使用anaconda安装并运行spyder ide for python。
在windows任务栏中搜索“anaconda navigator”并打开它。
从那里可以选择新环境并安装spyder。
anaconda平台应用程序页面的屏幕截图。
显示spyder位置的屏幕截图anaconda平台中的环境。
安装spyder后,通过选择启动来打开程序。/p》
人脸检测算法
确保opencv平台在python中运行。您可以使用以下代码:
确认opencv平台所需的特定代码在python中正常运行。
如果它去了如上所示的下一行没有返回错误,那么你将设置为继续下一步。
你需要下载所需的python脚本(.pv),带有faces的图像(。 jpg)和本文末尾提供的xml格式的haar级联分类器(.xml)。
注意:请确保将所有这些文件保存在同一文件夹中以方便访问。
haar级联分类器背后的理论有点复杂,为了简化它,基本上它们是包含opencb检测对象所需的所有数据的xml文件,如本例中的面部。
分类器通过机器学习方法进行训练,以检测图像中的模式,以识别其中的面部。
‘文件浏览器选项卡’w ill允许您导航到保存先前文件的文件夹。
您可以使用以下代码检查当前工作目录:
确认当前工作目录所需的特定代码。
如果代码输出文件存储位置的文件夹位置,那么你就可以了。
代码细分
包含将用于面部检测的xml文件和图像的特定代码。
由于设置了一个文件夹,其中包含所有必需文件作为当前工作目录,因此可以搜索文件名没有完整路径的情况。
为此项目选择的xml文件用于检测直接面向摄像机的面。
如果可以使用不同的分类器,期望。
指定的特定代码分类器。
此时,我们创建了级联分类器并使用我们的xml文件对其进行初始化。这会加载所需的数据以检测变量‘haar_face_cascade’中的面。
将照片转换为灰度所需的特定代码。
现在使用opencv的库函数可以将使用的photo.jpg转换为灰度。
注意:大多数图像机器学习操作都以灰度显示。
执行人脸检测算法所需的特定代码。
上面的函数执行人脸检测算法,可以分解为:
detectmultiscale:检测对象的常规函数。
灰度:将照片转换为灰度颜色。
scalefactor:补偿
minsize:可能的最小对象大小,任何小于通过此函数指定的对象的对象都将被忽略。
minneighbors:定义需要在窗口周围检测到的面部图案的数量,以将空间声明为面。 注意:建议将此函数的值设置为0,然后逐渐增加它以查看输出如何变化。
上述函数值为设置为最常用的那些。
鼓励尝试使用不同的值来找到最佳设置。
执行该功能时,矩形标记面的位置在图像中。它还提供矩形左上角的坐标(x,y)及其宽度(w)和高度(h)。
可以使用以下代码提取信息:
提取值所需的特定代码用于标记照片中检测到的面部的矩形。
我们使用这些值来使用cv.rectange函数在面周围绘制一个矩形。
anaconda平台在照片中检测到的面部周围绘制矩形所需的特定代码。
最后,我们使用检测到的面部显示图像,并等待用户按下一个键。
人脸检测结果
我们首先在band.jpg照片上测试算法。
使用anaconda正确执行人脸检测的示例。
当我们运行程序时,控制台应该回复“找到5个面孔!”并输出带有矩形的照片,表示其中面部的位置。
对这个家庭进行了第二次测试照片。
anaconda的一个例子歪曲图像中的面孔。
该程序在本次审判中歪曲了服装作为面孔因为与第一张照片不同,所有乐队成员与相机的距离相同 - 父母离照片的距离远远超过照片中的孩子。通过将比例因子调低至1.3,可以轻松解决此问题。
anaconda的第二个例子正确识别图像中的面部。
程序现在可以正确识别图像中的面部。
由于此程序基于机器学习,因此永远不会提供100%的准确性。如果您在大量图像样本上测试算法,您会发现它适用于大多数但不是所有情况。此外,根据照片,需要调整 detectmultiscale 函数中的参数以避免误报。
最终代码
1. import cv2
2.
3. # specify the image path for face detection and xml file for the cascade
4. photo_path = “band.jpg”
5. cascade_path = “haarcascade_frontalface.xml”
6.
7. # initialise the haar cascade classifier with the xml file
8. haar_face_cascade = cv2.cascadeclassifier(cascade_path)
9.
10. # read the photo and convert to grayscale
11. photo = cv2.imread(photo_path)
12. grayscale = cv2.cvtcolor(photo, cv2.color_bgr2gray)
13.
14. # detect faces in the photo using opencv library
15. faces = haar_face_cascade.detectmultiscale(
16. grayscale,
17. scalefactor = 1.1,
18. minneighbors = 5,
19. minsize = (30, 30)
20. )
21.
22. print(“found {0} faces!”.format(len(faces)))
23.
24. # draw a rectangle around the faces
25. for (x, y, w, h) in faces:
26. cv2.rectangle(photo, (x, y), (x+w, y+h), color = (0, 255, 0), thickness = 2)
27.
28. cv2.imshow(“faces found”, photo)
29. cv2.waitkey(0)
12V分立元件线性稳压电源
FPGA设计中如何防止信号被优化
一种适合教学的开关电源设计
麻省理工华裔研究出2D晶体管,轻松突破1nm工艺!
5G将为工业互联网提供安全可靠的技术连接
怎样用Python数据科学平台Anaconda在图像中启用面部检测
揭秘全球 10 大最省油的 SUV 90% 老百姓买的起
网约车市场“风生水起”,宁德时代/比亚迪大举入局
意法半导体或因麦克风诉讼案声誉受损
小米骁龙855新机跑分曝光:是MIX3 5G版还是小米9?
拉力试验机有哪些主要构造?机架、传感器、夹具
华为鸿蒙系统PC版怎么安装?
艾迈斯半导体推出领先的高精确度、超低功耗及小尺寸新型温度传感器
机器视觉已经成为了备受全球关注的新基础设施技术
开辟新篇章!谷歌机器学习又有新进展!
发展农业无人机需要解决的三个问题
基于AD8253的复合放大器满足设计要求
韩国运营商LG U+的5G网络已保持在500Mbit/s的速度时延在20ms以内
飞思卡尔推出一款先进的三轴加速计系列MMA845xQ 加速计
农业无人机的市场竞争加剧,增加农民认知是扩宽市场的关键