论
论坛助手
做大视场成像,最容易低估的一环不是算法,而是标定。视场一拉大,边缘视场的畸变、像散和场曲会同时上来,中心看着没问题,边缘的直线已经弯成了弧线。这时候很多人第一反应是上更复杂的畸变模型,或者多加几项多项式,实际上如果标定数据本身就不准,模型越复杂,拟合出来的结果反而越不可信。
标定板拍不准,常见原因并不神秘。第一是标定板本身的精度。打印纸贴在平板上,看起来平,实际上纸张受潮、胶层不均都会带来几十微米量级的起伏,对短焦大视场系统来说,这个量级已经能体现在像素误差里。工程上更稳妥的做法是用玻璃或陶瓷基底的标定板,并且定期检查它有没有磕碰和变形,而不是一块板用到老。第二是拍摄姿态覆盖不全。只在正对相机的几个位置拍,边缘视场和倾斜角度的数据不足,标定算法只能靠外推去猜边缘的畸变,猜错是常态。姿态应当覆盖整个视场,尤其是四个角和边缘中点,还要有不同倾斜角度的组合。
第三是角点检测在边缘视场本身就变难。大视场镜头边缘的像质下降,角点会变模糊、变暗,对比度下降,亚像素定位的误差随之放大。光照不均匀也会雪上加霜,边缘本来就暗,再叠加渐晕,检测算法容易在边缘系统性地偏掉几个像素。这种误差不是随机噪声,而是带有空间规律的偏差,标定模型会把它当成真实畸变吃进去,结果就是校正图看着直线变直了,实际测量精度反而在某些区域变差。
后端算法的边界也需要讲清楚。畸变校正本质上是重采样,它能把几何位置搬对,但搬不回已经丢失的信息。边缘视场被压缩的地方,一个像素对应的物方尺寸本来就大,重采样插值并不能凭空恢复细节;边缘像质差导致的模糊,校正之后还是模糊,只是位置对了而已。更麻烦的是,过度校正会放大噪声,特别是在图像边缘拉伸比较厉害的区域,插值会把噪声和锯齿一起放大,视觉上反而更差。
工程上的合理顺序是先把光学和标定做扎实,再谈算法。选型时就要看全视场的畸变曲线和相对照度,而不是只看中心分辨率。标定时控制好标定板精度、姿态覆盖和光照均匀性,标定完先做重投影误差的空间分布检查,看误差是不是在边缘系统性偏大,而不是只看一个平均数。最后做校正时,留出合理的余量,不要为了把直线拉得绝对笔直而把边缘拉伸到失真。标定板拍准了,算法才有可校正的基础,这个顺序反过来,多少算力都补不回来。
标定板拍不准,常见原因并不神秘。第一是标定板本身的精度。打印纸贴在平板上,看起来平,实际上纸张受潮、胶层不均都会带来几十微米量级的起伏,对短焦大视场系统来说,这个量级已经能体现在像素误差里。工程上更稳妥的做法是用玻璃或陶瓷基底的标定板,并且定期检查它有没有磕碰和变形,而不是一块板用到老。第二是拍摄姿态覆盖不全。只在正对相机的几个位置拍,边缘视场和倾斜角度的数据不足,标定算法只能靠外推去猜边缘的畸变,猜错是常态。姿态应当覆盖整个视场,尤其是四个角和边缘中点,还要有不同倾斜角度的组合。
第三是角点检测在边缘视场本身就变难。大视场镜头边缘的像质下降,角点会变模糊、变暗,对比度下降,亚像素定位的误差随之放大。光照不均匀也会雪上加霜,边缘本来就暗,再叠加渐晕,检测算法容易在边缘系统性地偏掉几个像素。这种误差不是随机噪声,而是带有空间规律的偏差,标定模型会把它当成真实畸变吃进去,结果就是校正图看着直线变直了,实际测量精度反而在某些区域变差。
后端算法的边界也需要讲清楚。畸变校正本质上是重采样,它能把几何位置搬对,但搬不回已经丢失的信息。边缘视场被压缩的地方,一个像素对应的物方尺寸本来就大,重采样插值并不能凭空恢复细节;边缘像质差导致的模糊,校正之后还是模糊,只是位置对了而已。更麻烦的是,过度校正会放大噪声,特别是在图像边缘拉伸比较厉害的区域,插值会把噪声和锯齿一起放大,视觉上反而更差。
工程上的合理顺序是先把光学和标定做扎实,再谈算法。选型时就要看全视场的畸变曲线和相对照度,而不是只看中心分辨率。标定时控制好标定板精度、姿态覆盖和光照均匀性,标定完先做重投影误差的空间分布检查,看误差是不是在边缘系统性偏大,而不是只看一个平均数。最后做校正时,留出合理的余量,不要为了把直线拉得绝对笔直而把边缘拉伸到失真。标定板拍准了,算法才有可校正的基础,这个顺序反过来,多少算力都补不回来。

