人工智能—OpenCV人脸识别—彭于晏是猫咪还是人,还是?

opencv 图像人物识别 原始网址 https://fedemejia.com/?paged=2   OpenCV-1-图片处理 下载图片 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import cv2 import numpy as np img = cv2.imread('Lenna.png') #load RGB image imgG... 阅读详情

导读:悟已往之不谏,知来者之可追


 我们还有免费的计算机博士大佬的免费直播课可以听,免费咨询学习问题——扫码加我就行

 人工智能常用的十大算法      人工智能数学基础(一)     人工智能数学基础(二)

人工智能数学基础(三)   人工智能数学基础(四)   人工智能学习路线

彭于晏又酷帅又积极向上,讨人喜欢,猫咪很粘人很可爱,也很讨人喜欢,那么强行发问,现在有一张彭于晏的帅照,我们怎么让机器知道这张照片描述是是猫还是人呢?本文借助于计算机视觉库,识别图片描述的内容是人还是猫? 

一、前言

为了快速识别图片的内容,我们借助于Python的两个库,分别是opencv和Pillow。

1.1 OpenCV

OpenCV全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。

OpenCV可用于解决如下领域的问题:

增强现实、人脸识别、手势识别、人机交互、动作识别
运动跟踪、物体识别、图像分割、机器

OpenCV已经包含脸部,眼睛,微笑等许多预先训练的分类器,这些XML文件存储在GitHub仓库上。 

cat face
二选一即可 - haarcascadefrontalcatfaceextended.xml - haarcascade_frontalcatface.xml

human face

haarcascadefrontalfacedefault.xml

下载两个文件到工程目录,cat face 文件重命名为catfacedetector.xml;human face 文件重命名为humanfacedetector.xml。

1.2 Pillow

Python Imaging Library 是一个免费的开源附加库,可以支持打开、操作和保存多种不同的图像文件格式,刚开始名为PIL,但在2011年停止了开发,后面一个名为Pillow的项目基于PIL分支继续支持了图像的相关操作,并且支持了Python 3。

1.3 环境安装

在一个安装了Python 3环境的机器执行以下命令安装对应的库。 python pip install opencv-python pillow

1.4 图片准备

为了验证编写程序的准确性,我们下载两张图片,分别是彭于晏和猫咪。 彭于晏这张照片命名为test1.jpg。

test1.jpg

 猫咪这张照片命名为test2.jpg。

test2.jpg

 二、代码实践

2.1 代码分解

首先我们创建一个python的文件cv.py,文件先声明导入Python环境下我们要使用到的两个库。

python import cv2 from PIL import Image

然后加载工程目录下得脸部特征模型文件到程序。

```python catfacecascade = cv2.CascadeClassifier('catfacedetector.xml') humanfacecascade = cv2.CascadeClassifier('humanfacedetector.xml')

```

接下来首先让我们调整图像大小,以便它们的大小相同。接下来,我们将它们转换为灰度,我们的模型使用灰度图像更快。最后,让我们将编辑的准备图像导入我们的程序,以便我们可以运行猫面和人脸检测模型

```python newsize = (600, 600) imgr1 = Image.open("test1.jpg") imgr1 = imgr1.resize(newsize) imgr1.save("resized1.jpg")

imgr2 = Image.open("test2.jpg") imgr2 = imgr2.resize(newsize) imgr2.save("resized2.jpg")

imgr1 = imgr1.convert('L') imgr1.save('ready1.jpg')

imgr2 = imgr2.convert('L') imgr2.save("ready2.jpg")

Read the input image
img1 = cv2.imread('ready1.jpg') img2 = cv2.imread('ready2.jpg') ```

现在是时候探测面孔了。我们将运行两行代码。第一个检测图像中的人面。第二行是检测图像中的猫面。

python human_faces = humanface_cascade.detectMultiScale(img1, scaleFactor=1.3, minNeighbors=5, minSize=(75, 75)) cat_faces = catface_cascade.detectMultiScale(img2, scaleFactor=1.3, minNeighbors=5, minSize=(75, 75))

接下来我们将在检测到的面上绘制矩形。这些矩形可以是不同的颜色,并且它们的厚度水平也是可调的。

