CLAHE和Otsu都是90年代的成熟算法,前者在医学影像领域小有名气,但在指纹识别这种低内存场景的民用领域讨论度却并不高,大家更多在讨论 Gabor滤波器和方向场估计,认为那才是解决指纹增强的正统道路。
至于Otsu,在指纹识别领域反而被嫌弃,因为指纹图像存在严重的“双峰不明显”现象(背景和指纹灰度分布太接近), Otsu计算出的全局阈值往往会把整张指纹图全部变黑或全部变白,鲁棒性甚至不如经验丰富的师兄”手
调参数”。
“还真怀念OpenCV啊。”
写完遍历代码后,余江开始手写CLAHE算法,后世只需要一行代码的工作量,他在这里耗费了接近一个小时,最后当他把整个完整自动分割小程序完成时,时间刚好11点。
余江打开软盘,把徐师兄给他的100张低质量指纹拷贝到硬盘finger_seg_test文件夹,随后打开调试。
徐一博给他的指纹全部是日常采集报废,只能靠人工手绘分割的问题样本,要么是局部光照不均、一侧过暗一侧过曝;要么是指尖汗漬、油脂糊化,纹路粘连发雾;要么是秋冬干裂起皮、纹路断裂缺损......反正就没有一张是
正常的。
载入目录后,只用了不到10秒,分割便顺利完成,他看了一眼,按照实验室标准的像素级定量,分割准确率=像素匹配正确总数/整张图像总像素数,他这小玩意的分割准确率只有88%。
他很不满意,又调了两轮参数,直到把准确率干到了91%,这才把这小玩意封装成一个不到100k的可执行文件放进软盘。
“师兄,写了个小程序, finger_seg,你试试看,我先吃饭了。”
徐一博抬头,接过软盘,顺便伸了个懒腰,笑道:“这么快?你这是写了个啥?”
余江耸了耸肩:“就是个分割小程序,比你的好用多了。”
“行,那我试试看。”
见徐一博将软盘塞进软驱,余江也回到自己工位,拎着杯子走出实验室。
软驱嘎吱地响起,徐一博见这小程序不到100k,也不以为意,直接在桌面新建了一个文件夹,随后拷贝进去。
点击可执行文件后,一个朴实无华、甚至极致简陋的UI出现在眼前。
就只有三个按钮,“加载目录”,“分割”,“打开结果文件夹”。
除此之外就只有一个状态报告窗口。
没有对照窗口,也没有各种参数调整。
徐一博疑惑起来,下意识点了一下【分割】按钮,结果弹出窗口,里面只有一个提示“+”。
“我靠......就提示个加号?这家伙写程序这么懒的么………………”
吐槽了一句,他点击加载指纹目录,把包含了一万张低质量指纹的文件夹添加进去。
“我倒要看看你这家伙的小程序有多好用,不过这UI比组里的MFC都还要敷衍……………”
随着徐一博按下分割,他只感觉到,鼠标瞬间卡了一下。
紧接着,状态报告窗口开始跳动。
【指纹自动分割工具V1.0 | CLAHE+Otsu】
加载本地指纹库......检测到灰度BMP图像:10166张
初始化局部均衡算子+大津阈值计算模块......完成
No.00001光照不均样本|自适应阈值:119 分割成功
No.00002背景污渍样本|自适应阈值:131 ]分割成功
No... 分割成功
徐一博看着不断跳动的提示,先是凑近了一点,又眨了眨眼,随后皱起了眉头,直到五秒后,他才瞬间瞪大眼!
“我靠!”
他瞬间起身,鼠标快速点击界面的【分割】按钮。
“草!没停止按钮!”
徐一博看着迅速刷屏的编号和后面那一排分割成功的提示,他只感觉头皮瞬间发麻。
他几乎是有些畏惧地点击结果文件夹。
文件夹打开,只见无数个指纹同名文件已经铺满了窗口,他随便点开一张,只见标准的8位纯黑白二值图瞬间映入眼帘。
徐一博只感觉心跳开始加速。
他迅速打开Ground Truth文件夹。
这里装着他们好几波人纯手工绘制的金标图。
——为了对比指纹分割精度,全靠人工手动在画图软件中精准圈出有效指纹脊线,逐张精细手绘的标准值掩码,这份手绘图纸,是唯一标准答案,也是全组统一认定的“正确分割模板”。
“我靠!没有前面的,唐师兄,指纹库前面两百张的金标图给我一下。”
徐一博迅速起身大喊。
后方唐文杰师兄抬起头来,有些惊讶:“你现在要来干啥?不是早就处理好了的么?”
“我现在要马上对比一下!我有点受不了,心脏有点受不了。”徐一博重重呼气。
他的咋呼顿时引起了众人的注意。
见他一脸焦急慌乱,周琴起身走到身后,好奇地瞥着他的显示器,只看到一张指纹的黑白二制图:“这一看就是分割成功了的嘛,你要金标图干什么?”
“周琴,我给你讲个恐怖的事......”
徐一博深深地吸气,他将图片最小化,露出正在畅快奔跑的程序。
“余江用了俩小时,写了自动指纹分割工具......”
“自动分割,那要看什么指纹......我去!全是垃圾指纹?!”周琴正不以为意,却猛地看到状态报告栏的说明,瞬间瞪大了眼:“这一秒多少张?”
“感觉有十张!”
徐一博指着下方的状态统计,目前显示【分割准确率】为91%,他整个人的声音都在颤抖:“我不知道他这个是软件的执行报告成功率还是分割成功的准确率......如果是分割准确率......我他妈……………我他妈………………”
徐一博就没说下去了。
这些垃圾指纹,全是过不了他们自动分割算法所遗留下来的“垃圾”,但偏偏这些指纹,才是课题的重点!
因此,课题组才会人工肉眼分割。
而就这,综合分割准确率也才71%。
这些光照不均、干枯、断裂、带有污渍和磨损的指纹,甚至他手动分割调整半天,有时候眼都盯瞎了,都只有50%的准确率。
听着徐一博的声音,唐文杰师兄瞬间惊讶起来,他迅速将前两百张指纹的金标图拷贝进软盘。
随后,他取出软盘,走到徐一博的身后。
徐一博的动静早已引起了全组人的注意,此时也临近中午,众人纷纷起身,围到他身后。
“我去,这是自动分割垃圾指纹?”
“这么快?余江写的?”
“不是,他这准确率是怎么来的?”
徐一博没有说话,只是将软盘插进软驱。
余江的程序很吃资源,图片打开得很慢。
但他很有耐心,最小化分割程序后,他慢慢等待着,然后打开第一张金标图片。
所有人的眼睛同时落在显示器上。
然后......
第二张、第三张、第四张、第五张.......