Landscape-Health Score(LHS)是一个基于百度Paddlepaddle深度学习框架搭建景观健康效益辅助评估工具,只需要简单的拖拽图片文件则可自动分析图像和生成简单的评价报告。目前支持的Bisenet和PSPNet模型可实现9种环境要素的识别和分割,并实时统计环境要素的比例,绿视率和快乐/放松/专注/社交/活力/压抑等6项心理指标的分数。
图像分割功能基于图像语义分割技术原理,利用深度学习技术与Cityscapes数据集训练模型,通过模型对像素进行识别分类和统计每种要素在图像上的面积比例。 目前支持识别的环境要素有:
- 天空
- 树木/树篱/各种垂直植被
- 草/各种水平植被
- 围栏
- 建筑
- 独立的墙壁
- 人行道
- 马路
- 柱/杆
- 水体(后续支持)
- 山体(后续支持)
绿视率是环境绿化评估的参考指标之一,传统绿视率通过利用图像像素RGB值的原理进行统计,受环境因素影响明显,统计数据误差较大,基于深度学习方法能够识别图像中绿色植物,排除其他干扰因素(如绿色的衣服/广告牌等),从而实现较精确的比例计算。
支持针对输入图像进行快乐/放松/专注/社交/活力/压抑等6项心理维度的评估分析,目前该功能仍处于研究和测试阶段,算法之后会不断升级迭代。
- Windows10(推荐)
- CPU Intel i5或AMD同等性能处理器
- GPU RTX1060 6G以上配置(可选)
(一般不用管,可以跳过)
- npm >= 7.15
- Vite 2
- VUE 3.0
2021.08.03 - 针对Windows优化的稳定版本V1.0.1已经发布,点击这里下载。
使用方法:直接解压,然后运行“启动程序.exe”或者“使用兼容模式运行.cmd”,默认已包含了BiSeNetv2模型。
按下Win+R
键,输入cmd,进入命令行窗口
输入cd LHS所在的文件夹目录
进入目录
输入pip install -r requirement.txt
耐心等待安装完成即可。
前往模型选择下载任一模型的压缩包,并解压后将全部文件复制到model文件夹中。初次使用,推荐下载BiSeNetv2模型。
按下Win+R
键,输入cmd,进入命令行窗口
输入cd LHS所在的文件夹目录
进入目录
输入python app.py
运行程序
打开除IE以外的任何浏览器,输入http://127.0.0.1:5000
即可进入操作界面。
为了满足批量处理图片的要求,我加入了http接口,可以在运行程序的情况下通过任何语言的代码发起POST请求。
HTTP方法:POST
请求地址:http://127.0.0.1:5000/api/v1/json
Header:
参数 | 值 |
---|---|
Content-Type | application/json |
请求参数:
参数 | 类型 | 说明 |
---|---|---|
image | string | 图片信息,base64编码,bytes需要转换成utf-8 |
返回参数:
参数 | 类型 | 说明 |
---|---|---|
image | string | 切割后效果图像的base64编码 |
glr | double | 绿视率 |
proportion | json | 环境要素占比 |
score | json | 6项心理指标评分 |
下面提供curl/php和python三种请求案例。
curl -i -k 'http://127.0.0.1:5000/api/v1/json' --data 'image=【图片Base64编码,需UrlEncode】' -H 'Content-Type:application/x-www-form-urlencoded'
<?php
function request_post($url = '', $param = '')
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
// 初始化curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $postUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
$url = 'http://127.0.0.1:5000/api/v1/json';
$img = file_get_contents('[本地文件路径]');
$img = base64_encode($img);
$bodys = array(
'image' => $img
);
$res = request_post($url, $bodys);
var_dump($res);
import requests
import base64
import json
request_url = "http://127.0.0.1:5000/api/v1/json"
f = open('[本地文件路径]', 'rb')
img = base64.b64encode(f.read()).decode('utf-8')
params = {'image':img}
headers = {'content-type': 'application/json'}
response = requests.post(request_url, data=json.dumps(params), headers=headers)
if response:
print (response.json())
* requirement.txt --依赖文件列表
* app.py --启动入口程序
* infer_api.py --预测程序的主文件
* Qscore_algorithm.py --评分模块文件
* dist --编译好的网页前端程序
* model --深度学习模型文件
* frontend --基于Vite2 + VUE3.0写的前端源代码
目前支持BiSeNetv2和PSPNet模型,BiSeNetv2模型体积小,预测运行速度快,适合纯CPU的运行环境,但效果精度较差。PSPNet模型对显卡要求较高,运行速度较慢,但精度较高。注:使用PSPNet需要先安装配置CUDA9.0+环境。
网络结构 | 模型大小 | 运行环境 | 下载地址 |
---|---|---|---|
BiSeNetv2 | 8.4 MB | CPU | http://www.gis.show/index/article/id/18 |
PSPNet | 307.7 MB | GPU | http://www.gis.show/index/article/id/19 |
本项目使用The GNU General Public License v3.0(GPL3.0)开源协议,基于项目的二次开发需要遵循GPL3.0协议中的内容,使用代码需要添加引用出处。
SCULAB https://www.scurbanlab.com/
如果我们的项目帮助到你,请考虑以下引用:
@article{CHEN2021151605,
title = {Predicting the effect of street environment on residents' mood states in large urban areas using machine learning and street view images},
journal = {Science of The Total Environment},
pages = {151605},
year = {2021},
issn = {0048-9697},
doi = {https://doi.org/10.1016/j.scitotenv.2021.151605},
author = {Chongxian Chen and Haiwei Li and Weijing Luo and Jiehang Xie and Jing Yao and Longfeng Wu and Yu Xia}
}
百度飞桨 http://www.paddlepaddle.org.cn
GT https://github.com/GT-ZhangAcer