一张照片,数出880个脸! 你的手机里面人脸框框怎么来的?

如何检测照片中共有多少张人脸,机器学习 后面的学习中,我会慢慢训练出自己的模型来使用,其实不用自己训练数据模型的话代码量还是比较少的。下面是github的训练模型的下载地址,目前已经2100多的star了。今天实践的是python中的opencv这个库,至于这个库官方肯定比我解释的更加准确,下面是官方的解释。python解释器使用的版本是3.8.6,我这里测试使用的是这两个版本是没有问题的。对读取的pic.jpg图片做灰度处理。... 阅读详情

 

下面这张据说是最多人自拍的照片里面有1000个人。 百度的人脸检测技术成功找到其中880个人。这个的确考验眼神,让人来数的话,估计拿着放大镜也数不清。

 

这还是2018年底的成绩,估计现在又厉害了一截。这就今天我们讨论的问题。

 

人脸检测现在应用已经非常普遍,但是背后的技术原理还是很有意思的。比如大家用手机照相时候,应该注意到了相机能够自动检测到人脸。

 

首先要稍微区分一下人脸检测和人脸识别两个概念,非常相关又略有不同:

  1. 人脸检测: 当前照片里,哪些部位是人脸?
  2. 人脸识别:   当前照片里面的人是谁?手机照片自动归类就用到了这个技术。

 

 

1.

 

从人工智能大的方面来说,这两个问题很好统一。其实就是给定输入变量X (照片),模型自动给出结果Y。这个Y可能不同,比如1)是不是人脸?2)谁的人脸?3)这个人年纪多大?)。

 

简答来说,人工智能模型是解决一个方程:

 

                  X  *  W  =  Y

其中W就是模型要学习的一系列参数。参数学好了,就能成功的把输入变量映射到我们想要的输出变量。

 

1)对于人脸检测问题来说,X是照片的各个像素值,包括3个通道的颜色。图像在计算机中的存储方式是数字矩阵对应像素点阵,比如1024×768等。而每个像素点是用数值来表示RGB或者黑白灰。而Y就是人脸框框的四个坐标值。

 

 

2)对于人脸识别问题,就是判断这个人和谁是同一个人时候,X输入同上,而Y是一长串特征值向量,可以用来和已有标签人脸图片进行对比,特别一致的可以判断为同一个人。

 

3)对应年龄识别问题,X输入同上,而Y输出就是年龄大小。

 

 

 

2

 

人脸检测和识别问题大的方法可以分为两大类:

1)基于统计特征+传统机器学习算法

2)基于深度学习方法

 

1)基于统计特征+传统机器学习算法

 

早期的人脸检测可以理解为模板匹配技术, 即用一个人脸模板图像与被检测图像中的各个位置进行匹配,确定这个位置处是否有人脸。

 

此后机器学习算法被用于判断是否是人脸的问题,包括神经网络,支持向量机等。

 

在2001年Viola和Jones设计了一种人脸检测算法。这个算法较之前的算法有一个速度和精度上的提高,是第一个真正能在工业界应用的算法。其主要原因是用了一个叫做AdBoost的集成算法。用一些快速偏弱的算法先过滤掉大部分不是人脸的图片部位。

 

在比较图片中各个部位是否有人脸时候,有一个“滑动窗口”的概念。由于人脸可能出现在图像的任何位置,在检测时用固定大小的窗口对图像从上到下、从左到右扫描,判断窗口里的子图像是否为人脸。为了检测不同大小的人脸,还需要对图像进行放大或者缩小构造图像金字塔,对每张缩放后的图像都用上面的方法进行扫描。比如512x512像素大小的图片,假设分类器窗口为24x24,各种缩放总的下来扫描的窗口可能会超过1百万。

 

在深度学习之前,输入变量的特征都是人工设计的。人工设计的好处是简单好理解,虽然效果可能没有深度学习好,但是速度比较快。比如下面的图片特征就是基于方向梯度直方图(HOG)设计的,人脸的轮廓还是很明显的:

 

 

 

