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

1.什么是计算机视觉?

\qquad计算机视觉(computer vision):机器试图理解所看到的目标。计算机视觉通过算法去尝试理解视觉信息,从而将理解转化为分类,决策,模式观察等等。

2.计算机视觉的应用

\qquad物体检测、字符识别、指纹识别等等。

3.计算机视觉如何理解视觉信息?

\qquad计算机理解视觉信息,有两种方式,一种是自下而上(bottom-up),一种是自上而下(up-bottom)。两者的区别是计算机的注意机制不同。

3.1由下而上(bottom-up)的方式

\qquad所谓计算机由下而上的理解视觉信息,是指计算机只关注图像中的兴趣区域,获取对象特征;

3.1由上而下(up-bottom)的方式

\qquad所谓计算机由上而下的理解视觉信息,是指计算机关注图像中的整体区域,即通过全局信息来得到当前的图像关注点,利用背景的视觉信息获取对对象的理解。

4.图像

4.1如何让计算机对图像进行处理?

\qquad图像即数组。
\qquad图像由一个个像素点组成,图像的单位面积像素点越多,图像的分辨率越高,而每个像素点我们可以由数字确定表示,计算机可以对这些表示像素点的数值进行处理,从而进行图像处理。
\qquad每一张图像,我们都可以看成一个二维网格,每一个像素都是组成网格的最小单元。

4.2基于RGB的像素表示

\qquad每一个像素点都有一个颜色,那么这个颜色如何使用数值表示呢?在RGB色彩原理中,任何一种颜色都可以由一个3 ×\times× 1的向量[R,G,B]表示。
RGB配色表
\qquad 查看RGB配色表,我们可以看出各种颜色的RGB的值,即向量的值。比如黑色[0,0,0],白色[255,255,255],其它颜色也都分布在[0,0,0]和[255,255,255]之间,其中当R=G=B时,颜色为不同程度的灰色;当颜色为彩色时,[R,G,B]三者不完全相同。
\qquad为了减轻计算机的计算量,当图片为二进制图像或者灰度图像时,因为R=G=B,所以我们只采用1×\times× 1的数值表示像素颜色,即每个像素点只有一个通道;当图像为彩色时,我们采取3×\times× 1的向量[R,G,B]表示每个像素点,即每个像素点有三个通道。
\qquad假如一张灰度图像,长有200个像素点,宽有150个像素点,所以可以使用200×\times× 150的矩阵表示;假如一张彩色图像,长有200个像素点,宽有150个像素点,那么可以用200×\times× 150×\times× 3的3D矩阵阵列来表示。
\qquad 基于RGB的色彩组成原理,我们对图像做很多操作,比如图像分割,利用同一张图像中,不同物体对象间的色彩差异,查找对象间的边缘,从而对同一张图片中的不同对象进行分割;寻找角点,在对图像进行分割之后,查找图像以获得某些特征,也称为角点。

5.图像处理基础函数

\qquad我们使用python对图像进行处理,需要安装opencv-python,matplotlib等。
\qquad 5.1 读取图像
dog

import cv2
import matplotlib.pyplot as plt
import timep_color = cv2.imread('F:\dog.jpg')
print(p_color.shape)
print(p_color)

\qquad通过cv.imread()可以读取图片,生成数值矩阵,上面这张dog图片的矩阵形状为520×\times× 600×\times× 3,是一张彩色图像。
\qquad 5.2 彩色图像灰度化,opencv是对灰度图像进行处理,所以需要把彩色图像处理为灰度图像。

import cv2
import matplotlib.pyplot as pltp_color = cv2.imread('F:\dog.jpg')
p_gray = cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
print(p_gray.shape)

\qquad通过cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY),将p_color转换为灰度图片,上述代码输出矩阵为520×\times× 600。

\qquad 5.2 矩阵图像的可视化

