基于计算机视觉的无人机定位

APPLICATION Nov 8, 2024

假设你有一张航拍图像,但不知道拍摄位置,但知道空间分辨率和方向。计算机视觉如何帮助解决这个问题?这似乎是事实核查、损坏数据地理参考或导航的常见问题。

图块匹配

第一个问题是数据。只有少数数据集专门用于此任务。

我发现这个研究 ,科学家在其中解决了类似的任务,但针对的是热成像。

1、变化检测数据集

当我查看 TorchGeo 时,我发现变化检测数据集正是我需要的。有时间图像对,景观和季节也多种多样。

两个时间的图像

此外,可以使用分割或分类数据集和积极增强。

两张增强的图像

此外,我还发现了 S2Looking、LevirCD+、XView2 变化检测数据集,它们已经上传到 Kaggle 并可与 Kaggle 笔记本一起使用。

因此,我选择了 Kaggle,因为我没有 GPU,而且它比 Google Colab 更方便,因为它可以在我离线时进行训练。

2、模型和概念

作为模型,我使用了带有 TripletMargin 损失的 Mobilenet。这个概念出现在 2015 年,并被许多公司成功用于人脸验证

https://arxiv.org/abs/1503.03832

目前,还有许多其他选择,但对于第一次实验来说,古老而知名的解决方案似乎不错。

SIFT 匹配

遗憾的是,经典的 SIFT 和 ORB 匹配缺乏稳健性,尤其是在匹配使用不同季节和不同传感器拍摄的图像时。

我使用滑动窗口模型,并采用步幅来查找源图像中最相似的点。

滑动窗口概念和概率图

此外,最近出现了许多有趣的选项,例如LightGlue,Kaggle 上也有一个非常激动人心的挑战 。看起来可能有很多很棒的想法可供进一步研究。

3、数据增强

我使用两阶段数据增强来使模型更加稳健:

  • 通过相同的几何变换增强锚点和正样本。
  • 通过相同颜色变换增强正样本和负样本,但与锚点图像的颜色变换不同。尝试在锚点和正负样本之间模拟不同的传感器或不同的季节。

4、实验

几个月前,我为另一个实验 收集了数据,看起来我可以使用它。

我从镜头中抓取了三帧。

我只对它们进行了平移、缩放和旋转,没有使用正射校正或运动结构,假设我只有高度和地平线,解决方案应该可以快速工作。

摄像机图像和查询补丁

从不同高度和不同角度捕获的图像。分辨率设置为 EPSG:3857 中的 0.6m,以适应 TMS 缩放级别 = 18。

卫星和无人机图像裁剪

如示例图像所示,存在许多差异:

  • 不同的季节 - 冬季和夏季
  • 不同的天气 - 晴天和多云
  • 大扭曲,尤其是靠近图像边界,不同的模糊和锐化
  • 土地利用的变化

5、匹配结果

匹配地图的第一个原始结果让我感到困惑,但当我在匹配地图上只留下 2.5% 的最小距离时,它开始看起来好多了,当我留下前 3 个最近的补丁时,一切开始变得很好。

输出,前 2.5% 距离范围,前 3 个补丁

如果训练网络更多次,图片可能会更好。

示例 1。运行良好。找到。

上下文、裁剪、查询

在整个大图像中,最佳结果在目标区域。我认为这是成功的。

示例 2。在附近区域发现。

看起来网络在处理如此多的颜色和几何扭曲以匹配图像时表现更差。可能是训练数据集和网络训练不佳的问题。

示例 3。更多误报,但在附近区域发现。

看起来网络在处理如此多的颜色和几何扭曲以匹配图像时表现更差。可能是训练数据集和网络训练不佳的问题。

这部分已编辑,我在评估时犯了错误。

6、结束语

大多数人将正射校正图像作为查询图像进行查询,但由于计算成本高,很难在无人机上进行这种校正。此外,我没有找到不同季节的实验。这里有明确的证据——它可以奏效。

此外,还有明确的证据表明,公开可用的变化检测数据集可用于开发类似的解决方案。

我只有大约 4 天的时间进行这项实验和撰写本文,因此,不幸的是,训练数据集没有得到很好的探索,目标数据没有探索,神经网络是在几个小时内建立的,并从第二次尝试开始训练,错误没有探索。还有很大的进一步研究空间​​。可以点击这里查看Kaggle 上的训练管道


原文链接:Let’s try to locate UAV with change detection datasets and FaceNet

汇智网翻译整理,转载请标明出处

Tags