```python for (i, (x, y, w, h)) in enumerate(humanfaces): cv2.rectangle(img1, (x, y), (x+w, y+h), (220, 90, 230), 3) cv2.putText(img1, "Human Face - #{}".format(i + 1), (x, y - 10), cv2.FONTHERSHEY_SIMPLEX, 0.55, (220, 90, 230), 2)

for (i, (x, y, w, h)) in enumerate(catfaces): cv2.rectangle(img2, (x, y), (x+w, y+h), (0,255, 0), 3) cv2.putText(img2, "Cat Faces - #{}".format(i + 1), (x, y - 10), cv2.FONTHERSHEY_SIMPLEX, 0.55, (0, 0, 255), 2) ``` 最后,我们将使用检测的面部保存图像。

```python cv2.imwrite("faces_detected1.png", img1)

cv2.imwrite("faces_detected2.png", img2) ```

总的来说我们的工程目录结构如下。
image.png

2.2 执行结果

执行程序后,目录中多了许多文件,如下图所示。

image.png

看看最终结果。

faces_detected1.png 

faces_detected2.png 

从结果来看,这一组实验识别结果是准确的。

三、总结

本篇文章算是入门级别的计算机图像识别例子,对于整个OpenCV来说,算是小试牛刀吧!过程并不复杂,有兴趣的同学可以上手实践一把。

在整个实践过程中,OpenCV的模型文件对于识别的过程相当重要,有些猫咪是不能成功识别的,比如加菲猫,银渐层,可以去找找合适的模型文件。

还有由于篇幅的限制,本文的没有讲到对照实验,比如交换图片,用猫的模型文件去识别人,用人的模型文件去识别猫,读者自己去试试吧,过程不难得。

对于更加准确的识别,还是要用数据集训练机器,以便它可以为您提供更好的预测,期待大家评论交流。


 小编整理了各种关于人工智能的学习资料库(图像处理opencv\自然语言处理、机器学习、数学基础等),还有AI大礼包:Pytorch、实战框架视频、图像识别、OpenCV、计算机视觉、深度学习与神经网络等视频、代码、PPT以及深度学习书籍均可以免费分享给大家学习

我们还有免费的计算机博士大佬的免费直播课可以听,免费咨询学习问题——扫码加我就行

 

 

【opencv-python-face_recognition人脸识别,分辨人物是否为同一个人】人脸检测,识别出人物框,并能根据两次输入图片分辨是否为同一个人 阅读详情

相关推荐

使用OpenCV简单实现人脸识别

使用OpenCV简单实现人脸检测与人脸识别

m0_45045158的博客 5038

11 OpenCV图像识别之人脸识别

Eigenfaces是一种基于PCA(Principal Component Analysis,主成分分析)的人脸识别方法,属于OpenCV中的特征脸方法之一。该方法将人脸图像转换为低维的特征向量,使用PCA降维的方式提取出训练集中的主成分特征,进而提取出人脸图像的特征向量。在进行识别时,通过比较输入图像与训练集中每个图像的特征向量的相似度来判断其所属的人脸类别。

Hello Word 6993

Unity修改模型的ScaleFactor(偷个懒,在打包AssetBundle的基础上修改)

using System.Collections; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using UnityEditor; using UnityEngine; public class ScaleFactorModify : MonoBehaviour...

Witness_K的博客 2776

【OpenCV】人脸识别——识别是谁

// WinFace.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include using namespace cv; using namespace std; int main() { vector images; vector labels; // imag

Taily老段的专栏 6061

含报错解决【基于Python&OpenCV】0基础实现人脸检测&识别(含完整源代码)|OpenCV简介,安装并验证OpenCV模块及其基本使用:读取图片,灰度转换,修改图片尺寸,绘图;获取Haar特征

OpenCV的全称是,它是一个跨平台的计算机视觉库。OpenCV 由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的 IPP 进行加速处理。OpenCV 用 C++语言编写,它的主要接口也是 C++语言,但是依然保留了大量的 C 语言接口。该库也有大量的 Python、Java and MATLAB/OCTAVE(版本 2.5)的接口。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 853

Open-CV-Object-Detector:检测Open CV AI可以检测到的对象(例如:人,汽车,动物等)

