水下光学成像有可能提供比声纳高得多的分辨率图像。然而,这些图像的清晰度取决于水质。在混浊的水中,弱光情况下使用的主动照明会导致后向散射,或者是水中粒子的光反射回相机(同样的效果使得在雾中驾驶变得困难)。
为了应对这一挑战,SINTEF与欧盟各地的合作伙伴合作开发了乌托菲亚,一种用于混浊环境的成像系统(图1)。
乌托菲亚相机以每秒10-20帧的速度拍摄3D图像,拍摄范围可达15米,深度可达300米时分辨率为1厘米。它使用距离选通成像(见侧栏)来最小化后向散射的影响,并获得其视野中物体的距离信息(图2)。
我们开发了算法来处理来自相机的原始数据,并生成3D、无后向散射的图像。我们在一个新的领域工作,我们需要快速测试新想法。得益于MATLAB的集成环境®,具有强大的可视化支持,我们能够尝试超过40种不同的方法和技术。金宝app在Python.®或者c++,每个实现和测试将花费更长的时间,而且我们不可能有时间测试多个。
距离选通成像
距离门控成像不是用恒定的光束来照亮目标,而是使用频闪激光器产生的纳秒长的光脉冲。从目标前方粒子反射的光比从目标自身反射的光返回到相机的时间稍早。我们可以通过控制相机快门来抑制后向散射,只捕获目标反射的光,而捕获水中粒子反射的光很少(图3)。通过测量单个光脉冲的飞行时间并除以光速,我们可以准确地确定到目标的距离。
初始数据分析和峰值检测
与标准数码相机产生的2D像素阵列不同,我们的相机产生的是3D立方体阵列,每个立方体的记录值代表了在视场特定位置和与相机特定距离处反射的光的强度。为了从相机生成的千兆字节数据中提取有用的图像,我们的算法必须识别这些强度值中的峰值(图4)。外部因素会影响峰值位置,而水中的散射会引入假峰值。这会降低结果图像的清晰度和3D重建的质量。
为了了解作用机制,我们对各种水浊度和摄像机设置的数据进行了广泛的统计分析。这些分析包括建立后向散射的经验模型,研究前向散射的特性,以及模拟探测器响应特性。
我们还开发了一个MATLAB应用程序来自动化和控制数据捕获过程(图5)。该应用程序包括控制脉冲扫描的接口元素和一个。net接口,我们用来配置捕获设置和其他相机组件。
开发三维重建算法
相机硬件大大减少了后向散射,但我们知道我们可以在软件中进一步减少其影响。我们开发了一个在混浊度下的后向散射响应模型,并实现了几种减少后向散射效应的算法。我们在这里探索了许多替代方法,包括同态滤波和直方图均衡化的变化,最后选择非锐化滤波,这也提高了我们的3D性能。此外,我们开发了摄像机标定、三维估计、峰值检测和峰值拟合的算法。
可视化图像数据
一旦我们分析了数据并开发了三维重建算法,我们就需要与乌托菲亚联盟中的其他组织分享他们产生的结果。为此,我们构建了第二个MATLAB应用程序,用于可视化乌托菲亚图像数据(图6)。该应用程序包括用于调整选项和算法参数的控件,包括对比度、焦点、噪声消除和直方图均衡化。用户可以设置这些参数,并立即在屏幕上看到效果。
我们用MATLAB Compiler™打包了一个独立版本,并将其分发给我们的合作伙伴,他们向我们提供了反馈和改进请求。使用MATLAB和MATLAB编译器,我们可以在几天内实现他们要求的更改。在C/ c++或类似的语言中实现这些更改可能需要数周,甚至数月的时间。
持续发展
我们已经完成了utofia项目的第一阶段,开发了相机及其核心软件。我们现在正在对工业特定应用的图像和3D数据进行额外的处理,并研究项目的第二阶段:将机器学习和深度学习应用于图像以识别对象和其他现象。
实时3D数据的可用性为改进渔业和水产养殖业的流程,特别是在自动化定量分析领域,开辟了新的可能性。例如,在西班牙的一家水产养殖设施,我们使用摄像机识别和测量红金枪鱼的长度(图7)。
在挪威的一个研究机构中,我们使用乌托菲亚进行行为分析,随着时间的推移跟踪单个鱼类,以估计游泳速度和模式(图8)。
同时,在照相机的水产养殖试验中,在低光和高浊度条件下观察到鱼类和其他海洋生物的生物量估计(图9)。
这些条件对于传统的水下摄像机来说是无法穿透的。