本文介绍如何将基于深度学习的目标检测算法应用到具体的项目开发中,体现深度学习技术在实际生产中的价值,算是AI算法的一个落地实现。本文算法部分可以参见前面几篇博客:
[AI开发]Python+Tensorflow打造自己的计算机视觉API服务
[AI开发]视频多目标跟踪高级版(离自动驾驶又‘近’了一点点)
[AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建
背景
交通领域是深度学习技术可以发挥强大作用的一个领域。道路交通的安全性要求比较高,道路监控设备比较完备,这些设备每天可以产生无数的视频数据,而这些数据非常有利于深度学习模型的训练。网上也可以下载到非常多的交通数据集,包括行人、车辆、道路两旁的基础设施比如路灯、信号灯、公交站牌等等。
如何利用交通监控设备产生的视频数据,来进行视频的自动分析呢?显然这是一个深度学习的应用场景。下面介绍,如何利用深度学习技术自动检测车辆交通事件,比如高速路上违规停车、逆行、闯入行人、占用应急车道等等事件。下面是最终的一个效果图:
对于一台主机设备,可同时实时检测8路高清监控视频,若有异常事件,会实时发出警告。
业务流程
整个系统构成非常简单,业务流程也相对简单。下面是两个主要的业务分支:
视频流分支
如上图所示,直接将跟踪得到的轨迹叠加到视频帧中,然后编码将其推到Nginx服务器中,供web播放器播放。
数据流分支
如上图所示,根据跟踪得到的轨迹,检测每辆车的交通事件,将其结果写入mysql数据库。另外一个服务模块定期统计数据,供web模块进行数据显示。
系统结构
服务器环境
1)centOS 7.5 (3.10.0内核);
2)Python 3.6 + tensorflow-gpu 1.9 + keras 2.2.2 + 各种python库;
3)CUDA 9.0 + CUDNN 7.1 + Nvidia显卡驱动384.130;
4)Tomcat + Mysql + Java;
5)i7 8核 + Nvidia GTX 1080显卡;
以上是服务器软硬件环境。
系统组成
下图是软件系统组成:
上图中最上部分是核心算法在整个系统中的位置。
模型训练
模型训练最主要的是要收集高质量、各种天气、各种视频角度、各种道路状况下的素材。下面是素材的一个简单分类,数量大约为10W+张。
按场景:
1)外场
2)隧道
按天气:
1)晴天
2)阴天
3)雨天
4)夜晚(红外)
按摄像机角度:
1)正前方
2)正后方
3)侧前方
4)侧后方
按目标类型:
1)行人
2)汽车
3)客车
4)货车
(高速摄像机一般安装太远,其他目标太小,因此不考虑其他目标)
按路况:
1)流畅
2)拥堵
3)严重拥堵
素材标注是个体力活,找个好用的标注工具可以事半功倍。自己写了一个标注工具,体验不是特别好,但是适合本项目素材的标注。相关连接参见这里:-------link--------------
事件类型/功能
由跟踪得到的轨迹,可以分别检测出道路面的异常事件,包括:
1)行人闯入事件
2)异常停车事件
3)逆行/倒车事件
4)占用应急车道事件
5)货车占用超车道
6)非机动车闯入事件
7)拥堵级别告警
8)车型计数
9)平均车速统计
本文没有源码,思路仅供参考。
[AI开发]将深度学习技术应用到实际项目的更多相关文章
-
[AI开发]基于深度学习的视频多目标跟踪实现
据我目前了解掌握,多目标跟踪大概有两种方式: Option1 基于初始化帧的跟踪,在视频第一帧中选择你的目标,之后交给跟踪算法去实现目标的跟踪.这种方式基本上只能跟踪你第一帧选中的目标,如果后续帧中出 ...
-
AI面试必备/深度学习100问1-50题答案解析
AI面试必备/深度学习100问1-50题答案解析 2018年09月04日 15:42:07 刀客123 阅读数 2020更多 分类专栏: 机器学习 转载:https://blog.csdn.net ...
-
Mol Cell Proteomics. | Prediction of LC-MS/MS properties of peptides from sequence by deep learning (通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征) (解读人:梅占龙)
通过深度学习技术根据肽段序列预测其LC-MS/MS谱特征 解读人:梅占龙 质谱平台 文献名:Prediction of LC-MS/MS properties of peptides from se ...
-
认识:人工智能AI 机器学习 ML 深度学习DL
人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 人工智能是对人的意识. ...
-
【转载】如何自学深度学习技术,大神Yann LeCun亲授建议
编者按:Quora 上有网友提问:自学机器学习技术,你有哪些建议?(What are your recommendations for self-studying machine learning), ...
-
deeplearning.ai 神经网络和深度学习 week4 深层神经网络 听课笔记
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第 ...
-
用深度学习技术FCN自动生成口红
1 这个是什么? 基于全卷积神经网络(FCN)的自动生成口红Python程序. 图1 FCN生成口红的效果(注:此两张人脸图来自人脸公开数据库LFW) 2 怎么使用了? 首 ...
-
deeplearning.ai 神经网络和深度学习 week4 深层神经网络
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第 ...
-
【C/C++开发】值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...
随机推荐
-
Winodow Server Backup学习向导-window 2008
1.安装Window Server Backup 2.备份服务器 3.恢复服务器 4.优化和备份服务器性能 Windows Server Backup 中的新增功能有哪些? Windows Serve ...
-
C#中控件数组的讨论
VB用得习惯后,到C#中来觉得很奇怪,如此好的控件数组怎么不见了.“众所周知,控件数组最主要的两个优点:可以循环附值:可以响应同一个事件.从而大大简化了代码.引自http://wenku.baidu. ...
-
Tyvj 9.10 总结 (其实只是发一下心情)
原以为能拿200的,然而看到成绩彻底方了,60滚粗,连100都不到 这种成绩连一等都拿不到,我tm还谈什么省选,更别说NOI了 目前还没有部分分版本的,也没有数据,不知道问题出在哪里 tyvj群里好多 ...
-
cocos2d-x 3.0环境搭建
原文来自于:http://blog.csdn.net/linzhengqun/article/details/21663341 安装工具 1. 配置JDK JDK下载地址:http://www.ora ...
-
在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
-
VS中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法
最近使用VS,在引用COM组件的时候,出现了无法嵌入互操作类型“……”,请改用适用的接口的错误提示.查阅资料,找到解决方案,记录如下: 选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型” ...
-
easyui-01 怎么样使用easyui
console.info();在控制台打印. 1.引入 <script type="text/javascript" src="../../jquery-easyu ...
-
Centos 6 PXE安装
author:JevonWei 版权声明:原创作品 192.168.198.134作为安装服务器,由httpd服务共享安装程序 192.168.198.134作为dhcp服务器,客户机获取IP 一.安 ...
-
手把手教你从零开始搭建SpringBoot后端项目框架
原料 新鲜的IntelliJ IDEA.一双手.以及电脑一台. 搭建框架 新建项目 打开IDE,点击File -> New Project.在左侧的列表中的选择Maven项目,点击Next. 填 ...
-
校验*身份证号码的js脚本
网上搜了一下,居然没有,只好自己写一个. //*地区身份证校验 function IsTWIdcard(idcard){ if(/^[A-Z][1-2]\d{8}$/.test(idcard)) { ...