import cv2
import matplotlib.pyplot as pltp_color = cv2.imread('F:\dog.jpg')
p_gray = cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
plt.imshow(p_gray,cmap='gray')
plt.show()

灰度图\qquad plt.imshow(p_gray,cmap=‘gray’) plt.show()将灰度化的图像显示。

6.人脸数目检测

import cv2
import matplotlib.pyplot as plt# 载入图片
p_color = cv2.imread('../face1.jpg')
# 将图像灰度化
p_gray = cv2.cvtColor(p_color,cv2.COLOR_BGR2GRAY)
#展示灰度图像
plt.imshow(p_gray,cmap='gray')
plt.show()# 载入haarcascade级联分类器cascade classifier
haarcascade = cv2.CascadeClassifier('../haarcascade_frontalface_alt.xml')
# 检测图像人脸个数
faces = haarcascade.detectMultiScale(p_gray, scaleFactor=1.1, minNeighbors=5)
print("人脸的个数:",len(faces))# 给检测到的人脸加矩形框
for (x, y, w, h) in faces:cv2.rectangle(p_color, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 展示检测到的人脸并加矩形框
plt.imshow(cv2.cvtColor(p_color, cv2.COLOR_BGR2RGB))
plt.show()

上述代码依次输出:
灰度图人脸个数加矩形框的人脸检测\qquad图片face1,haarcascade_frontalface_alt.xml和程序代码可以查看人脸数目检测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【操作系统复习】进程的定义、组成、组织方式

进程的定义、组成、组织方式一、进程的定义二、进程的组成三、进程的组织四、进程的特征一、进程的定义 程序:就是一个指令序列 早期的计算机(只支持单道程序) 引入多道程序技术之后: 为了方便操作系统管理,完成各程…

谷歌大脑新研究:强化学习如何学会用声音来观察?

来源:AI科技评论编译:王晔校对:维克多人类已经证明,大脑中的神经系统拥有为不断适应外界环境的变化而改变自身结构的能力。大脑内部的突触、神经元之间的连接可以由于学习和经验的影响建立新的连接。相应的,感官替代&a…

【操作系统复习】系统调用

系统调用一、什么是系统调用?二、系统调用与库函数的区别三、系统调用背后的过程一、什么是系统调用? 💁 系统调用: 是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供…

北大校友“炼丹”分享:OpenAI如何训练千亿级模型?

来源:AI科技评论编译:琰琰大规模深度神经网络训练仍是一项艰巨的挑战,因为动辄百亿、千亿参数量的语言模型,需要更多的 GPU 内存和时间周期。这篇文章从如何多GPU训练大模型的角度,回顾了现有的并行训练范式&#xff0…

WeStrom自定义设置修改快捷键

按照下图操作,不BB: 终极懒人设置:!!! 转载于:https://www.cnblogs.com/luzhanshi/p/10755285.html

计算机视觉——图像预处理及边缘检测

1.为什么要进行图像预处理? \qquad当对图像进行边缘、轮廓的检测时,图像噪声会对检测产生不利影响,并且为了帮助模型专注于一般细节并获得更高的准确度,我们需要对图像进行预处理。 \qquad预处理的内容有去除噪声,控制…

【操作系统复习】进程的状态与转换

进程的状态与转换一、进程的状态二、进程的转换一、进程的状态 进程是程序的一次执行过程。在这个执行过从中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见 ,进程的状态是会有各种变化。为了方便对各个进程的管理&#xff…

图灵奖得主杨立昆人工智能十问:AI会统治人类吗?

来源:《科学之路》作者:杨立昆 即便是最先进的人工智能系统也存在局限性,它们还不如一只猫聪明。人工智能常常被认为是一项将要颠覆世界的技术,从这一概念诞生至今的65年中,无数电影与小说塑造了各种经典的人工智能角…

【操作系统复习】进程控制

进程控制一、原语1.1 进程控制相关的原语1.1.1 进程的创建1.1.2 进程的终止1.1.3 进程的阻塞和唤醒1.1.4 进程的切换💁 ​进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。一、原语 用…

DeepMind 的新强化学习系统是迈向通用 AI 的一步吗?

来源:数据实战派作者:Ben Dickson这篇文章是我们对 AI 研究论文评论的一部分,这是一系列探索人工智能最新发现的文章。对于已经精通围棋、星际争霸 2 和其他游戏的深度强化学习模型来说,人工智能系统的主要挑战之一是它们无法将其…

第十届蓝桥杯 等差数列(Python)

题目: 思路: 1、给数组排序,求出两两之间的差值即公差,如果差值为0,直接返回n,否则进入第二步; 2、给差值数组排序,求出两两之间的最大公因数即公差 代码: def gcd(…

汪卫华院士:无序中找有序 复杂中寻规律

来源:中国科学报原文出处:《中国科学报》 (2021-10-11 第4版 综合)作者:汪卫华(作者系中国科学院院士、松山湖材料实验室主任)冰河时代为什么会周期性重复出现?是否有关于混沌和湍流系统更一般的数学描述&a…

霍金 | 哥德尔和物理学的终结

来源:爱思想转自:人机与认知实验室 作者:史蒂芬霍金 英国剑桥大学著名物理学家,现代最伟大的物理学家之一译者:凌高【感谢陈禹老师:"冯诺依曼说过,没有明确的概念,量得分析是毫…

BUAA_OO_第二单元作业总结

程序设计策略 第一次作业 第一次作业实现的是FAFS式傻瓜调度电梯,由于是第一次接触多线程,难度不是很大。在我的设计里,我借鉴了生产者消费者模式,设计了一个输入线程和一个电梯线程,控制器的设计使用了单例模式&#…

蓝桥杯 回文日期

模拟 n int(input())def check(x):m int(x[:2])d int(x[2:4])x int(x)if 1<m<12:if m 2:if (x%40 and x%100!0) or x%4000:if d<29:return Trueelse:return Falseelse: if d<28:return Trueelse:return Falseif m in [1,3,5,7,8,10,12]:if d<31:return Tr…

因果推断研究获2021诺贝尔经济学奖

来源&#xff1a;集智俱乐部 北京时间2021 年 10 月 11 日 17 时许&#xff0c;2021 年诺贝尔经济学奖&#xff0c;授予了三位经济学家——David Card因为对“对劳动经济学的实证研究贡献”而获得一半奖金&#xff0c;Joshua D. Angrist和Guido W. Imbens因“对因果关系分析的方…

【计算机网络复习】1.1.1 概念、组成、功能和分类

概念、组成、功能和分类二、功能三、组成四、分类计算机网络&#xff1a;是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 计算机网络是互连的、自治的计算机集合。 互连 — 互…

因果表征学习最新综述:连接因果科学和机器学习的桥梁

来源&#xff1a;集智俱乐部作者&#xff1a;蔡心宇审校&#xff1a;龚鹤扬、陆超超编辑&#xff1a;邓一雪论文题目&#xff1a;Towards Causal Representation Learning论文地址&#xff1a;https://arxiv.org/abs/2102.11107这篇名为Towards Causal Representation Learning…

这种记忆技术在弯曲时更好?

A new kind of flexible phase change memory is tested while bent around a 4-millimeter-diameter rod. A.I. KHAN AND A. DAUS来源&#xff1a;IEEE电气电子工程师新的相变存储器需要更少的能量&#xff0c;部分原因是它是建立在塑料上的&#xff1f;要想让粘贴式显示器、…

接口与内部类

1.什么是接口(B) 接口是一种引用数据类型&#xff0c;用interface声明&#xff1b;当出现interface便可判断为接口。 形式&#xff1a;【修饰符】 interface 接口名称(public interface Pepar{ }) 接口可声明属性&#xff0c;且属性都默认为static final 1 public interface Pa…