0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用Python数据科学平台Anaconda在图像中启用面部检测

454398 来源:工程师吴畏 2019-08-03 09:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

安装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)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89569
  • 面部检测
    +关注

    关注

    1

    文章

    4

    浏览量

    5944
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用于高速成像,科学和太阳蛋白紫外线应用的图像增强器解决方案

    图像增强器用于增强低照度图像,直至单光子的检测和成像。Photonis 是 Exosens 的一部分,为科学应用 (IIT) 提供各种图像
    的头像 发表于 11-19 07:36 39次阅读
    用于高速成像,<b class='flag-5'>科学</b>和太阳蛋白紫外线应用的<b class='flag-5'>图像</b>增强器解决方案

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的科学应用

    流体芯片 ⑤AI计算平台 ⑥基于AI的自主决策系统 ⑦基于AI的自主学习系统 2、面临的挑战 ①需要造就一个跨学科、全面性覆盖的知识库和科学基础模型 ②需要解决信息不准确和认知偏差问题 ③AI系统
    发表于 09-17 11:45

    如何利用NuMicro® M55M1 ML MCU进行面部标志检测应用?

    如何利用NuMicro® M55M1 ML MCU进行面部标志检测应用?
    发表于 09-05 06:59

    k230上使用yolov5检测图像卡死,怎么解决?

    Ubuntu上将onnx转换kmodel后,使用示例仓库的test_det_kmodel.py检测图像没问题 打印位置: 模型转换过程
    发表于 08-11 07:41

    任正非说 AI已经确定是第四次工业革命 那么如何从容地加入进来呢?

    的基本理论。了解监督学习、无监督学习和强化学习的基本原理。例如,监督学习,理解如何通过标注数据来训练模型进行分类或回归任务,像通过大量的猫和狗的图片标注数据来训练一个
    发表于 07-08 17:44

    Linux新设置对CY7C65215重新编程后,如何启用新设置?

    Linux 系统下,如何 1. Linux 的编程新设置配置 CY7C65215? 如\"USB 串口配置实用程序\" 或命令行 fwDownload.exe。 2.
    发表于 05-26 08:23

    Python嵌入式系统的应用场景

    你想把你的职业生涯提升到一个新的水平?Python嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的库和快速的开发周期,这使得它在某些嵌入式场景
    的头像 发表于 03-19 14:10 1187次阅读

    为什么无法使用图像文件夹执行对象检测Python演示?

    使用自定义固态盘 Mobilenet 执行对象检测,并使用自定义脚本文件夹包含多个图像。 每张图像上的
    发表于 03-07 07:51

    请问是否可以使用单个输入图像运行人脸检测MTCNN Python演示?

    是否可以使用单个输入图像运行人脸检测 MTCNN Python* 演示?
    发表于 03-06 08:15

    使用Python APIOpenVINO™创建了用于异步推理的自定义代码,输出张量的打印结果会重复,为什么?

    使用 Python* API OpenVINO™ 创建了用于异步推理的自定义代码。 遇到输出张量的打印结果会重复的问题,即使输入图像不同。
    发表于 03-06 07:53

    创建了用于OpenVINO™推理的自定义C++和Python代码,从C++代码获得的结果与Python代码不同是为什么?

    创建了用于OpenVINO™推理的自定义 C++ 和 Python* 代码。 两个推理过程中使用相同的图像和模型。 从 C++ 代码获得的结果与
    发表于 03-06 06:22

    华为云 Flexus X 实例评测使用体验——Anaconda 环境安装

    Anacondapython 开发最常用环境,那么我们今天使用【华为云 Flexus X 实例】来搭建一下这个环境,希望本文能对 python 开发者们有一定的价值,当然,这里也推荐一下华为的【CodeArts】用着的确是
    的头像 发表于 01-21 16:13 685次阅读
    华为云 Flexus X 实例评测使用体验——<b class='flag-5'>Anaconda</b> 环境安装

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2212次阅读

    ANACONDA——关于发布数据应用程序的新简单方法

    我们推出了一款用于发布数据应用程序的开创性解决方案:具有 Panel 应用程序部署功能的 Anaconda Cloud Notebooks。Panel 是一种开源 Python 工具,现在
    的头像 发表于 01-17 11:39 644次阅读
    <b class='flag-5'>ANACONDA</b>——关于发布<b class='flag-5'>数据</b>应用程序的新简单方法

    卡尔曼滤波图像处理的应用实例 如何调优卡尔曼滤波参数

    、速度等属性的估计。例如,视频监控系统,卡尔曼滤波可以用于跟踪行人的运动轨迹,为行为分析和异常检测提供基础数据自动驾驶领域,卡尔曼
    的头像 发表于 12-16 09:11 2543次阅读