本文参考了以下三篇成果,分别有关经纬度提取、爬虫和语义分割:

基于GIS和Python的百度地图街景爬取 - 灰信网(软件开发博客聚合)基于GIS和Python的百度地图街景爬取,灰信网,软件开发博客聚合,程序员专属的优秀博客文章阅读平台。https://www.freesion.com/article/6033578903/BaiduStreetViewSpider: 多角度百度街景图像抓取爬虫源码(Python) - 城市之光 – City of Light百度街景爬虫该项目用于根据指定的wgs84经纬度坐标获取对应位置的百度地图的街景图像。项目地址:https://github.com/whuyao/BaiduStreetViewSpider内容该文件夹主要包含一个用于获取街景的脚本文件和一个输出目录。baiduStreetViewSpider.pyhttps://www.urbancomp.net/archives/baidustreetviewspiderv1手把手教你5行代码实现街景图片语义分割并计算绿视率与天空率 - 云+社区 - 腾讯云https://cloud.tencent.com/developer/article/1790563

准备街景采样点经纬度

首先,获取街景图片的经纬度需要准备路网数据。尝试了一下百度地图截获器,发现很久不更新了。。于是我买了基地的路网shp数据,这方面获取的方法有很多,可以QGIS,可以用Bigmap或者水经注这种软件。

拿到shp之后,使用Densify工具等距离增密道路的vertice,再通过Feature Vertices To Points转为采样点。经纬度坐标值可以使用Add XY Coordinates工具直接添加在属性表中。就可以获得一定间隔的路网经纬度点数据。

用表转excel工具,导出表格,后面爬虫里面要用。

运行街景图片爬虫

首先下载一下文章开头链接2的爬虫源码。爬虫下载下来,结构挺简单,是这样的:

但是dir文件夹里,少了一个叫images的文件夹,自己新建一个空文件夹命名为images即可

然后看代码,找到读取的文件路径,替换成刚才准备好的文件:

运行代码,就可以跑起来啦~

实现图像语义分割

这里建议使用google colab,配置起来很方便,而且还可以白嫖GPU~

用一张图做了测试,这部分完整代码如下:

# 安装依赖库,colab里安装新的包需要加!
# for mxnet
!pip install --upgrade mxnet
# for pytorch
!pip install torch==1.6.0+cpu torchvision==0.7.0+cpu -f https://download.pytorch.org/whl/torch_stable.html!pip install --upgrade gluoncv# 初始化
import mxnet as mx
from mxnet import image
import gluoncv
import matplotlib.pyplot as plt
from gluoncv.data.transforms.presets.segmentation import test_transform
from gluoncv.utils.viz import get_color_pallete,plot_image
import matplotlib.image as mpimg
import numpy as np
# using cpu
ctx = mx.cpu()# 读取图片
img = image.imread('/content/d1.jpg')
img = test_transform(img,ctx)# 调用model1,即用cityscapes训练出来的模型之一
model1 = gluoncv.model_zoo.get_model('deeplab_resnet101_citys', pretrained=True)# 两个输出参数
output = model1.predict(img)
predict = mx.nd.squeeze(mx.nd.argmax(output, 1)).asnumpy()# 解析输出参数
green = (predict==8)
print('绿视率为:',str(len(predict[green])/(predict.shape[0]*predict.shape[1])))
sky = (predict==10)
print('天空率为:',str(len(predict[sky])/(predict.shape[0]*predict.shape[1])))# 可视化
mask = get_color_pallete(predict, 'citys')
base = mpimg.imread('/content/d1.jpg')
plt.figure(figsize=(10,5))
plt.imshow(base)
plt.imshow(mask,alpha=0.5)
plt.axis('off')
#plt.savefig('cd2_deeplab_citys.jpg',dpi=150,bbox_inches='tight')

也可以继续试下另一个模型模型,代码如下:

model2 = gluoncv.model_zoo.get_model('deeplab_resnet101_ade', pretrained=True)
output = model2.predict(img)
predict = mx.nd.squeeze(mx.nd.argmax(output, 1)).asnumpy()
mask = get_color_pallete(predict, 'ade20k')
green = (predict==4)
print('绿视率为:',str(len(predict[green])/(predict.shape[0]*predict.shape[1])))
sky = (predict==2)
print('天空率为:',str(len(predict[sky])/(predict.shape[0]*predict.shape[1])))base = mpimg.imread('/content/d1.jpg')
plt.figure(figsize=(10,5))
plt.imshow(base)
plt.imshow(mask,alpha=0.5)
plt.axis('off')
plt.savefig('cd2_deeplab_ade.jpg',dpi=150,bbox_inches='tight')

在这张图上效果没有之前好:

ok啦~

