开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):计算机视觉的基本原理】
课程地址:https://edu.aliyun.com/course/3112108/lesson/19273
计算机视觉的基本原理
内容介绍:
一、计算机视觉的处理对象
二、计算机视觉的工作原理
三、计算机视觉的关键技术
一、计算机视觉的处理对象
1.数字图像的定义及数字图像处理的内容
数字图像又称为数码图像或数位图像,是用一个数字矩阵来表达客观物体的图像;是由模拟图像数字化得到的;是一个离散采样点的集合,每个点具有其各自的属性;是以像素为基本元素的图像;可以用数字计算机或数字电路存储和处理的图像。
数字图像处理包括图像变换;图像增强;图像恢复;.图像压缩编码;图像分割;图像分析与描述;图像的识别分类。
计算机视觉处理的对象是数字图像,数字图像叫数码图像或者数位图像,图中是一朵花有好多的数字以前拍照用的是胶卷,后来出现数码相机,数码相机拍出来的照片全成了照片的文件,有各种格式的 BMP、JF、PNG 等等,不管是什么样的文件格式,存储的内容都是图像的数字化内容,用数字矩阵来表达客观物质,图像越大数字矩阵越大,是模拟图像数字化得来的,是离散采样点的集合,每个点具有各自的属性;是以像素为基本元素的图像,像素值越高文件就越大,也代表图片里面包含的信息就越多,如果把照片放大很多倍,就能看到照片是由很多像素点组成,像素里面还会包括颜色信息,可能是用 RGP来表示的,也可能用 YUV 格式来表示,这种数字图像肯定是可以用计算机存储和处理的,本质上的数字图像就是一堆的数字,处理就是对一堆的数字进行各种处理。
二、计算机视觉的工作原理
1. 图像数字化的两个过程
采样是将空间上连续的图像变换成离散的点,采样频率越高,还原的图像越真实。
量化是将采样出来的像素点转换成离散的数量值,一幅数字图像中不同灰度值的个数称为灰度等级,级数越大,图像越清晰。
计算机视觉把处理的对象进行数字化,第一步把所有的模拟图转化为数字图像,这个步骤叫图像的数字化,它包含了两个过程,一个是采样,先采样再量化,采样是将空间上连续的图像变成离散的,采样的频率越高,还原的图像就越真实,用的点越多图像越有细节、越清晰。小方框里面如果采样频率低,或者只用两个点去采样,点少很难去囊括方框里面所有的内容,如果用的点多,几乎可以覆盖左边图里面绝大部分的内容,能获得的图像信息就很丰富,很细节好。
前面采样采集到了很多的点,像素点怎样把它转换成数量值,把采样出来的点转化成一些数字然后组成矩阵就是量化的过程,数字也是有范围的,在计算机里面用多少位去表示数字,如果只用一位表示二进制就只有零和一,只能用黑或者白表示,图会变成一个灰度图,图里面会变成非黑即白,所以如果用的数据范围越大,表示的颜色可能就越多,如果颜色高一点就变成灰度图,有灰色然后图像变得有层次,如果再大一点用32位就可以达到真彩色,一个点大概有1600万以上的颜色,可以增加灰度,用的采样频率越高,会有越多的数据去保存,能获得的信息就越多,图象质量越高,具体要到的程度跟实际的需要是有关系的,比如只是做一个手写的识别,可能就不需要很高的数据还要做一些对出图像的处理。
2.计算机视觉的基础工作原理
构造多层神经网络
较低层识别初级的图像特征
若干底层特征组成更上一层特征级
通过多个层的组合
最终在顶层做出分类
让计算机去理解图像的内容从里面获得有用的信息,后续的去解决一些问题,计算机的视觉跟人类的视觉非常相似,人类的视觉通过眼睛看到图像的信息,大脑然再去进行抽象判定,然后再分析处理得到结果明白图片,视计算机视觉也类似,计算机也要去做大量的计算,那通过图里面复杂的人工神经网络。构造这多层的神经网络,神经网络的输入就是看到的或者计算机拍到的图片,输出就是要进行的分类,多层的神经网络需要经过大量的数据训练,跟人也是类似,人去看东西识别的时候也是要经过训练,经过大量的训练之后,神经网络就可以对输入进行识别,有的图像进来会给多层神经网络,经过一层一层的处理,卷积神经网络每一层都要做一次卷积然后去尺化,每一层识别出来的图像的特征不一样,较底层识别出来初级的图像特征,经过若干层之后组成了更上一层的特征,经过多层的组合最后在顶层分类。
三、计算机视觉的关键技术
1.图像分类、目标检测、语义分割、实例分割的介绍
计算机视觉技术
图像分类:给定一组各自被标记为单一类别的图像,对一组新的测试图像的类别进行预测,并测量预测的准确性结果。
目标检测:给定一张图像,让计算机找出其中所有目标的位置,并给出每个目标的具体类别。
语义分割:将整个图像分成像素组,然后对像素组进行标记和分类;
语义分割是在语义上理解图像中每个像素是什么,还须确定每个物体的边界。
如一张“人驾驶摩托车行驶在林间小道上”的图片
实例分割:在语义分割的基础上进行,将多个重叠物体和不同背景的复杂景象进行分类;
同时确定对象的边界、差异和彼此之间的关系。
前面讲述计算机视觉处理的对象是图像,基本的原理是用多层的神经网络来做计算机视觉。计算机视觉首先是图像分类,就是对图像进行分类,有一张图像在不告诉计算机的时候去检测,可以判断出来图像是属于哪一类,能力训练先给定一组各自交际为单一类别的图像,先做好标记,先教计算机这个图像是什么,那个图像是什么,属于哪个类别,要先有这个数据,有了数据的训练之后计算机就可以对新的图像进行类别的预测,就能去判断然后再给出结果,比如手机里的照片可能把照片分为人物、风景、美食、建筑等等,都可以用图像分类功能做到。
计算机视觉还可以做目标检测,目标检测是给一张图像拿计算机在里面找出其中所有目标的位置,并标出目标的具体类别,在很多领域都有应用,比如在一大堆的照片里面找某一个人都出现在哪些照片里面,或者在照片里面检测所有有人的照片,然后再把有人在哪里、在照片上位置、是谁都标出来,目标检测可以做到这一点。
语义分割更复杂一点,把图像分成像素组,然后对像素组进行标记和分类,是在语义上理解跟目标检测一样,语义理解更深入,要理解图像上出现的到底是什么还要去确定物体的边界,比如找一个人驾驶摩托车行驶在民间小道上的图片,要判断有人、摩托车还有民间小道,要把这些东西都判断出来,然后再语义分割的基础上,还有实例分割。实例分割是对多个重叠物体和不同背景的复杂景象进行分类,多个物体跟背景在空间确定分割开,确定对象的边界、差异还有之间的关系,是更复杂的任务。
2.视频分类、人体关键点检测、场景文字识别、目标跟踪的介绍
计算机视觉技术
视频分类:分类的对象是由多帧图像构成的、包含语音数据、运动信息等的视频对象。
需要理解每帧图像包含内容,还需要知道上下文关联信息。
人体关键点检测:通过人体关键节点的组合和追踪来识别人的运动和行为
对于描述人体姿态,预测人体行为至关重要。
目标跟踪:在特定场景跟踪某一个或多个特定感兴趣对象的过程。
场景文字识别:
在图像背景复杂、分辨率低下、字体多样、分布随意等情况下,将图像信息转化为文字序列的过程。
计算机视觉有一个很有趣的应用是场景文字识别,在图像背景复杂、分辨率低下、字体多样、分布随意等情况下,将图像信息转化为文字序列的过程,有一个文字识别的技术叫 OCR,现有的文字识别、文字检测大部分都是基于 OCR 算法,但是基于 OCR 算法的文字识别虽然技术成熟,但是能力有限,场景文字识别所面对的问题有很多复杂的地方,比如背景复杂,可能在砖块上、窗户上写的字,也可能是文本的颜色、大小、形状等等的变化很多,各种角度、文字方向,各个方向变化非常多,也可能成像条件很差,分辨率、模糊、失真还有阴影等等,OCR 能解决就用深度学习的方法,思路大概是先做文本检测,然后做文本识别,或者检测和识别同时做,用深度学习就取得了很好的效果。
计算机视觉除了在处理图像之外还要处理视频,计算机视觉也可以进行视频分类,分类视频跟分类图像分类的对象是不一样的,视频是多帧的图像,视频里面还会包括语音数据还有一些运动信息等等,视频的分类不仅可以做每一帧图的内容分析,还要知道下文之间的关联关系,视觉技术还可以做人体关键点检测,这个功能可以进行实时的检测,直接在视频里面去记录,标直接标记出人体在运动的时候头部、四肢关键点都标出来,通过关键点的组合和追踪能够识别人的运动行为,能够识别人体的姿态,这方面的技术可以用在运动的分析、一些生产安全的检测这些方面,因为可能每个人运动的时候,像走步的时候身体的姿态都是有点特征的,甚至技术可以去做个人的区别判定。计算机视觉还可以做目标追踪,在特定的场景下跟踪一个或多个感兴趣的对象,找到感兴趣的对象之后,视角可以一直跟踪的这个对象,可以做到球赛转播的跟踪,因为在球赛的时候摄像机是要跟着足球运动转来转去,需要有好多个机位摄影师跟随,然后有技术自动跟踪足球跟着它转播。
3.本节回顾
通过本节的学习,我们学到了
计算机视觉的处理对象
计算机视觉处理的对象是能够被计算机或者数字电路处理和储存数字图像。
计算机视觉的工作原理
计算机视觉通过构建多层的神经网络来“理解和看懂”图片。
计算机视觉的关键技术
计算机视觉的关键技术有图像分类、目标检测、图像分割、视频分类、人体关键点检测、场景文字识别、目标跟踪等等。