2)基于深度学习

 

深度学习的技术日新月异,但是基础都和卷积神经网络有关。

 

基于一副图片每个像素点的数值,卷积神经算法通过一层层的神经元网络,对图片的各种特征进行组合和加工。对于这个算法最好的理解就是,想象一下,你拿着各种各样形状的小件物品。这些物品可以是一个勾的形状,可以是一个叉的形状,或者一个圆圈。总之你能想到的各种形状,有可能对研究图片的特征有效的东西。然后你把每一个物品拿到你要研究的图片上去比较(这个物品尺寸肯定要比研究的图像小很多)。从上到下,从左到右的移动,每次移动一个像素点。在这个过程中,你记录当前图片的区域是否和你手里拿的物品相似,如果相似你记录1,不相似的话,你记录0。 不断重复这个过程,可以很多次,直到你觉得你已经能充分的把图片的各种特征给找了出来。这就是深度学习能够自动寻找图片特征的基本原理。

 

卷积的过程如下图所示:

 

人脸检测算法是在卷积神经网络的基础上进行各种升级和创造。比如Cascade CNN]可以认为是传统技术和深度网络相结合的一个代表,和传统的人脸检测技术相似,其包含了多个分类器,这些分类器采用级联结构进行组织,然而不同的地方在于,Cascade CNN采用卷积网络作为每一级的分类器。快速的剔除掉超过90%的检测窗口。

 

 

再回到文章一开始的百度技术,居然能够密密麻麻图片里面的800多人,不得不感叹机器学习算法在人脸识别上应用已经炉火纯青了。这给大家省了多少事情。以后全校集合,不用费事点名了,拍一张照片自动数人,很方便。

欢迎关注公众号:

 

一个数出照片中人数的小程序 基于信息熵定义的场景复杂度应用小程序 输入图像: 代码: import os import math import numpy as np from PIL import Image def PeopleNum(): img =Image.open('d:/python_project/1.jpg') #divided it into four part w,h= im 阅读详情

相关推荐

基于Python+OpenCV图片人脸检测和计数

一、项目背景与意义在现代社会中,人脸检测技术在多个领域都发挥着重要作用,如安全监控、人流统计、智能相册管理等。本项目旨在利用Python编程语言结合OpenCV库,实现图片中的人脸检测和计数功能。通过自动识别和计数图片中的人脸数量,可以大大提高工作效率和准确性。二、技术原理本项目主要利用OpenCV库中的Haar级联分类器或深度学习模型(如MTCNN、SSD等)进行人脸检测。Haar级联分类器是一种基于机器学习的方法,通过训练大量的人脸和非人脸图像样本,构建出一个能够识别出人脸的级联分类器。

2301_79810943的博客 1335

计算机视觉——简介以及人脸数目检测

1.什么是计算机视觉? \qquad计算机视觉(computer vision):机器试图理解所看到的目标。计算机视觉通过算法去尝试理解视觉信息,从而将理解转化为分类,决策,模式观察等等。 2.计算机视觉的应用 \qquad物体检测、字符识别、指纹识别等等。 3.计算机视觉如何理解视觉信息? \qquad计算机理解视觉信息,有两种方式,一种是自下而上(bottom-up),一种是自上而下(up-bottom)。两者的区别是计算机的注意机制不同。 3.1由下而上(bottom-up)的方式 \qquad所谓计

zxr916的博客 1482

微信小程序|基于小程序实现人脸数量检测

此文主要通过小程序实现检测图片中的人脸数量并标记出位置信息。当近视的小伙伴看不清远处的人时,用小程序一键识别就可以在手机上看清楚啦,是不是很实用呢。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 4115

Python获取图片中的人数

# -*- coding:utf_8 -*- from gluoncv import model_zoo, data, utils import cv2 import matplotlib.pyplot as plt def get_num(file): person = [] num = 0 net = model_zoo.get_model('ssd_512_resnet50_v1_voc', pretrained=True) x, img = data.trans

weixin_40405425的博客 3727

