Python实现检测照片中的人脸数

 更新时间:2024年04月08日 11:48:21   作者:Sir 老王  
这篇文章主要为大家详细介绍了如何利用Python语言实现检测照片中共有多少张人脸,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

最近疫情被隔离在家,准备研究一下python的机器学习,看了一些资料。也逛了逛论坛。

机器学习的实例真是太多了,让人眼花缭乱,更加懵逼了。通俗来说,主要两个方面,比较浅层次的就是机器学习,最后才是深度学习。

主要过程就是通过一定的算法来训练大量的数据产生一个数据模型,最后再利用这个模型来分析或计算出出最接近于实际情况的结果。

大概理解了意思之后,我就不再去深究了,直接搞个实例来试试看什么效果。至于更深层级的东西,我比较喜欢在实战中慢慢体会。

1、准备

今天实践的是python中的opencv这个库,至于这个库官方肯定比我解释的更加准确,下面是官方的解释。

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。

没有opencv环境的将opencv先安装一下,为避免版本不一样导致出现问题,我这里在安装命令中将版本号写了出来。

pip install opencv-python==4.6.0.66

python解释器使用的版本是3.8.6,我这里测试使用的是这两个版本是没有问题的。

2、代码

下面是整个业务的实现过程,haarcascade_frontalface_default.xml训练模型我是直接在girhub上面下载的。所以这里并没有对数据训练的实现,使用的是别人训练好的模型。

后面的学习中,我会慢慢训练出自己的模型来使用,其实不用自己训练数据模型的话代码量还是比较少的。下面是github的训练模型的下载地址,目前已经2100多的star了。

https://github.com/opencv/opencv/tree/master/data/haarcascades

下载好训练模型之后放在自己本地,一会在调用训练模型的时候直接调用就OK了。导入opencv模块,注意这里导入的名称是cv2。

import cv2

获取训练好的数据模型(haarcascade_frontalface_default.xml这就是我们前面从github上面下载的)。

face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

读取需要分析的原始图片。

image = cv2.imread(r'./pic.jpg')

对读取的pic.jpg图片做灰度处理。

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

识别检测一下women.jpeg图片中的人脸的个数是多少个。

faces = face_cascade.detectMultiScale(

    gray,

    scaleFactor=1.15,

    minNeighbors=5,

    minSize=(5, 5),

    flags=cv2.CASCADE_SCALE_IMAGE

)

这时实际上已经检测完成了,使用len函数计算一下检测出的人脸个数。

print("当前图片中共发现{}张人脸".format(len(faces)))

检测出的人脸的信息都存在faces的数组中,遍历一下人脸信息做处理。

for (x, y, w, h) in faces:

    # 在识别出的人脸部位画上圆圈

    cv2.circle(image, (int((x + x + w) / 2), int((y + y + h) / 2)), int(w / 2), (0, 255, 0), 2)

显示识别出的人脸位置。

cv2.imshow("Face Nums", image)

cv2.waitKey(0)

至此,通过机器学习做的一个简单的人脸识别的功能就完成了。

到此这篇关于Python实现检测照片中的人脸数的文章就介绍到这了,更多相关Python检测照片人脸内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中关于py文件之间相互import的问题及解决方法

    python中关于py文件之间相互import的问题及解决方法

    这篇文章主要介绍了python中关于py文件之间相互import的问题,本文用一个例子演示下如何解决python中循环引用的问题,需要的朋友可以参考下
    2022-02-02
  • python中pip安装、升级以及升级固定的包

    python中pip安装、升级以及升级固定的包

    我们知道python有大量的第三方库,这也是python的优势之一,pip就是python整的软件包管理系统,类似于Linux平台的yum仓库,下面这篇文章主要给大家介绍了关于python中pip安装、升级以及升级固定包的相关资料,需要的朋友可以参考下
    2022-02-02
  • 基于Python实现Word转HTML

    基于Python实现Word转HTML

    将Word转换为HTML能将文档内容发布在网页上,这样,用户就可以通过浏览器直接查看或阅读文档而无需安装特定的软件,下面我们就来学习一下Python是如何实现Word转HTML的吧
    2023-12-12
  • 超全面python常见报错以及解决方案梳理必收藏

    超全面python常见报错以及解决方案梳理必收藏

    使用python难免会出现各种各样的报错,以下是Python常见的报错以及解决方法(持续更新),快进入收藏吃灰吧
    2022-03-03
  • django 配置阿里云OSS存储media文件的例子

    django 配置阿里云OSS存储media文件的例子

    今天小编就为大家分享一篇django 配置阿里云OSS存储media文件的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python pytest自动化测试库十个强大用法示例

    Python pytest自动化测试库十个强大用法示例

    本文将介绍Python的pytest库的10个强大用法,并提供相应的代码示例,帮助你更好地理解和应用单元测试,它提供了许多高级功能和便利的用法,能够让我们更轻松地编写和执行单元测试
    2024-01-01
  • Windows下实现将Pascal VOC转化为TFRecords

    Windows下实现将Pascal VOC转化为TFRecords

    今天小编就为大家分享一篇Windows下实现将Pascal VOC转化为TFRecords,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 基于Python生成个性二维码过程详解

    基于Python生成个性二维码过程详解

    这篇文章主要介绍了基于Python生成个性二维码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 全面理解python命名空间字典

    全面理解python命名空间字典

    本文主要介绍了全面理解python命名空间字典,python的命名空间由字典实现,属性为键,对象为值,通过属性找到对象,下面就来具体了解一下,感兴趣的可以了解一下
    2023-12-12
  • 基于OpenCV实现视频循环播放

    基于OpenCV实现视频循环播放

    这篇文章主要为大家介绍了如何利用OpenCV实现视频的循环播放,本文为大家提供了两种方式,一个是利用Python语言实现,一个是利用C++语言实现,需要的可以参考一下
    2022-02-02

最新评论