作者:wangwei8638
2018年10月28日,重庆万州公交车坠江事故造成15人死亡,包含老人和小孩。汽车黑匣子被打捞上来,监控视频查明原因,竟是乘客与驾驶员发生争执互殴引发。如果乘客中有一人出来劝阻,或者监控视频能及时发出危险预警,灾难或许能够避免。当然还有校园暴力、路怒症等群体事件,利用AI人体分析技术,也能够做到及时发现,及时干预,将隐患消除在萌芽状态。
一.平台接入
此步骤比较简单,不多阐述。可参照之前文档:
https://ai.baidu.com/forum/topic/show/943162
二.分析接口文档
1.打开API文档页面,分析接口要求
https://ai.baidu.com/docs#/Body-API/19f2f5e1
(1)接口描述
针对5s内的监控视频片段,识别行为类别,目前支持7类行为:单人-情绪性指人、单人-摔倒、单人-激烈抱怨、单人-砸东西、单人-正常、双人-危险(包含出拳/拉扯/推搡/激烈搂抱/砸按/踢踹等)、双人-正常。
(2)请求说明
需要用到的信息有:
请求URL:https://aip.baidubce.com/rest/2.0/video-classify/v1/body_danger
Header格式:Content-Type:application/x-www-form-urlencoded
Body中放置请求参数,参数详情如下:
(3)返回参数
返回示例
{
'result': [{'score': 0.8421209454536438, 'name': '双人-危险'}],
'log_id': 8282841239354593761
}
2.获取access_token
# encoding:utf-8
import base64
import urllib
import urllib2
request_url = " https://aip.baidubce.com/rest/2.0/video-classify/v1/body_danger "
# 二进制方式打开视频文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {"data": data }
params = urllib.urlencode(params)
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
request = urllib2.Request(url=request_url, data=params)
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = urllib2.urlopen(request)
content = response.read()
if content:
print content
三.识别结果
- 单人视频
视频处理时长: 8.89 s
识别结果: 单人-正常
0.8313765525817871
- 双人视频
视频处理时长: 6.19 s
识别结果: 双人-危险
0.8421209454536438
- 多人视频
视频处理时长: 8.39 s
识别结果: 双人-危险
0.9950131177902222
结论:
识别结果方面:对于3个视频中的危险行为,2个能够正确识别。视频1识别结果有偏差,应为“单人-砸东西”。
处理速度方面:5s时长的视频,处理时间在6-8s,花费时间稍长