视频编解码——视频编解码器工作原理

目录什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器时评编码器的历史 什么是视频编解码器 简单来说就是用于压缩或解压数字视频的软件或硬件 编码是信息从一种形式或格式转换为另一种形式的过程,解码是编码的反向。 适用于视频 编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式(视频如h.264,h.265,m-jpeg等)。 解码是编码的反向过程。应用中,一般是将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。 为什么需要视屏编解码器 需要在有限的带宽或存储空间

路人coder 1万+

从GWAS到单细胞:利用seismic包精准定位疾病相关的关键细胞亚群与驱动基因

本文详细介绍了如何利用seismic包将GWAS与单细胞测序数据结合,精准定位疾病相关的核心细胞亚群与驱动基因。通过创新的统计算法和实战案例,帮助研究者从遗传汇总数据中挖掘关键生物学机制,提升疾病研究的精准度和效率。

weixin_29215815的博客 441

python识别图像中的人物个数具体代码

python识别人物个数CV解决

NLP与推荐算法 2346

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

基于图像的人数统计

基于图像的人数统计属于模式识别问题,可应用于安防领域。传统的方法包括:1)视频捕获;2)目标提取(背景建模、前景分析)——常见方法有高斯背景建模、帧差法、三帧差法等;3)目标识别(模式识别、特征点分析),如人脸识别,头肩部识别等,OpenCV里可以使用Hear特征、级联分类器来进行特征检测;4)目标跟踪——基本方法有直方图特征匹配和运动目标连续性匹配,OpenCV里可以使用CamShift算法直接对

叶剑杰的专栏 1万+

STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报)

本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。

weixin_28285943的博客 517

STM32F407 HAL库定时器触发ADC采集与DMA数据传输(定时器TIM+ADC+DMA)

在STM32F407系列微控制器的开发中,结合定时器、ADC(模数转换器)与DMA(直接存储器访问)控制器,能够显著提升数据采集与传输的效率。本文将指导你如何使用STM32 HAL库,通过定时器触发ADC1的单通道采集,利用DMA传输数据,最终通过串口将电压值打印出来。具体实现中,我们将读取ADC1的通道5(对应引脚PA5),并将转换得到的电压值发送到串口助手上进行显示。

jmlinux的博客 7012

基于图像的人数统计方法

基于图像的人数统计方法大致分为3类: 1、基于个体统计的方法。 2、基于统计特征 3、基于卷积神经网络的特征

snwang_miss的博客 1万+

Java本地AI推理初体验:Jlama+LangChain4j构建离线问答系统

Jlama 是专为 Java 生态设计的现代化大型语言模型(LLM)推理引擎,旨在让开发者无需依赖外部服务即可直接在 Java 应用中运行本地化模型推理。本文将结合Jlama + langchain4j 实现一个本地可运行的简单问答Demo。

2501_92589102的博客 407

java图片识别人像计算人头数_2018云从人头计数 - osc_fwabjaez的个人空间 - OSCHINA - 中文开源技术交流社区...

the first columnthe second columnlinuxkeypointsctrl shift +unbuntu终端放大ctrl -unbuntu终端缩小1 WACV20192 AAAI2019ls是单词list的简写,Linux有些命令的名字大多采用单词简写,比如rm命令是remove的简写,而mv命令则是move的简写,还有cp=copy,chown=change own...

weixin_35242523的博客 327

Protobuf NDK以及QNX交叉编译

Protobuf 用处很广,尤其是通讯数据序列化,反序列化。TODO。

静虚待令,有物混成 1560

疾风气象大模型4.0白皮书

《疾风气象大模型白皮书摘要》 疾风气象大模型(J-AFM)是国内首个基于3D建模的气象智能平台,突破传统二维气象分析的局限,采用体素化技术构建"x-y-z-t"四维统一模型,实现从分钟级短临到30天跨时效的连续预测。核心技术包括:1)多源数据三维同化,融合雷达、卫星、风廓线等异构数据;2)物理约束AI解码器,嵌入能量守恒、湍流封闭等气象原理;3)行业适配插件,服务风电、光伏、航空等领域,如山地风场尾流校正、云影短临预测。平台支持批流一体推理与边缘部署,提供概率化输出和误差溯源能力,显著降