打开CV对象检测器 检测Open CV AI可以检测到的对象(例如:人,汽车,动物等)确保OpenCV已下载到编译器中! 如何使用 运行程序,按q退出。如果不在笔记本电脑上,则将第4行更改为:cap = cv2.VideoCapture(1)

python3一篇学会人脸识别(详细教学篇(附源码))

基础知识附带源码~纯后端人脸识别~

关于自己学习笔记哟 6274

(C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)

PS:首先我们要知道,在C#中Transform组件是可以直接调用的,而其他的(例如:Rigidbody,Animator)都需要通过 GetConpoment<组件的名称>(); 来获取进行实例化。 例子:调用Rigidbody2D private Rigidbody2D rb2D;//声明变量实例化 void Start() { rb2d = GetComponent<Rigidbody2D>();//获取 } 1.对Unity脚本写入有一定的思维了解...

qq_48860282的博客 1万+

基于opencv实现人脸猫脸图像检测(python)

基于opencv实现人脸猫脸图像检测(python) 目录 基于opencv实现人脸猫脸图像检测(python) 1、方法流程如下 2 、导入相关库 3、 导入级联分类器 4、调整图像大小 5、彩色图像灰度化 6、图像面部识别 7、绘制脸部矩形区域 完整Code: 致谢 1、方法流程如下 2 、导入相关库 这里我们只用到了opencv,所以只需要导入相关的库即可。 安装相关库方法 pip install opencv-python pillow 代码导入 i...

ISP行业的忠实粉丝 5595

解密Android相机框架:从HAL到应用层的全链路解析

本文深入解析Android相机框架的全链路架构,从应用层到硬件抽象层(HAL)再到驱动层,详细介绍了CamX-CHI架构的设计哲学与实战应用。通过HAL3接口、V4L2交互机制及Camera2 API的最佳实践,帮助开发者优化相机性能,解决多摄切换、预览卡顿等常见问题,提升成像效率与稳定性。

weixin_29238147的博客 408

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1322

祛除红眼算法python实现

使用python进行了重新复现,这个算法的效果很不错,比起遍地都是的方法(version1)会好一些,version1方法会明显祛除不干净的。我再放大一些可能会更加明显。

大鱼的博客 921

信贷模型域——客户管理阶段模型(贷中模型)

本文主要探讨了信贷模型域中的客户管理阶段模型,重点聚焦于交叉销售模型。交叉销售模型不仅应用于贷中阶段,还贯穿于贷前、贷中、贷后全过程,其核心作用在于提升客户价值、增强客户粘性、降低流失率以及实现风险与收益的平衡。文中通过具体案例展示了交叉销售模型在现实业务中的应用,并指出其在贷中阶段的主要任务是提升存量客户价值、增加产品使用率,同时有效控制风险。

庄小焱 1886

OpenCV人脸检测及识别(深度学习)

简介 最近做了一个人脸检测以及识别的程序,很多的文章都有比较详细的叙述,可以自行查找。但是个人觉得大部分文章都太细致了以至于初学者无法快速领会主干(不是否认质量),是侧重点问题。所以结合我遇到了一些问题,现在做个总结。本文主要叙述实现的思路,对大的方向有了解了,剩下的结合其他详细文章自然水到渠成。 环境 版本:Qt 5.12.6 IDE: QtCreator 4.10.2 编译器:MSVC2017 64bit OpenCV版本:4.5.1 OpenCV版本 先上图 人脸检测和人脸识别是

周小哥的博客 5374

Matlab之App Designer 如何进行三维图形绘制教程

基于Matlab中的App Designer设计可视化界面并进行数据导入及3D绘图,可以直观的在可视化界面上展示分析结果,方便用户进行图形的操作。本文采用案例讲解的方式,详细介绍了如何采用Matlab App Designer建立数据3D绘图的GUI可视化界面的方法和详细的过程步骤,并介绍了导入数据进行计算时需要注意的相关事项,同时提供了详细的代码,以便读者进行学习和操作。

m0_59012156的博客 2067

ICP-10111气压传感器原理图设计,已量产(压力传感器)

