基于计算机视觉的无人机定位
假设你有一张航拍图像,但不知道拍摄位置,但知道空间分辨率和方向。计算机视觉如何帮助解决这个问题?这似乎是事实核查、损坏数据地理参考或导航的常见问题。
第一个问题是数据。只有少数数据集专门用于此任务。
我发现这个研究 ,科学家在其中解决了类似的任务,但针对的是热成像。
1、变化检测数据集
当我查看 TorchGeo 时,我发现变化检测数据集正是我需要的。有时间图像对,景观和季节也多种多样。
此外,可以使用分割或分类数据集和积极增强。
此外,我还发现了 S2Looking、LevirCD+、XView2 变化检测数据集,它们已经上传到 Kaggle 并可与 Kaggle 笔记本一起使用。
因此,我选择了 Kaggle,因为我没有 GPU,而且它比 Google Colab 更方便,因为它可以在我离线时进行训练。
2、模型和概念
作为模型,我使用了带有 TripletMargin 损失的 Mobilenet。这个概念出现在 2015 年,并被许多公司成功用于人脸验证 。
目前,还有许多其他选择,但对于第一次实验来说,古老而知名的解决方案似乎不错。
遗憾的是,经典的 SIFT 和 ORB 匹配缺乏稳健性,尤其是在匹配使用不同季节和不同传感器拍摄的图像时。
我使用滑动窗口模型,并采用步幅来查找源图像中最相似的点。
此外,最近出现了许多有趣的选项,例如LightGlue,Kaggle 上也有一个非常激动人心的挑战 。看起来可能有很多很棒的想法可供进一步研究。
3、数据增强
我使用两阶段数据增强来使模型更加稳健:
- 通过相同的几何变换增强锚点和正样本。
- 通过相同颜色变换增强正样本和负样本,但与锚点图像的颜色变换不同。尝试在锚点和正负样本之间模拟不同的传感器或不同的季节。
4、实验
几个月前,我为另一个实验 收集了数据,看起来我可以使用它。
我从镜头中抓取了三帧。
我只对它们进行了平移、缩放和旋转,没有使用正射校正或运动结构,假设我只有高度和地平线,解决方案应该可以快速工作。
从不同高度和不同角度捕获的图像。分辨率设置为 EPSG:3857 中的 0.6m,以适应 TMS 缩放级别 = 18。
如示例图像所示,存在许多差异:
- 不同的季节 - 冬季和夏季
- 不同的天气 - 晴天和多云
- 大扭曲,尤其是靠近图像边界,不同的模糊和锐化
- 土地利用的变化
5、匹配结果
匹配地图的第一个原始结果让我感到困惑,但当我在匹配地图上只留下 2.5% 的最小距离时,它开始看起来好多了,当我留下前 3 个最近的补丁时,一切开始变得很好。
如果训练网络更多次,图片可能会更好。
示例 1。运行良好。找到。
在整个大图像中,最佳结果在目标区域。我认为这是成功的。
示例 2。在附近区域发现。
看起来网络在处理如此多的颜色和几何扭曲以匹配图像时表现更差。可能是训练数据集和网络训练不佳的问题。
示例 3。更多误报,但在附近区域发现。
看起来网络在处理如此多的颜色和几何扭曲以匹配图像时表现更差。可能是训练数据集和网络训练不佳的问题。
这部分已编辑,我在评估时犯了错误。
6、结束语
大多数人将正射校正图像作为查询图像进行查询,但由于计算成本高,很难在无人机上进行这种校正。此外,我没有找到不同季节的实验。这里有明确的证据——它可以奏效。
此外,还有明确的证据表明,公开可用的变化检测数据集可用于开发类似的解决方案。
我只有大约 4 天的时间进行这项实验和撰写本文,因此,不幸的是,训练数据集没有得到很好的探索,目标数据没有探索,神经网络是在几个小时内建立的,并从第二次尝试开始训练,错误没有探索。还有很大的进一步研究空间。可以点击这里查看Kaggle 上的训练管道。
原文链接:Let’s try to locate UAV with change detection datasets and FaceNet
汇智网翻译整理,转载请标明出处