专注AI大模型,软件混淆,授权 542

使用第三方SDK检测给定图片人脸数的心得体会(一)

最近在弄:使用第三方SDK检测给定图片上人脸个数,现在已告一段落,现在想要把自己做的过程中的心得体会以及走过哪些弯路,理一理。 拿到第三方给的SDK,目录里面包含libs,sourceCode和readme三个,如下图1中所示 1. 没读懂readme以及对没读懂的原因进行分析          readme里面内容解释:      第一条:使用现成的so库文件和jar包。如何使

u010477502的专栏 1640

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python库识别图像中人物的个数

识别图像中的人物个数python就能解决

NLP与推荐算法 2058

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java图片识别人像计算人头数_Opencv人头跟踪检测

//-------------------------------------人头检测-------------------------------------int main(){//VideoCapture video("E:\\C_VC_code\\Text_Photo\\feini.flv");vectorhead;FILE *read = fopen("detector_TQ.txt",...

weixin_36163071的博客 1402

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python利用opencv库实现识别静态图像中的人数、年龄、性别

Python利用opencv库实现识别静态图像中的人数、年龄、性别

sunshine_boy1的博客 1557

yolo8识别图像中人物的个数

yolo8能不能识别有几个人?

NLP与推荐算法 1816

face_recognition结合opencv进行多人脸识别

step1:准备好opencv,numpy和face_recognition三个库step2:准备好人脸图像 step3:利用opencv读取三张图片 step4:将图片转为特征向量,并将向量和名字添加到列表中,一一对应step5:摄像头展示,读取摄像头图片帧step6:将图片缩放到1/4,进行处理时候更加的迅速step7: opencv摄像头读取的是BGR格式,这里转为face_recognition需要的RGB形式,同时将图像原图和图像中的所有人脸面部以及对应的所有特征信息放入faces_encodin

weixin_54627824的博客 5852

人头识别与计数_太厉害了,ToF相机数人头可以数的这么准!

太厉害了,ToF相机数人头可以数的这么准! 现在社会上无人店突然成为创投圈的新风口,媒体的新宠儿,让消费者期待。近期无人健身房悄然入市,很多健身爱好者都对新鲜事物充满兴趣前去尝试。 然后,随着越来越多的人使用发现了现在的无人健身房使用称重的方法无法精准有效的判断一卡一人,经常会出现一卡携带多人的情况发生,失去了无人健身房的意义。但是现在出现了一种“ToF(Time of Flight)飞时测距检...

weixin_42438750的博客 3134

Python中绘制场景热力图

我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图。 下面以识别图片中的行人,并绘制热力图为例进行讲解。 步骤1:首先识别图像中的人,得到bounding box的中心坐标。识别方法多样化,坐标也可以自己定义。 步骤2:将所有中心坐标放入一个list类型的变量data中,即data = [[x1,y1] [x2,y2] …] 步骤3:...

LCY19750003的博客 3127

浅谈人群行为分析算法

概述 人群行为分析算法分为四个主要方向: 1、行人检测(Pedestrian Detection) 2、人群计数(Crowd Counting) 3、人群密度分析(Crowd Density Estimation) 4、人群状态分析(Crowd Behaviour Analysis) 人群计数与人群密度分析为其中重要的组成内容。人群计数与人群密度分析算法通常的方法大致可以分为三种: ...

向高手学习 3660

研究人脸识别的十大概念

本文简要的介绍了一些主要的人脸技术的概念,目的是让非研究的同事,对各项技术能解决的问题有所了解。1. 人脸检测“人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。

机械鸡 2740
上一篇: 量子计算机多快好省,“量子霸权”和打铁还有点关系(下)?
下一篇: AI换脸,流行一阵儿了;其中原理你一定也明白!
robot_learner
博客等级 码龄7年 632粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值