本发明涉及图像定位技术领域,尤其涉及一种基于大规模街景数据的图片地理定位的方法和系统。
背景技术
图片地理定位是根据图片视觉信息确定或估计图片的地理位置。这个问题有许多的运用场景,例如汽车自动驾驶,移动终端导航,视频地理轨迹生成等。最近几年,街景图片正在不断地更新完善,在某些城市可以做到街道视野的全覆盖。图片中有许多可识别的视觉信息,例如建筑物、广告牌等,我们可以采用基于特征匹配的方法,把这些信息给识别出来,以达到图片地理定位的目的。
在学术研究领域,zamir等作者提出了每个查询特征点检索距离其最近的一个特征点,然后用比值过滤误匹配的外点,最后选择特征点最多对应的参考图片作为最佳匹配。在接下来的工作中,该作者把第1个最近邻特征点扩展到k个最近邻特征点,根据第一最近邻特征点、第k个最近邻特征点到查询特征点的比值关系,过滤外点。在特征点匹配算法部分,作者把局部特征和全局特征结合作为优化条件,并提出了用广义最小团gmcp算法选择最佳匹配最近邻点。理想情况下,每个查询特征点都有一个对应的最近邻特征点,然而,大多数情况下,部分查询特征点匹配的特征点不在最近邻范围内,这些点即为匹配外点,消耗匹配时间并且gmcp为np-hard问题,具有较高的时间复杂度。同时,gmcp求出的为局部最优解,并非全局最佳解。
在实际运用领域,google公司研发了一个定位一张图片位置的googlephotos技术。用户把图片上传到服务器中,当服务器接收到需要定位的图片时,它首先会将图片分解成像素级别,然后将这些信息和数据库中的信息进行比对,通过一定的算法判断出照片所在大概区域,如某个国家的某个景区等。接着再根据数据库中保存的gps地理信息进一步判断,如照片特征符合某个经纬度信息就为其匹配对应的地理位置,这样通过实际经纬度信息就可以对照片进行定位。然而此定位方法是在全球范围内,定位准确率低,无法满足实际要求。
技术实现要素:
为了解决街景图片匹配速度慢、只能求出局部最优解和定位精度低的问题,本发明公开了一种基于大规模街景数据的图片地理定位方法,可以仅根据图片视觉信息进行地理定位,具有匹配速度快、可以求出全局最优解和定位精度高的特点。
本发明解决其技术问题所采用的技术方案是:
一种基于大规模街景数据的图片地理定位方法,从查询图片中提取局部特征点作为查询特征点,生成查询特征集;在索引结构中对每个查询特征点检索k个最近邻特征点,生成最近邻特征分布表;通过所述最近邻特征分布表得到候选图片的最近邻特征集;选择最近邻特征集中的最优特征集对应的候选图片作为最佳匹配图片,该匹配图片对应的地理位置即视为查询图片的地理位置;其中k为整数。
优选地,具体步骤可包括:b1:从查询图片中提取局部特征点作为查询特征点qi,生成查询特征集q={qi|i=1,2,…,n};b2:对所述查询特征集q中每个查询特征点qi,在所述索引结构中返回k个到查询特征点距离递增的最近邻特征点,生成最近邻分布表vt;b3:对所述最近邻分布表vt中每个最近邻点vij,按照最近邻点与街景图片的映射表,返回最近邻分布表vt对应的街景图片,去除重复的街景图片,得到候选匹配图片集ic={i1,i2,i3…,is};b4:对所述候选匹配图片集ic中每个候选匹配图片is,遍历q中的每个查询特征点,判断该查询特征点在最近邻分布表vt中对应的最近邻行中是否有最近邻特征点属于is;若特征点个数大于1或等于1,则选择一个距离查询特征点最近的特征点;若无,则跳过该特征点的选择;所有选择的特征点组成候选图片特征集nnfs;b5:将所述候选匹配图片集ic中的每个候选匹配图片is去除所述候选图片最近邻特征集nnfs中重复的特征点;b6:对所述候选匹配图片集ic中每个候选匹配图片is,计算所述候选图片最近邻特征集nnfs的相似度;b7:对所述候选匹配图片集ic中每个候选匹配图片,选择所述候选图片最近邻特征集nnfs特征点个数最多的候选图片作为匹配图片;将匹配图片的地理位置作为查询图片的地理位置。
更进一步地,步骤b6中所述候选图片最近邻特征集nnfs的相似度为:
更进一步地,步骤b6中,所述查询特征点qi与所述最近邻特征点vij间的相似度为:
更进一步地,步骤b7中,若存在两个或两个以上候选图片特征集nnfs特征点个数相同且数值最大时,则在其中选择相似度最大值对应的候选图片作为匹配图片。
更进一步地,还包括预处理过程,用于提取街景图片的局部特征点作为参考特征集,建立局部特征点与其所提取街景图片的映射表,将所述参考特征集建立成索引结构;预处理过程具体步骤包括:a1:将街景图片进行压缩;a2:对街景图片提取局部特征点,将其作为参考特征集,同时建立每个局部特征点和所提取街景图片的映射表;a3:将所述参考特征集建立成索引结构。
更进一步地,步骤a2中,所述特征点是sift或surf特征点。
更进一步地,步骤a3中,所述索引结构是用相似性搜索工具faiss或快速最近邻搜索库flann将其建立成索引结构。
更进一步地,其中k值取5。
本发明还提出一种基于大规模街景数据的图片地理定位系统,包括计算机程序,所述程序可被执行用于实现如权利要求1-8中所述方法。
本发明的有益效果是:本发明的图片地理定位方法可以仅根据图片视觉信息进行地理定位,实时匹配部分的时间复杂度可以仅与查询特征点个数相关,并且是线性匹配时间复杂度,从而具有较低的时间复杂度,因此匹配时间短,可以仅为秒级,匹配速度快。
进一步地,该方法求出的候选图片参考特征集为全局最优解,而现有技术中的gmcp算法求出的只是局部最优解。在zamir公开的测试数据集上,本发明实施例比基于gmcp的方法匹配准确度提高了2%,定位精度更高。
附图说明
图1是本发明实施例基于大规模街景数据的图片定理定位方法流程示意图;
图2是本发明实施例一张查询图片定位的示意图;
图3是本发明实施例最近邻特征表示意图;
图4是本发明实施例公开测试数据集的匹配正确率。
具体实施方式
下面结合附图和具体实施例对本发明做进一步说明。
如图1所示,基于大规模街景数据的图片地理定位方法,它包括可离线处理(可在终端处理,也可在服务器处理)的预处理部分,以及要在线处理的实时匹配(实时处理)部分。
对街景数据集,这里采用了zamir公开的超过102k带有gps标签的google街景图片,测试数据集采用了从flickr、panoramio和picasa地区用户随机上传的644张带有gps标签的图片。本具体实施例在服务器上ubuntu环境下用python2.7脚本语言下执行,其中服务器内存至少需要100g;在变通实施例中,如果数据量大,电脑、移动电子设备或服务器可能需要更大内存。如图2所示为一张查询图片定位过程中所需要的主要步骤的形象化示意。
其中预处理部分是提取街景图片的局部特征点作为参考特征集,建立局部特征点与其所提取街景图片的映射表,将所述参考特征集建立成索引结构;具体步骤如下:
a1:将街景图片进行压缩;
a2:对街景图片提取125077125个sift特征点,将其作为参考特征集,同时建立每个局部特征点和所提取街景图片的映射表,在变通实施列中可以使用surf特征点;
a3:将参考特征集用相似性搜索工具faiss将其建立成索引结构,在变通实施列中可以使用快速最近邻搜索库flann。
其中实时匹配是从查询图片中提取局部特征点作为查询特征点,生成查询特征集;在所述索引结构中对每个查询特征点检索k个最近邻特征点,最近邻特征点k可以是5个,生成最近邻特征分布表;通过所述最近邻特征分布表得到候选图片的最近邻特征集;选择最近邻特征集中的最优特征集对应的候选图片作为最佳匹配图片,该匹配图片对应的地理位置即视为查询图片的地理位置。具体步骤如下:
b1:从查询图片中提取局部特征点作为查询特征点qi,生成查询特征集q={qi|i=1,2,…,n},n=5227;
b2:对所述查询特征集q中每个查询特征点qi,在所述索引结构中返回k个到查询特征点距离递增的最近邻特征点,生成最近邻分布表vt,返回k个到查询特征点距离递增的最近邻特征点中的k可以是5个;
b3:对所述最近邻分布表vt中每个最近邻点vij,按照最近邻点与街景图片的映射表,返回最近邻分布表vt对应的街景图片,去除重复的街景图片,得到候选匹配图片集ic={i1,i2,i3…,is};
b4:对所述候选匹配图片集ic中每个候选匹配图片is,遍历q中的每个查询特征点,判断该查询特征点在最近邻分布表vt中对应的最近邻行中是否有最近邻特征点属于is;若特征点个数大于1或等于1,则选择一个距离查询特征点最近的特征点;若无,则跳过该特征点的选择;所有选择的特征点组成候选图片特征集nnfs;
b5:将所述候选匹配图片集ic中的每个候选匹配图片is去除所述候选图片最近邻特征集nnfs中重复的特征点;
b6:对所述候选匹配图片集ic中每个候选匹配图片is,计算所述候选图片最近邻特征集nnfs的相似度;所述查询特征点qi与所述最近邻特征点vij间的相似度为:
b3~b6步骤,在本具体实施例子中,执行时间为172ms。
b7:对所述候选匹配图片集ic中每个候选匹配图片,选择所述候选图片最近邻特征集nnfs特征点个数最多的候选图片作为匹配图片;本具体实施例中,只有一张候选图片的最近邻特征集nnfs,特征点个数最大为69,故将该候选图片作为查询图片的匹配图片;在变通实施例中,若存在两个或两个以上候选图片特征集nnfs特征点个数相同且数值最大时,则在其中选择相似度最大值对应的候选图片作为匹配图片;将匹配图片的地理位置作为查询图片的地理位置。
为实现上述方法,本发明实施例提供一种基于大规模街景数据的图片地理定位系统,包括计算机程序,所述程序可被执行用于实现上述方法,得到匹配后的图片,定位查询图片的地理位置。
本发明的图片定位方法可以运用到大规模街景数据的图片地理定位中,具体工作过程为:预处理部分把街景数据建立的索引数据传到实时处理部分;用户可通过电脑或者移动电子设备上传查询图片,也可以通过电脑或者移动电子设备处理预见处理部分,或者直接在服务器上处理预处理部分;在服务器上处理时,可离线处理也可在线处理;服务器端对查询图片按照本发明的服务器处理部分进行处理,得到匹配后的图片,定位查询图片的地理位置,其中电脑、移动电子设备或服务器的相关配置取决于街景数据的数量。
如图3所示,步骤b2生成的最近邻分布表vt。
候选图片特征集的求解算法如表1所示。
表1:候选图片特征集的求解算法
如图4所示,实验结果表明,在300m的误差范围内,本发明比基于gmcp的方法匹配准确度提高了2%,定位精度高;同时匹配时间为秒级,匹配速度快;该方法求出的候选图片参考特征集为全局最优解,而并非gmcp算法求出的局部最优解。
以上结合附图对本发明进行了详细说明,但本发明不仅仅局限于上述具体实施方式,本领域的普通技术人员根据所具备的知识,还可以在不脱离本发明宗旨的前提下做出各种变化。