嵌入式工作室21级招新-ML/CV(第二期)学习笔记-邱子恒
Part1: color models and drawing figures on images
颜色模式
- RGB:
- R红色,G绿色,B蓝色,三色叠加形成其他颜色,三种颜色均有256个亮度水平级,叠加后共有1670万种颜色,即真彩色;
- 发光屏幕的加色模式;
- 色彩超出打印范围,故不适用于打印;
- CMYK:
- C青色(Cyan),M洋红色(Magenta),Y黄色(Yellow),K黑色(Black);
- 针对印刷媒介,基于油墨的光吸收/反射特性,故适合印刷;
- 用CMYK模式编辑图像处理速度慢;
- HSV(HSB):
- H表示色相(Hue),S表示饱和度(Saturation),V\B表示亮度(Value\Brightness);
- 色相(色度):纯色,组成可见光谱的单色;饱和度:色彩的纯度,最大饱和度时是每一色相最纯的色光;亮度:色彩的明亮度。为零时即为黑色,最大亮度是色彩最鲜明的状态;
- 人脑按照色度、饱和度、亮度辨别颜色,故此模式为最接近人眼睛的色彩模式;
- HSL:
- Hue 色相,Saturation 饱和度,Luminance 亮度;
- LAB:
- 由三个通道组成,一个通道是L(亮度),另外两个是A和B(色彩通道)。A通道包括的颜色是从深绿色(底亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);B通道则是从亮蓝色(底亮度值)到灰色(中亮度值)再到黄色(高亮度值);
- 此模式定义的色彩最多,且与光线及设备无关,处理速度与RGB模式同样快,比CMYK模式快很多;
- 适用于图像编辑。
Links
色相
饱和度
亮度
Part2:filtering
滤波(filtering)
- 作用:图像滤波可以更改或者增强图像,强调一些特征或者去除图像中一些不需要的部分。
- 实现方法:滤波是一个邻域操作算子,利用给定像素周围的像素的值决定此像素的最终的输出值。
- 原图像+掩膜= 新图像
- 不改变原图大小
卷积(convolution)
实现:
- 原图像->翻转+滤波器矩阵(卷积核Kernel)= 新图像
- 改变原图大小!!!
常见滤波器原理与应用场景:
-
模糊化
-
高通&低通滤波器
- 高通:让高频通过,阻挡低频,可以让边缘更加明显,增强图像。
- 低通:让低频通过,阻挡高频,可以去除噪点,让锐利的边缘变平滑,图像模糊。
-
噪声
- 高斯噪声:服从高斯分布(正态分布)的噪声;因为不良照明和高温引起的传感器噪声;通常在RGB图像中比较明显;
- 椒盐噪声:通常是由图像传感器,传输信道,解压处理等产生的黑白相间的亮暗点噪声(椒-黑,盐-白);通常出现在灰度图中;
- 高斯噪声:服从高斯分布(正态分布)的噪声;因为不良照明和高温引起的传感器噪声;通常在RGB图像中比较明显;
-
均值模糊:将当前像素和它的四邻域(上下左右)的像素一起取平均,然后再除以5
- blur(src, ksize, dst=None, anchor=None, borderType=None)
- 示意图
-
中值模糊:从原矩阵中取出n*n个数,进行排序,取中值
- mediaBlur(src, ksize, dst=None)
-
高斯模糊:较均值模糊更加平滑,用于图像降噪;构建权重矩阵进行滤波
- 滤波器的权重总值等于1时,不会改变图像的亮度。
- 权重总值大于1的滤镜会让图像偏亮,小于1的滤镜会让图像偏暗。
- 权重总值等于0时:该滤波器属于边缘检测核,可以把边缘转化为白色,非边缘转化为黑色。
- 权重矩阵
-
双边模糊:较高斯模糊,更能处理边缘图像,保留边缘信息(高斯模糊对周围值取等价权重,更易模糊边缘)
- 方法:原理:一个与空间距离相关的高斯核函数*一个灰度距离相关的高斯函数(加入对灰度信息的权重)
-
运动模糊:只在一个方向模糊
-
-
阈值滤波
- 含义:像素值高于阈值时,赋予一个新值,否则赋予另一值
- 全局阈值:全图一个阈值 (cv2.threshhold(src,thresh,maxval,type)
- 自适应阈值:不同区域采用不同阈值
-
梯度
-
含义:即图像变化的速度。对于图像的边缘部分,其灰度值变化较大,梯度值也较大;相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。一般情况下,图像的梯度计算是图像的边缘信息。
-
计算:一般通过计算像素值的差来得到梯度的近似值,也可以说是近似导数。该导数可以用微积分来表示。
-
Sobel滤波器:结合了高斯平滑和微分求导运算。利用局部差分寻找边缘
- cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])
- cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])
-
Scharr滤波器:对Sobel的优化
- Sobel中ksize=-1
-
Laplacian滤波器:先用Sobel 算子计算二阶x和y导数,再求和
- dst = cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]])
-
-
Morphological transformations
- 含义:基于图像本身的一些形态特征来做的一些操作
- 类型
- Erosion 腐蚀:用于分离粘连对象、消除噪声;二值化时通常将前景设置为白色1,背景为黑0。Kernel从整张图片上滑动,如果kernel中所有像素值都为1,那么对应的像素才为1,反之为0。所以,图像边界的像素会被腐蚀掉,使前景物体变薄变小。
- Dilation 膨胀:与腐蚀相反,只要有一个为1,那么对应的像素就为1,增加前景物体的厚度;用于使用腐蚀消除了图像中的噪音再使用膨胀,也可以用于连接对象的损坏部分。
- Opening:先腐蚀在膨胀,移除噪声
- Closing:先膨胀再腐蚀,消除前景中的空洞及小黑点
- Morphological Gradient:得到物体轮廓
- Erosion 腐蚀:用于分离粘连对象、消除噪声;二值化时通常将前景设置为白色1,背景为黑0。Kernel从整张图片上滑动,如果kernel中所有像素值都为1,那么对应的像素才为1,反之为0。所以,图像边界的像素会被腐蚀掉,使前景物体变薄变小。
Part3:From feature detection to face detection
计算机视觉任务
- 分类(Image Classification):对图像进行特征描述,检测一张图像是否包括一种物体。
- 定位(Image location):在分类的基础上,定位目标物体的具体位置。
- 检测(Object Dection):从图像中输出单个目标的Bounding Box(边框)以及标签;较定位更一般化~
- 分割(Semantic segmentation、Instance segmentation):语义分割:判断图像中哪些像素属于哪个目标;实例分割:目标检测+语义分割,在语义分割的基础上更加细致划分物体区别。
Task1 :边缘检测(Edge Detection)
- 目的:找到图像中亮度变化剧烈的像素点构成的集合,测量和定位图像边缘
- Canny detection
- 降噪(Noise reduction):高斯降噪
- 计算梯度与方向角(Finding gradient and its direction):
- Sobel边缘检测算子
- bx = abs(filter2(x_mask,a));
by = abs(filter2(y_mask,a));
- 非极大值抑制(Non-maximum suppression)
- 图像梯度幅值矩阵中的元素值越大,说明图像中该点的梯度值越大,但这不能说明该点就是边缘(这仅仅是属于图像增强的过程)。故需寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点。
- 如下图,就首先要确定像素点C的灰度值在其8值邻域内是否为最大。图中蓝色的线条方向为C点的梯度方向,这样就可以确定其局部的最大值肯定分布在这条线上,梯度方向的交点dTmp1和dTmp2这两个点的值也可能会是局部最大值。因此,判断C点灰度与这两个点灰度大小即可判断C点是否为其邻域内的局部最大灰度点。如果经过判断,C点灰度值小于这两个点中的任一个,那就说明C点不是局部极大值,那么则可以排除C点为边缘。
- 滞后阈值化(Hysteresis thresholding)
- 目的:排除噪声影响(即本应该连续的边缘出现断裂)
- 原理:
- 设定一个高阈值T1,一个低阈值T2
- 如果该像素的梯度值大于T1,则该像素为边缘像素;
- 如果该像素的梯度值小于T2,则该像素为非边缘像素;
- 如果该像素的梯度值介于T1与T2之间,需要进一步检测该像素的3×3邻域内的8个点,如果这8个点内有一个或以上的点梯度超过了T2,则该像素为边缘像素,否则不是边缘像素。
task2:人脸检测 (Face Detection)
Haar-like feature
- 含义:边缘特征、线性特征、点特征(中心特征)、对角线特征
- Haar-like特征值:白色填充区域的像素值之和与黑色填充区域的像素值之和差值
SOTA
- SOTA model:State-Of-The-Art model,是指在该项研究任务中,对比该领域的其他模型,这个是目前最好/最先进的模型。
- SOTA result:State-Of-The-Art result,此paper的结果对比已经存在的模型及实现结果,此Paper的模型具有最好的性能/结果。
te-Of-The-Art model,是指在该项研究任务中,对比该领域的其他模型,这个是目前最好/最先进的模型。 - SOTA result:State-Of-The-Art result,此paper的结果对比已经存在的模型及实现结果,此Paper的模型具有最好的性能/结果。