综合5项百度大脑AI技术,快速构建智能交通方案
一、整体方案:
思路:整合百度AI功能,通过百度AI解决、优化在公交运行过程中遇到的运营、管理、安全等方面的问题。具体如下:
安全方面:
通过驾驶员检测+语音合成,对驾驶员状态进行实时检测,跟踪,告警。
通过人流量统计对车内人数进行跟踪,在人数过多的时候告警。
通过危险行为识别功能对驾驶室及车辆内部的危险行为进行识别,提出警告。并上传后台系统,启动安全预案,将危险控制在萌芽状态。
经营方面:
通过车内和车站人流量识别,判断车内乘客数量上传后台系统,对车辆调度计划进行优化。
整体方案如图所示:
二、相关功能介绍:
人流量统计
统计图像中的人体个数和流动趋势,以头肩为主要识别目标统计人数,无需正脸、全身照,适应人群密集、各种出入口场景,包括:
静态人流量统计:适用于3米以上的中远距离俯拍,以头部为识别目标统计图片中的瞬时人数;无人数上限,广泛适用于机场、车站、商场、展会、景区等人群密集场所
动态人流量统计:面向门店、通道等出入口场景,以头肩为识别目标,进行人体检测和追踪,根据目标轨迹判断进出区域方向,实现动态人数统计,返回区域进出人数
详细说明见:
https://ai.baidu.com/tech/body/num
驾驶行为分析:
针对车载场景,识别驾驶员使用手机、抽烟、不系安全带、双手离开方向盘等动作姿态,分析预警危险驾驶行为,提升行车安全性。可以针对出租车、客车、公交车、货车等各类营运车辆,实时监控车内情况,识别驾驶员抽烟、使用手机、未系安全带等危险行为,及时预警,降低事故发生率,保障人身财产安全
详细说明见:
https://ai.baidu.com/tech/body/driver
危险行为识别:
针对5s内的监控视频片段,识别行为类别,目前支持7类行为:单人-情绪性指人、单人-摔倒、单人-激烈抱怨、单人-砸东西、单人-正常、双人-危险(包含出拳/拉扯/推搡/激烈搂抱/砸按/踢踹等)、双人-正常。
详细说明见:
https://ai.baidu.com/tech/body/danger
文档:https://ai.baidu.com/docs#/Body-API/19f2f5e1
请求URL:https://aip.baidubce.com/rest/2.0/video-classify/v1/body_danger
三、关键调用代码(Python3)
#驾驶行为识别:
import urllib
import base64
import json
import time #client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id = 'XXXXXXXX'
client_secret = 'XXXXXXXXX' #获取token
def get_token():
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
request = urllib.request.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib.request.urlopen(request)
token_content = response.read()
if token_content:
token_info = json.loads(token_content)
token_key = token_info['access_token']
return token_key #驾驶行为识别
def driver_behavior(filename):
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/driver_behavior"
print(filename)
# 二进制方式打开图片文件
f = open(filename, 'rb')
img = base64.b64encode(f.read()) params = dict()
params['image'] = img
params = urllib.parse.urlencode(params).encode("utf-8") access_token = get_token()
begin = time.perf_counter()
request_url = request_url + "?access_token=" + access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
end = time.perf_counter() print('处理时长:'+'%.2f'%(end-begin)+'秒') if content:
content=content.decode('utf-8')
data = json.loads(content)
print('人数:',data['person_num'])
persons=data['person_info']
print (persons) #人流量统计
def body_num(filename):
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_num" # 二进制方式打开图片文件
f = open(filename, 'rb')
img = base64.b64encode(f.read()) params = dict()
params['image'] = img
params['show'] = 'true'
params = urllib.parse.urlencode(params).encode("utf-8")
#params = json.dumps(params).encode('utf-8') access_token = get_token()
request_url = request_url + "?access_token=" + access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
person_num=0
if content:
#print(content)
content=content.decode('utf-8')
#print(content)
data = json.loads(content)
#print(data)
person_num=data['person_num']
print ('person_num',person_num)
return person_num
#危险行为识别
#filename:原图片名(本地存储包括路径)
def body_danger(filename):
request_url = "https://aip.baidubce.com/rest/2.0/video-classify/v1/body_danger" # 二进制方式打开图片文件
f = open(filename, 'rb')
img = base64.b64encode(f.read()) params = dict()
params['data'] = img
params = urllib.parse.urlencode(params).encode("utf-8")
#params = json.dumps(params).encode('utf-8') access_token = get_token()
request_url = request_url + "?access_token=" + access_token
request = urllib.request.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib.request.urlopen(request)
content = response.read()
if content:
#print(content)
content=content.decode('utf-8')
#print(content)
data = json.loads(content)
print(data)
for item in data['result']:
print ('行为:',item['name'])
print ('分数:',item['score'])
四、相关功能测试:
4.1 安全管理
(一)首先是驾驶行为分析,针对驾驶员的抽烟,打手机等不规范行为:
人数: 1
使用手机: 0.10
抽烟: 0.40
未系安全带: 0.81
双手离开方向盘: 0.24
视角未看前方: 0.16
警告:未系安全带
人数: 1
使用手机: 0.95
抽烟: 0.01
未系安全带: 0.80
双手离开方向盘: 0.95
视角未看前方: 0.98
警告:使用手机 未系安全带 双手离开方向盘 视角未看前方
(二)然后是针对驾驶室的危险行为,尤其是针对驾驶员的各种危险行为。这里以前一段时间的重庆万州的公交事故的驾驶室监控视频为例。因为社区不支持视频,所以使用图片示意。
大家可以通过微博地址查看视频:http://t.cn/EwM3WqQ
识别的速度很快,识别的内容如下:
行为: 双人-危险
分数: 0.954391598701477
可以发现,百度AI快速的识别了危险行为,而且危险分数很高。在系统的支持下,在自动报警的同时,通过语音合成技术大声语音警告:“对公共车辆驾驶员的暴力行为是违法的,为了所有人的安全请立刻停止!!!”
4.2 运营管理
对车辆内部及车站人数的统计,进而对车辆调度进行优化,同时也可以防止车辆过于拥挤产生踩踏事故。例如对下图的识别。
人数:6,未超过最大载荷。车内安全。
车站人数:8,很准确(右上角有一个穿白衣服人的背影)
结合车辆人的数量和车站人的数量就可以进行科学调度,对于这个例子来说,可以适当增加下一辆公交的发车时间了。
五、测试结论及展望:
通过对百度AI功能进行测试,发现识别的效果都很好。百度AI能快速、准确的识别各种风险,对人数的统计也非常的准确。针对现在公共出行的安全和管理的痛点进行了很好的解决,现在可以直接落地的技术包括:
安全方面:通过驾驶员检测+语音合成,对驾驶员状态进行实时检测,跟踪,告警;通过人流量统计对车内人数进行跟踪,在人数过多的时候告警;通过危险行为识别功能对驾驶室及车辆内部的危险行为进行识别,提出警告。并上传后台系统,启动安全预案,将危险控制在萌芽状态。
经营方面:通过车内和车站人流量识别,判断车内乘客数量上传后台系统,对车辆调度计划进行优化。
再配套开发对应的管理平台等平台结合起来就可以形成一整套的公交安全运营解决方案,对于提高公交运营的安全性和运营效率会有非常的的帮助。结合百度云技术、AI技术与开发平台,实现端云结合,让应用快速落地。在结合未来的全自动AI驾驶,百度城市大脑,相信公共出行会越来越安全、便捷。
作者:worddict
综合5项百度大脑AI技术,快速构建智能交通方案的更多相关文章
- 如何快速将百度大脑AI技术内置智能小程序中
实现效果: 该AI智能小程序目前集成了百度AI开放平台数十个AI服务产品功能,包括人脸识别.文字识别.表格识别.红酒识别.货币识别.地标识别.手势识别.商标识别.果蔬识别.菜品识别等图片识别功能,以及 ...
- AI+教育落地,百度大脑如何让校园更智能?
人工智能作为影响社会底层技术革命逐渐向传统行业渗透,“AI+”已经替代“互联网+”成为创业创新的新引擎,出人意料的是,在AI在教育业的率先落地并且相当火爆. 现在,人工智能教育已成为从业者心目中的“教 ...
- python预课06 基于百度大脑AI的人工智能,百度颜值检测,语音合成与识别
百度大脑: 如下图,百度开放了许多人工智能接口可以使用,先注册一个百度大脑账户 点击创建应用,选择需要的功能,如人脸识别,语音识别等 点击查看文档,可以查看功能对应语言的方法,参数.首先在CMD命令下 ...
- 使用百度大脑iOCR,快速自定义机票行程单模板识别
1. 功能介绍百度已经推出了iOCR财会票据识别,针对财会报销场景提出的专项解决方案,可对各类财务票据.报销单.银行回单.对账单进行自动分类及结构化识别,并支持用户为固定版式的新票据/单据自定义结构化 ...
- 全面解析百度大脑发布“AI开发者‘战疫’守护计划”
即日起,百度大脑发布“AI开发者战疫守护计划” 大疫当前,人人有责,携手开发者共同出击抗击疫情 基于百度大脑AI开放平台和飞桨深度学习平台,积极运用算法.算力.软件等“武器”助力抗疫! 谁能参与计 ...
- 百度大脑发布“AI开发者‘战疫’守护计划”,AI支援抗疫再升级
面对新冠肺炎疫情,AI开发者们正在积极运用算法.算力.软件等“武器”助力抗疫.针对开发者们在疫情防控期间的开发与学习需求,2月6日,百度大脑推出“AI开发者‘战疫’守护计划”, 正在进行疫情防控相关应 ...
- 发布AI芯片昆仑和百度大脑3.0、L4自动驾驶巴士量产下线,这是百度All in AI一年后的最新答卷...
机器之心报道,作者:李泽南. 去年的 7 月 5 日,百度在北京国际会议中心开办了首届「AI 开发者大会」.在会上,百度首次喊出了「All in AI」的口号.一年的时间过去了,今天在同样地点举行的第 ...
- 百度大脑UNIT3.0智能对话技术全面解析
智能客服.智能家居.智能助手.智能车机.智能政务……赋予产品智能对话能力是提升产品智能化体验.高效服务的重要手段,已经开始被越来越多的企业关注并布局.然而,智能对话系统搭建涉及NLP.知识图谱.语音等 ...
- 快速上手百度大脑EasyDL专业版·物体检测模型(附代码)
作者:才能我浪费991. 简介:1.1. 什么是EasyDL专业版EasyDL专业版是EasyDL在2019年10月下旬全新推出的针对AI初学者或者AI专业工程师的企业用户及开发者推出的A ...
随机推荐
- 简单地认识一下 HTML
简单复盘一下 HTML. 1.HTML 什么是 HTML?HTML 是 Hyper Text Markup Language 的简写,译成中文是「超文本标记语言」. 顾名思义,超文本,就是不止于文本, ...
- python排序算法之一:冒泡排序(及其优化)
相信冒泡排序已经被大家所熟知,今天看了一篇文章,大致是说在面试时end在了冒泡排序上,主要原因是不能给出冒泡排序的优化. 所以,今天就写一下python的冒泡排序算法,以及给出一个相应的优化.OK,前 ...
- hospital:广西大学生计算机设计大赛
html 当时做到的就是这些了 <!DOCTYPE html><html lang="en"><head> <title>病人信息查 ...
- Flink入门(二)——Flink架构介绍
1.基本组件栈 了解Spark的朋友会发现Flink的架构和Spark是非常类似的,在整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建Flink应用提供了丰富 ...
- 《手把手教你》系列进阶篇之1-python+ selenium自动化测试 - python基础扫盲(详细教程)
1. 简介 如果你从一开始就跟着宏哥看博客文章到这里,基础篇和练习篇的文章.如果你认真看过,并且手动去敲过每一篇的脚本代码,那边恭喜你,至少说你算真正会利用Python+Selenium编写自动化脚本 ...
- mysql的安装及命令
1.先检查系统是否装有mysql rpm -qa | grep mysql 2.下载mysql的repo源 wget http://192.168.130.150/mysql5.7.26/my ...
- go-channel处理高并发请求
目录 go-channel处理高并发请求 一.Channel简介 二.处理包并发请求 三.测试 1.测试工具 2.测试结果 go-channel处理高并发请求 最近看了一篇文章讲解怎样使用go-cha ...
- [TimLinux] Python 自定义描述符
1. 含义 在类中,含有属性(该属性需要存在类对象到__dict__属性中,不能为存在示例对象的__dict__属性中),对属性对操作(访问,设置值,删除)可以自定义行为,这样对自定义行为成为自定义属 ...
- C#异步编程看这篇就够了
随着.NET Core的流行,相信你现在的代码中或多或少的会用到async以及await吧!毕竟已成标配.那么我们为什么要用async以及await呢?其实这是微软团队为我们提供的一个语法糖,让我们不 ...
- springboot搭建一个简单的websocket的实时推送应用
说一下实用springboot搭建一个简单的websocket 的实时推送应用 websocket是什么 WebSocket是一种在单个TCP连接上进行全双工通信的协议 我们以前用的http协议只能单 ...