AZFT实习

今年暑假参加了浙大软院夏令营,即在AZFT实验室实习了一个月,学到的东西还是很多很杂的。回上海一礼拜了,总结一下,以免觉得好像在这宝贵的一段时间里啥也没做。
我接到的任务是盲道分割。

阅读应用型的论文

论文1(针对盲道识别)

主要思想

  • 盲道识别率、实时性;
  • 提取盲道边界:对初始帧采取精确识别(灰度共生矩阵、模糊C均值聚类分割、Hough变换)
  • 后续帧采取跟踪识别(图像灰度梯度特征、判断前后帧盲道边界两侧颜色分布一致性

盲道精确识别

  • 预处理:去阴影(区域补偿、深度膨胀)
  • 盲道精确识别:
    1. 灰度化、直方图均衡化:较大的灰度动态范围和较高的对比度,细节更加丰富;
    2. 灰度共生矩阵:空间分布关系包含图像纹理信息—>联合特征矩阵
    3. 模糊C均值聚类分割—>盲道区域的分割
    4. 轮廓提取及Hough变换

论文2(针对纹理提取)

主要思想

  • Gabor变换:Gabor核函数作为小波函数的基函数,实现方向和尺度不变的特征提取,具有较高的精度;

  • ICA、PCA与Gabor小波融合:提高识别率;

  • Relief算法:权值搜索的特征子集选择方法,提高识别效率;

  • K-means:DE(差分进化)求解最优聚类中心,优化K-means算法;

    python-opencv基础学习

    OpenCV模块

  • 滤波:信号有各种频率的成分,滤掉不想要的成分;

  • 图像平滑:区域增强,减小缺陷;

  • 图像金字塔:pyrDown():平滑滤波+降采样;pyrUp():升采样+高斯平滑

  • 低通滤波(均值模糊):blur;高斯模糊GaussianBlur()

  • 中值滤波(中值模糊,去除椒盐噪声):medianblur;

  • 双边滤波:bilateralFilter();空间邻近度和像素相似度,空域信息和灰度相似性->保证边缘附近像素值的保存;

  • 均值迁移:pyrMeanShiftFiltering();

  • 直方图均衡化:cv.equalizeHist();

  • 归一化:normalize();

  • 反向投影:calcBackProject()定位模板图像出现在输入图像的位置;

  • 模板匹配:methods = [cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED]
    matchTemplate()得到匹配结果图形矩阵result:尺寸(W-w+1)*(H-h+1)?

  • minMaxLoc()在给定矩阵中找最大和最小值

  • rectangle(target,tl,br,color,thickness)绘制矩形;

全局阈值:threshold
局部阈值:adaptiveThreshold

基础概念学习

gabor滤波

gabor提取纹理特征的思路:
不同纹理一般具有不同的频率和带宽,根据他们设计一组Gabor滤波器对纹理图像进行滤波;
gabor滤波器:用于边缘提取的线性滤波器;波长,方向,相位偏移,长宽比,带宽;
概念学习
例子
详细介绍

DE差分进化算法

演化算法,随机模型,反复迭代;
求解连续变量的全局优化问题;
交叉->变异(试验个体)->选择(与目标个体)

Relief特征权重算法

特征和类别的相关性

灰度共生矩阵

Gray-level Co-occurrence Matrix
假定图像各像素间的空间分布关系包含图像纹理的纹理分析方法;
两个灰阶值在指定的空间分布上出现的频率分布;
像素灰度在空间位置上的反复出现形成图像的纹理,GLCM是描述具有某种空间位置关系两个像素灰度的联合分布;
概念学习

方向梯度直方图(HOG)

概念学习1
概念学习2
代码实现

CNN

简单接触了一下CNN的概念理解

  • 局部感受野:一个隐藏层的神经元与局部区域输入层的神经元相连(与DNN每个都连有所不同)
    (参数:窗口大小w、步数b)
  • 权值共享:权值和偏移值,一个窗口只能学到一种特征;
  • 池化:简化卷积层的输出;

输入层学到的特征反映在卷积层,池化层检测特征是否在窗口覆盖范围的区域里
详解

RCNN

论文理解1
论文理解2

总结

主要还是去看报告吧,靠论文和伟大的互联网写出了基于图像处理的盲道识别的基本算法,后面发现局限性太大了,为何学姐一开始不让我学语义分割,我琢磨这更有用,更有意思,更能学到东西,而不是写出几个乱七八糟,并且不能应用的算法?
本次夏令营有点运气加成,还让我发现自己在接触不懂的东西还是太浮躁了,答辩怪紧张的,认识的新朋友都很不错,还有大佬处处有,可惜不是我,总体体验一般般。