边缘检测-鼻孔

首先是进行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条件)

再做一次!

 

下篇博客补图。

 

posted @ 2020-08-17 22:21  wushibei  阅读(122)  评论(0)    收藏  举报