在最近的室内导航定位项目中,我们需要一款能捕捉厘米级垂直高度变化的气压传感器 —— 毕竟室内环境里,哪怕是单个台阶的高度差都得精准识别。对比了几款器件后,最终选定了 ICP-10111:它 ±1Pa 的压差精度刚好能把高度差分辨到 8.5cm,0.4Pa 的低压力噪声能让数据输出足够稳定,再加上 0.5Pa/℃的低温漂特性,长期工作的可靠性也能满足需求。下面聊聊这套适配 ICP-10111 的硬件电路设计细节。

不脱发的程序猿 334

如何使用OpenCV和Python从图像中检测和提取人脸

The author selected the Open Internet/Free Speech Fund to receive a donation as part of the Write for DOnations program. 作者选择了开放互联网/言论自由基金会作为Write for DOnations计划的一部分接受捐赠。 介绍 (Introduction) Images...

1336

UG NX二次开发(C#)-外部模式-批量删除某些图层中的体对象和曲线对象

在 UG NX中,有时需要批量删除某文件夹下多个.prt文件中固定一些图层中的体对象和曲线对象,这时如果采用手动逐个打开模型,并选择针对的图层删除,即耗时也容易遗漏,因此采用外部模式来处理比较方便。本文介绍批量删除某些图层中的体对象和曲线对象。

GimiGimmy 3036

python使用opencv对猫脸进行检测,并且框出猫脸

python使用opencv自带函数和分类器对猫脸进行检测,并且框出猫脸

m0_54188335的博客 1908

JAVA:Spring Boot 集成 Baidu UID-Generator ID 生成器

百度UID-Generator是一款高性能分布式ID生成器,支持600万QPS,提供Snowflake扩展版和Cache模式两种实现方式。文章详细介绍了如何在Spring Boot项目中集成该组件,包括Maven依赖配置、MySQL表结构初始化、Spring Boot数据源配置、WorkerId分配策略实现以及UID生成器的核心配置。该方案具有无中心依赖、ID单调递增、支持集群部署等特点,适用于订单号、用户ID等分布式场景。通过缓存模式(Cache-Buffer)可进一步提升性能,满足高并发业务需求。

木头 487

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

人工智能 OpenCV

OpenCV基础使用

m0_62064241的博客 830

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

opencv python笔记

OpenCV其实就是一堆C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。是 OpenCV 库中的一个函数,用于创建一个命名窗口,以便在该窗口中显示图像或进行其他图形操作。这个函数在处理图像和视频时非常有用,尤其是在开发基于图像处理的应用程序时。:OpenCV 是计算机视觉领域的标准库之一,广泛应用于图像识别、物体检测、人脸识别、手势识别等。:在机器人导航、环境感知和交互中,OpenCV 用于处理传感器数据和视觉信息。:在医学影像分析中,OpenCV 用于图像增强、分割和特征提取。

正在学习中ing...... 1759

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

人脸检测5种方法

5种人脸检测方法快速使用。

suic009的博客 3万+

一个简单的opencv入门例子——图片人脸检测

Python3.7,pycharm3.7,opencv实现静态图片的人脸检测。 先上程序 import cv2 #选择分类器,注意路径为绝对值,安装了opencv后,可以在电脑中搜素cv2,找到data文件夹的haar分类器文件 face_cascade = cv2.CascadeClassifier(r'C:\Users\dongz\AppData\Local\Programs\Python\P...

sunsunshine123的博客 354

利用OpenCV实现简单人脸识别

1、类的初始化方法path_name:数据集的路径。

gao747767130的博客 3336

OpenCV Python 入门学习笔记(小白版)

本文为OpenCV Python入门学习笔记,涵盖从环境配置到基础操作的11个核心知识点。重点讲解图片作为数字矩阵的存储原理、BGR颜色通道、坐标系统((x,y)与[y,x]区别)、图像读取与显示、色彩分离、灰度转换、裁剪、绘图、滤波、边缘检测、二值化及形态学操作。通过实战代码演示,强调“运行+修改参数”的学习方法,帮助新手快速掌握图像处理基础,避免路径错误、颜色混淆等常见陷阱。适合零基础者循序渐进上手。

敲代码的乔帮主 244
上一篇: 手把手教你看懂自然语言处理-NLP(4个典型应用+5个难点+6个实现步骤)
下一篇: 一文让你明白知识图谱是什么,及其应用场景技术案例
大模型星球
博客等级 码龄5年 1132粉丝 239原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值