水下视觉系统如何解决水下光线散射与颜色失真的问题?
想象一下你在一个大雾天开车,或者戴了一副蓝色的太阳镜看东西,水下视觉系统遇到的问题和这个差不多,甚至更麻烦。水把光线搅得一团糟(散射,就像雾),还“吃掉”了很多颜色(颜色失真,就像戴了蓝色太阳镜)。要解决这两个问题,我们通常是软硬兼施。
1. 对付“水下大雾”(光散射)
-
硬件上:打光要讲究 你如果在浓雾里把手电筒举在眼前,会发现眼前白茫茫一片,啥也看不清,因为光都被雾反射到你眼睛里了。但如果你把手电筒伸到旁边,从侧面照亮你想看的东西,效果就好多了。水下机器人也是这个道理,我们不会把摄像头和探照灯紧挨着放,而是会把它们分开一段距离,或者用特殊的“结构光”从特定角度打过去。这样,光就不会直接照亮镜头和目标之间的那团“浑水”,能让摄像头“看穿”悬浮颗粒,拍到更清晰的目标。
-
软件上:“一键去雾” 这就像是你手机里的P图软件。现在有很多聪明的图像处理算法,它们能分析一张模糊不清的图片,判断出“雾”有多浓,然后像做数学题一样,把这层“雾”从画面里减掉。这种技术叫“图像去雾”或“图像增强”。有的高级算法甚至是让电脑学习了成千上万张清晰和模糊的对比照片后,电脑自己就学会了怎么把模糊的照片变清晰,效果非常自然。
2. 解决“蓝色滤镜”(颜色失真)
-
硬件上:自带“太阳” 水下为什么是蓝绿色的?因为水对光的吸收有偏好,它最先“吃掉”的是红色光,然后是橙色、黄色……最后剩下的就是蓝光和绿光了。所以越深,东西看起来就越蓝。最直接的办法就是自己带个光源,而且不是普通的手电筒,是那种能发出包含所有颜色光(全光谱)的专业水下探照灯。用足够强的“白光”去照射物体,就能把被水“吃掉”的颜色给补回来,让物体恢复本来的色彩。
-
软件上:“智能调色” 这个也像P图,叫“色彩校正”或“白平衡”。
- 一种方法是“补偿”:既然我们知道水会吸收红色光,那算法就可以在拍到的图片里,有针对性地把红色和黄色的部分加强,把偏多的蓝色和绿色减弱,这样颜色不就平衡回来了嘛。
- 另一种更智能的方法是靠“学习”:我们用AI(人工智能)给它看海量的水下照片和这些照片在正常光线下的“正确”颜色应该是什么样的。看多了以后,AI就学到了一个本事,只要给它一张偏蓝偏绿的水下照片,它就能猜出这张照片“P”掉蓝色滤镜后应该长什么样,然后自动帮你还原出来。
总的来说,现代水下视觉系统就是个组合拳大师。它会用设计巧妙的硬件(分开的灯和相机)来尽量拍出“底子”好一点的照片,然后用强大的软件算法(去雾+调色)对照片进行“精装修”,最后你才能看到清晰、色彩真实的水下世界。