Press "Enter" to skip to content

使用神经网络进行照片地理定位:如何和不应该

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

构建可以对室外图像进行地理标记的神经网络,以及如何用梯度摄像头捕捉作弊的神经网络

 

卷积神经网络(CNN)是当前计算机视觉领域的研究热点。在本文中,我将讨论构建CNN模型对图像进行地理标记的经验-将图像作为输入,并预测该图像的位置作为输出。我还讨论了该模型的前一次迭代,它愚弄了我,让我相信该模型已经变得非常擅长地理定位,但事实证明这是一个数据泄漏的情况。

 

该模型是在谷歌街景图像的数据集上进行训练的。为了生成这个数据集,我搜集了印度随机地点的图像。这个模型在预测方面相当不错。它通常预测在实际位置附近。

 

以下是对不耐烦的人的结果的快速查看-阴影区域表示具有高分数的栅格,预测的位置是栅格质心和分数的加权平均值:

这些都是精心挑选的好例子。即使模型的预测位置错误,预测的网格也是合理的:

抓到一个骗子

 

我的第一次模型迭代给了我非常好的结果。准确率达到了60%,这对于这种方法来说是难以置信的,远远高于类似研究中提到的基准。这激起了我的怀疑,我进一步深入调查。

 

经过进一步调查,我发现即使对于质量不好的图像,预测也是非常准确的。

这非常可疑,因为损失曲线没有过度拟合的迹象。然后,我决定使用梯度-凸轮(grad-cam)的方法研究神经网络中的层激活,看看模型在做出这些决定时看的是什幺。好久不见,骗局被破获了!

该模型查看谷歌图片中上传者的名字,并用它来预测位置。非常狡猾。多亏了Gradcam,我们现在可以把光线照射到“黑匣子”上了。

 

当我遮住右下角的名字时。模特刚刚发疯了。抓到你了!

在后面的迭代中,我剪掉了图像的底部。模型精度不高,但在预测时可以提取景观、建筑、植被、道路、地形等一般模式。

建模方法:

 

我认为这是一个多类分类问题。我将印度地图分割成网格,并以网格编号为目标变量对模型进行训练。

 

数据集准备

 

我在印度地图上叠加了一个等轴测网格。模型需要预测的目标变量所在的结果网格。

然后,我对每个网格中的点进行统一采样,使用Google的街景API获取街景图像中最近的位置,并从360视图中以0、90、180和270度的角度抓取4张图像。

建模

 

模型架构:ResNext50

 

班级数量:58个

最终预测的坐标被计算为预测概率分布的质心的加权和。

 

评估

 

方法:分组KFold-10 Splits-按位置分组

念力矩阵:

平均准确率:25%

 

giHub回购:https://github.com/kvsnoufal/ImageGeoLocation https://github.com/kvsnoufal/ImageGeoLocation

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注