OpenCV --- 基于 OpenCV 的百度路况研究记录 (一)

背景

城市版交通路况的分析基于高速公路路况的基础上以合肥为试点城市进行的研究课题.

记录

目前该研究课题已完成:

  1. 筛选出合肥市在百度地图 17 等级下的路况瓦片 62354 张
  2. 对合肥二环路内圈的路况进行分析,目前分析出的路况开发截图

分析结果: 用蓝色的线表示,画线时未区分颜色,实际分析已区分

目前已分析提取出的数据有:

  1. 拥堵段 2 端点的经纬度(百度,WGS84坐标系)

  2. 拥堵段距离,精确到到 0.1 m

  3. 拥堵段的拥堵状态 (缓行,拥堵,严重拥堵)

  4. 拥堵段的 WKT 空间信息, 单段 拥堵为 lineString格式, 近距离多段拥堵为 multiLineString 格式, 此信息可直接绘制在地图上

  5. 提取出瓦片的拥堵信息,再根据我们自己项目中使用的地图的比例尺渲染成适合我们地图的路况图层

目前该研究课题存在的问题:

  1. 有些复杂路口分析不正确,例如:

进行分析后,会变成下面这样:

还有这样的:

结果 :

目前的分析算法对于单张瓦片多处拥堵,且拥堵路段呈直线状分析结果准确,对于拥堵路段为曲线状且涉及多个路段时分析的结果不如人意,这是目前分析算法的原因,尚待改进.

性能问题,我目前测试了合肥二环路内圈的路况耗时日志结果如下:

该测试结果是我在笔记本上运行的结果,其中参数配置是:

  1. CPU : 2.8 GHz Intel Core i7-4 * 2核心, RAM: 16 GB 2133 MHz LPDDR3 , Graphics Card: Radeon Pro 555 2 GB

  2. 程序运行核心线程数 2 , 最大线程数 5, 运行过程中 CPU 使用率 50% ~ 60%

  3. 测试时间 4 月 16 日下午 16 点左右

测试结果: 单机运行, 12685 张图片耗时 714 s, 平均处理速度 18 张/秒 左右

相对于安徽高速,城市版的瓦片分析已经从 Java 的图片处理切换到 OpenCV,有个因素是 OpenCV 绝大数 API 是支持图形卡加速的,我本机的开发环境是开启了图形卡加速,但是一般的服务器是没有图形卡的.

未知因素: 获取合肥市内路网信息,获取后可进一步分析出以下信息:

  1. 获取详细的拥堵文字描述信息

  2. 按照某一条路进行分组,方便对一条路上多段拥堵进行合并

  3. 分析出拥堵路段涉及的行政区划

  4. 分析出该次拥堵的状态(首次拥堵,持续拥堵,结束拥堵),及拥堵持续时间