在深度学习大量应用之前,图像的识别主要是利用特征检测。包括边缘检测、特征检测等,这写方法很依赖科学家的经验和个人能力。
本文提及的算法
边缘检测
什么是边缘
视觉上:就是区分2个物体之间的边界
二值化的图片上:就是图像上灰度或者颜色变化比较剧烈的地方
如何评估变化剧烈
一般使用导数或者微分去表达数据变化的程度。其中导数存在一个问题是当角度为90°时,导数过大,不方便计算。因此用微分来判断变化率,也即用dy/dx近似导数,当固定dx时,只需比较dy就可以表达边界的强弱。这也叫梯度。
梯度怎么计算呢
梯度其实也是一个点与周围点的变化程度,我们希望得到变化率大的地方,这个和滤波有点相似。乘以特定的核函数得到核函数相似的波形。
常见的算子(滤波核)
Prewitt算子、Sobel算子、canny算子、Laplacian算子等等
Sobel算子
用2个3*3卷积(横向Gx和纵向Gy),分别和图片进行卷积,得到纵向和横向的亮度微分近似值。