119、锐化与边缘增强:非锐化掩模、自适应增益与振铃伪影的抑制策略
从一次车载夜视调试说起
去年做某个车载夜视项目,客户反馈在隧道出口处画面“发毛”——边缘像长了刺,车牌号码周围一圈白边,夜间路灯杆旁边更是惨不忍睹。我第一反应是锐化开大了,但翻看ISP参数,锐化强度明明只有0.3(满量程1.0)。后来抓了raw图分析,发现问题是出在非锐化掩模(USM)的阈值设置上——低对比度区域的噪声被当成了边缘,增益一拉,噪声变成了“伪边缘”,再叠加ISP的gamma曲线,振铃就炸了。
这个坑让我意识到,锐化不是简单的“拉高细节”,而是一场与噪声和伪影的博弈。今天这篇笔记,就聊聊非锐化掩模、自适应增益,以及怎么把振铃伪影按在地上摩擦。
非锐化掩模:经典但容易翻车
非锐化掩模的原理很简单:原图减去模糊图得到高频分量,再把高频分量乘个增益加回去。公式写出来就一行:
sharpened = original + gain * (original - blurred)
但实际落地时,三个参数就能让你调到头秃:模糊半径、增益系数、阈值。
模糊半径决定了“边缘”的尺度。半径太小,只增强像素级噪声;半径太大,边缘会变“脏”,像油画笔触。我习惯的做法是:先根据sensor的像素尺寸和镜头MTF曲线算一个基础半径。比如2um像素的sensor,配合普通手机镜头,半径取1.5到2.0个像素就够了。车载镜头因为景深大、边缘衰减快,半径可以放到3.0到4.0。
增益系数是双刃剑。