图像处理基础

scikit-learn分类器

  • 分类问题:一般有监督,拆分数据为训练集和评测集
  • 系统内部常内置一些常用数据集(比如iris),可从seaborn里import
    • Seaborn:基于matplotlib的高级可视化包,可以可视化高维数据
    • pareplot:横向为两量间的相关性,对角线表示相关性
    • 训练时,应将特征与标签分开(pd.drop),分成数据矩阵和对应的标签列
    • 随机拆分训练集/测试集
    • sklearn的model-selection:train-test—split:多次随机取样进行多次训练,可以充分利用数据,默认取75%的数据作为训练集
    • 取完测试与训练集后可调用各种model进行fit,之后可以用model进行预测
    • 评测:热图分布(heatmap),accuracy,混淆矩阵(confusion matrix),ROC曲线
  • 作业可以用SVM

openCV 图像处理基础

  • 图像数据量大,需要选择合理的特征并将其变成特征向量
  • 特征选择
  • conda install opencv
  • cv2.imread:读取图片
  • cvtColor:BGR2RGB:像素通道转换
  • plt.imshow:显示图像
  • 可通过矩阵切片进行图像修改、切片等
  • 可将三个通道分别拆开

  • Histogram:图像灰度或三个通道的统计分布(plt.hist(bins = 256))
  • 直方图均衡:增强对比度,取直方图的一小部分
    • 对积分函数值域的查表变换,之后归一化为255
    • 不一定取积分函数,可以自定义函数用于分散数据
    • 相当于非线性的,分布对分布的投影变换
    • cv2中有相关函数

高斯模糊

  • 高斯模版:相当于一个卷积核,对图像的每个像素卷积
  • 高斯模糊相当于图像平滑
  • 最大间方差(OTSU)降噪:将图像分为前景与背景(判据:均方差最大),重新赋值
  • 滤镜与卷积:
    • laplacian卷积核:二阶差分(求导的离散情况),用于做边缘提取,此即对图像的拉普拉斯变换
    • 小的噪声点:容易产生很强的信号
    • 通过更改卷积核的形式,可以产生具有各种功能的算子(如实现对竖线的识别)
    • 一般除了高斯模版外,卷积核都是3*3,减小计算量,并有物理意义对应
    • 对非单像素的线,用小卷积核会出现双线(模糊的粗线)

图像的旋转和移动不变性(Motivation)

  • 思想:关键点(region of interes)和区域直方图
    • Match一些关键位置并作该区域的像素直方图,一般情况下像素直方图的分布差别不应很大,且与旋转与否无关
    • 找关键点:
      • Hessian算子:由二阶导构成的算子,对原图变换后能把图像中物体边缘显示出来,兼顾了横纵斜三个方向的梯度,以Hessian矩阵行列式的值作为角点,可用作关键点
      • 以得到的几十几百个关键点附近作区域直方图进行对比与匹配
    • 对缩放过的图片:特征尺度自适应:两图的区域直方图窗口大小不同以做到对应
      • 高斯-拉普拉斯算子:对高斯函数作拉普拉斯变换(高斯函数的二阶导),以此作为核函数,可用于检测圆光斑
      • 只有特定尺寸的光斑和特定尺寸的算子才可以给出当前尺度下极值
      • 用不同尺度的一系列算子对图像进行高斯拉普拉斯变换(LoG)(对图像过滤),将生成的多通道数据中的多幅图对齐,此时每幅图具有三个维度(平面内,前后两幅图),对每个像素点,比较自己上下左右前后的点,若为极大值,则认为该点为该三维空间中的极大值
      • 此时既能得到关键点,又能获得尺度信息,最终将关键点投射到同一个平面中
      • 可统一尺度

      • 上述变化等价于高斯差(DoG):直接拿两个不同sigma的高斯函数作差
        • 用不同高斯核处理图像,得到的多幅图相邻者作差得到另一组通道,效果与前述一致,计算量较小
      • 降采样:更低的运算量,用同一个size的高斯核与不同尺度的降采样(仅取图像的一部分)后的图像进行卷积,之后插值回来
        • 差分金字塔;
        • 插值会使关键点中心位置的值飙升
    • 对旋转的图像:
      • 求图像的梯度方向,并将主梯度方向转正(仿射变换),实现图像的旋转
      • 关键点方向正则化
  • SIFT特征:尺度旋转不变的特征变换:上述处理后可拿到特征
  • 局部特征表达向量
  • HOG特征:方向梯度直方图

  • 作业:Hog特征,sift特征,分类器,SVD

特征匹配与RANSAC算法

  • RANSAC:但凡两物体匹配,就会存在一个仿射变换,能将两组特征互相映射,做到大量特征点点互相Cover

仿射变换

  • 非奇异的平移与旋转
  • cv.getrotationmatrix2d

  • mean shift:视频物体跟踪,框出物体,进一步拆分,取灰度直方图和灰度方向,排成一行长特征作为框中物种的特征向量(进一步拆分的小框可以连续平移)
  • cell的大小与图像等比(等比划分),消除了物体尺寸变化的影响

  • 攻击HOG:加入高频梯度方向的噪声,针对梯度攻击