边缘检测-鼻孔
首先是进行RGB-HSV的转化。
version0
在最早的版本中,我用RGB中,GB两通道的加权去做。
因为在鼻孔附近,R通道的均值较大,且方差较小,总体来说性质很差。
version1
part1-获取信息
由于同组建议CNN处理,所以做了预处理,对于每一个照片。
import dlib,获取dlib的68特征点。
part2-泛用包围盒
使用与鼻子相关的9点,框定一个鼻子的范围,由于鼻孔处在鼻子下部,所以,我们需要多截取一些下面的部分。
经验参数是,左鼻孔相关五点,确定“四至”,然后向下扩大50%
part3-定尺寸包围盒
由于神经网络需要统一的图片尺寸,且我们要处理的是实验室级的图像。
以刚才框定的范围为中心,截取一个480*320的区域。
part4-标注工具
(由于当时RGB实验并不顺利,准备用学习的方式解决)
极为简陋的工具,在限定时间内,依序点出一列点。
将点依序首尾连成一条闭合曲线,看看是否是合理的边缘标注,不合理则重做[人工目视判定]。
version2
part3
将RGB转为HSV。
H通道无用,S几乎无用。用剩下那个就好了。
左右转换,全部图变成左鼻孔
part4
设定阈值(最深13.5%的面积对应的V值,0.4)这两个值中较小的那个。
区域聚类——聚成若干个深V最大连通分支
在上一篇随笔中,我们看到了非常垃圾,不完整的边缘。
副筛条件:
区域不该太小。
主筛条件:
区域边缘与canny检测边缘重合度高。//图都丢了,只好从聊天记录里找次品来,我们需要处理到左下那个鼻子和嘴巴之间的区域:这个区域最大的不同在于边缘只有一段。

终筛条件:
居中性,排右性:统一转为左鼻孔,自然应该是中间或偏左的,偏右的必然是极差的。我们在0-0.7之间是分段线性的,即abs(x-0.5)。过了0.7后迅速衰减。
深V:V值必须很深,上图那个区域必然不深。
边缘比:检测当前边缘和canny边缘的重合度。
简单加权。
附加mod:
还是有极少的情况,10个数据集中出现了2次。
左右鼻孔视图有重合,锁到了同一个鼻孔。
判定条件:最后区域有重合。
处理方法:截一个覆盖两个鼻孔的视图。
将共同筛出来的鼻孔置白(即不可能再满足深V条件)
再做一次!
下篇博客补图。
浙公网安备 33010602011771号