20220601超简单百度地图街景图片爬取+绿视率计算相关推荐

  1. 网络时空大数据爬取与分析DAS系统(街景图片采集与绿视率分析)

    手把手教 | 网络时空大数据爬取与分析DAS系统(街景图片采集与绿视率分析) 原创 DAS Team 双评价DAS 7月2日 地理计算语言,为大众赋能地理智慧. --DAS Team 爬取分析DAS系 ...

  2. python爬虫——百度贴吧图片爬取 小项目

    项目目的: 爬取贴吧中所有帖子里面的图片 将爬取到的图片存储到名称为贴吧名称的文件夹中 项目环境 python版本:python3.6 用到的库:requests.etree.unquote 浏览器: ...

  3. 百度贴吧图片爬取,利用 pillow 将图片进行拼接形成照片墙

    python 爬取百度贴吧图片,利用 Pillow 拼接图片 1. 页面分析 我们以百度贴吧为例,爬取一些图片. 页面比较简单,信息提取只是关于图片地址.在代码中利用 lxml 和 Pyquery 两 ...

  4. 百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制11。

    1.POI爬取方法说明 1.1AK申请 登录百度账号,在百度地图开发者平台的API控制台申请一个服务端的ak,主要用到的是Place API.检校方式可设置成IP白名单,IP直接设置成了0.0.0.0 ...

  5. python 接入百度地图数据包下载_Python爬虫-利用百度地图API接口爬取数据并保存至MySQL数据库...

    首先,我这里有一份相关城市以及该城市的公园数量的txt文件: 分析-02.png 其次,利用百度地图API提供的接口爬取城市公园的相关信息. 所利用的API接口有两个: 1.http://api.ma ...

  6. python爬取百度地图数据_百度地图POI数据爬取

    利用百度地图开发者中心中的web API获取城市POI数据,后期会写出完整的多种参数详细数据获取教程.本次只写出了根据关键词和目的地的数据获取程序. 将爬取下来的数据保存到本地csv文件. 百度API ...

  7. python百度贴吧图片爬取

    抓取百度贴吧的的图片,网址:https://tieba.baidu.com 直接上代码: # -*- coding:utf-8 -*- from lxml import etree import re ...

  8. 百度地图瓦片数据爬取--java代码(地图数据篇.2)

    听老人家说:多看美女会长寿 地图之家总目录(建议先查看该内容) 文章末尾处提供保证可运行完整代码包,运行如有问题,可"私信"博主. 效果如下所示: 爬取后的瓦片数据可通过nginx ...

  9. 超简单的图片爬取项目,复制粘贴就能用,批量爬取动漫图片。(保姆教程,可根据需要修改URL)

    各位未来国家栋梁们好啊~相信栋梁们经常需要在网络上寻找各种资源,作为二次元的必备精神食粮,图片资源那是必不可少!在这里用python写了一个超简单的图片爬取小项目~话不多说,附上源码!(有用的话点个赞 ...

  10. android 仿百度地图,仿百度地图街景实现

    使用过百度地图的同学知道,它有个街景功能,可以看到许多地方的实景.这里就其街景内容的实现,进行下学习. 在百度地图SDK的官网上可以看到,百度对开发者提供了很多相关的内容,方便我们进行学习.关于SDK ...

最新文章

  1. jsp中的java部分_jsp页面的七个组成部分
  2. 静态和动态include
  3. 23种设计模式之组合模式
  4. Git pull(拉取),push(上传)命令整理
  5. DevC++的一些使用技巧
  6. lol更新显示正在连接服务器,wegame更新游戏显示正在连接服务器
  7. MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
  8. 大家都见过哪些让你虎躯一震的代码?
  9. 第一章:python入门储备知识
  10. 假如我来架构12306网站(一) - 概论
  11. Swift 基本知识点之三流程控制
  12. 【ffmpeg】curl : m3u8 to mkv
  13. 2021年危险化学品生产单位安全生产管理人员考试题及危险化学品生产单位安全生产管理人员最新解析
  14. 键盘连接在计算机的,技巧:如何在计算机键盘上输入连字符和破折号?
  15. List和set集合:交集、差集、合集的区别retainAll,removeAll、addAll
  16. linux后缀asok是什么意思,Pwn In Kernel(一):基础知识
  17. java IO数据流
  18. WinForm DataGridView实时更新表格数据
  19. rda分析怎么做_R语言做冗余分析(RDA)的一个简单小例子
  20. 国富论总结(第一卷 1-3 章)

热门文章

  1. mybatis plus table doesn't exists
  2. 自同构 黎曼度量 莫比乌斯变换
  3. 用html制作粒子线条,html5 canvas跟随鼠标粒子线条动画特效
  4. 中序遍历 java_java二叉树中序遍历递归和非递归实现
  5. 图像mnf正变换_PIE SDK最小噪声变换
  6. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  7. 亚马逊测评日记: 亚马逊自养号是什么意思?测评的风险?review和feedback、rating星级评分的区别?
  8. 用户认证授权系统方案思考
  9. 7-28 猴子选大王(20 分)
  10. VIM编辑器配置文件修改