EdgeBoard车流统计软硬一体方案说明
1 简介
1.1 车流统计功能说明
1.2 开发管理平台功能说明
1.3 硬件接口说明
2 使用步骤
2.1 连接设备
2.2 登录管理平台
2.3 查看预置模型
2.4 添加摄像头
2.5 添加任务
3 系统设置
4 HTTP结果回调
5 HTTP模型推理服务接口
简介
EdgeBoard软硬一体方案,是以EdgeBoard边缘AI计算盒为底座,WEB开发管理平台为控制中心,专项适配百度自研算法,并深度兼容AI开发平台EasyDL和开源深度学习平台PaddlePaddle,支持模型在线效果验证,外接显示器实时显示渲染结果,同时,支持HTTP回调和HTTP模型推理服务,可接入USB摄像头和RTSP网络摄像头,硬件接口丰富,支持二次开发。
车流统计软硬一体方案,预置车流统计技能,根据视频抓拍图片序列,进行车辆检测和追踪,识别各类车辆(包括小汽车、卡车、巴士、摩托车、三轮车等)与指定区域的位置关系,实现动态车流统计。
车流统计功能说明
车流统计需要预先设置画面框定区域,然后根据车辆类别进行统计,并将结果渲染在图片上,每辆车的左上角会有2个数字,分别代表车辆ID和统计状态。车辆ID具有唯一性,每辆车不会重复,统计状态有0、1、x三种状态,0代表在统计区域外部,1代表在统计区域内部,x代表该车已被统计。in和out为统计的车辆进出数量。
线上效果体验:https://ai.baidu.com/tech/vehicle/flow
开发管理平台功能说明
Edgeboard内置可视化开发管理平台,支持web页面进行总览、摄像头管理、模型管理、任务管理、系统设置等操作。
| 功能 | 描述 |
|---|---|
| 总览 | 支持实时查看设备内存、CPU和存储空间的资源剩余情况,以及当前添加的模型、摄像头和任务情况。 |
| 模型管理 | 支持PaddlePaddle模型、Easydl的图像分类和物体检测模型以及其他Edgeboard模型的添加和管理,支持在线效果验证 |
| 摄像头管理 | 支持USB摄像头、RTSP网络摄像头的添加和管理,在线校验视频流地址,支持画面预览 |
| 任务管理 | 支持添加数据采集任务、Paddle模型视频分析、EasyDL模型视频分析和EdgeBoard SDK视频分析等任务,支持画面预览,支持任务的开启和关闭。 |
| 系统设置 | 支持设备信息的显示、系统时间的修改、软件版本升级、以太网设置和Wi-Fi网络设置、恢复出厂设置、重启等功能。 |
| HTTP回调 | 支持将视频流任务或者采集任务结果通过HTTP协议推送到指定地址,方便客户进行二次开发。 |
| HTTP模型推理服务 | 支持调用HTTP服务接口传入图片,EdgeBoard再将分析结果回传至HTTP客户端。 |
硬件接口说明
更多硬件介绍请参考EdgeBoard基础硬件使用说明
使用步骤
以下仅以车流统计软硬一体方案的常规操作进行演示,更多使用方式请参考EdgeBoard开发管理平台使用说明
车流统计软硬一体方案,预置了车流统计的技能,可以直接添加摄像头和任务,开启AI识别,大体操作流程如下:【连接软硬一体设备】----> 【登录开发管理平台】----> 【查看预置模型】----> 【添加摄像头】----> 【添加任务】----> 【开始预测】
连接设备
将设备通过网线连接电脑(直连电脑或者通过路由器),设备的网络参数为:ip=192.168.1.254,子网掩码=255.255.255.0,网关=192.168.1.1。保证设备和电脑在同一网段,如果是直连电脑可以将电脑设置成固定IP。
电脑端网络配置可参考网络配置
登录管理平台
在浏览器中输入开发管理平台首页地址,即可显示登录页面,登录完成后进入管理页面。
开发管理平台首页地址:http://ip:9876/ 出厂默认:http://192.168.1.254:9876/
开发管理平台账号:admin,初始密码:admin
进入系统
查看预置模型
查看模型管理页面,车流统计软硬一体设备中,已经包含了车流统计的技能。使用的模型为车辆检测模型,车流统计是在模型推理基础上二次开发提供的功能。
注意:模型管理页面的【效果验证】仅提供车辆检测功能,没有车流统计功能。
添加摄像头
EdgeBoard开发管理平台支持USB摄像头和RTSP摄像头两种类型,用户可根据使用场景进行选择。
添加USB摄像头
先将USB摄像头插到EdgeBoard上再在页面中添加对应的摄像头,此时,点击【选择摄像头】右边框的箭头,下拉框会自动弹出当前设备上已插入的USB摄像头节点,并采集一张当前图片,点击待添加的摄像头,确定。
添加网络摄像头
保证EdgeBoard和网络摄像头的网络互通的状态下,添加网络摄像头,摄像头类型选择网络摄像头,输入视频流地址后,点击右侧的【校验】按钮,如果出现对勾,证明视频流地址(RTSP流地址)填写正确,并能够正常采集到图片。校验成功后点击确定,在管理页面就可以看到已添加的摄像头。
SN码为您的摄像头设备唯一ID(选填)。
添加任务
EdgeBoard开发管理平台支持添加不同功能的任务,例如可以添加数据采集任务,视频分析任务等。以视频任务为例
选择任务类型
选择任务类型选择EdgeBoard算法,车流统计
任务配置
配置与paddle模型类似,带“*”为必填项,确定需要部署的模型和对应的摄像头,以及模型推理的帧率,其余按需填写即可。
画面框定
画面框定是指在检测区域中框定一个闭合区域,后续只识别框定区域内的物体。在车流统计软硬一体设备中,必须在画面框定中添加一个监测区域,并确保监测区域任意一边尽量靠近相机画面的边缘,以下图为例,车辆从区域中通过时被判定的移动方向。
完成画面框定后,任务创建完成,返回任务管理页面。
启动任务
注意事项
- 每个任务只支持统计单个区域,每个统计区域需要有一边靠近相机画面的一边(该位置是车辆出入的地方)。
- 由于不同场景中车速不同,对车辆跟踪算法的影响不同。车速较慢推荐配置任务在1秒1帧,车速较快推荐1秒5帧。根据不同场景灵活配置,如果发现车辆ID基本不变说明车辆跟踪算法已经满足需求,无需再额外增加识别帧率。
- 因相机角度、高度影响,在绘制统计区域时尽量保证统计区域要比车辆检测框要大。
- 任务停止重新启动后会清除之前的统计信息。
画面预览
在任务中点击【画面预览】,系统会显示当前处理的一帧画面。
外接显示器
EdgeBoard提供视频输出接口miniDP,可以外接显示器(如果是HDMI接口的显示器,需要使用主动式miniDP转HDMI转换线,接口输出参考链接),在上电状态下插入显示器时,首次点击【外接显示器】的开关按钮后,需要重启设备。
一般情况下,显示器显示的视频帧率为创建任务时设置的帧率,当设置的帧率大于设备实际能够处理的帧率时,设备会以最大处理速率显示,渲染画面和系统中【画面预览】相同。
更多任务管理设置请参考EdgeBoard开发管理平台使用说明
系统设置
系统设置请参考EdgeBoard开发管理平台使用说明-系统设置
HTTP结果回调
说明
当用户需要获取EdgeBoard的分析结果时,EdgeBoard开发管理平台支持将视频流任务结果通过HTTP协议推送到指定地址,方便客户进行二次开发。
HTTP回调方式:EdgeBoard ----- post -----> 用户服务器
EdgeBoard <------ response---- 用户服务器
HTTP回调接口:http://ip:port/xxxxxxx 。该接口由用户定义,不做固定格式要求。
回调功能设置
添加任务时,可设置回调功能
回调状态:勾选【启用】会开启回调功能;勾选【禁用】会关掉回调功能;
回调地址:用户实际回调服务地址(图中地址仅作展示),开启回调后,设备会将结果数据发送至该地址;
回调条件:回调结果支持基于模型标签(label)进行条件筛选,增加回调条件后,服务器就会得到筛选后的数据;
回调图片:回调图片仅指回调参数中“background”的返回值,【原图】指返回的background为不带渲染的base64图片,【原图+渲染】指返回的background为不带渲染的base64图片,【无图片】则回调结果中不返回background参数。由于回调中返回图片会占用大量的资源和带宽,实际使用时推荐选择【无图片】选项。
车流统计数据返回格式
1{
2 "task_id": 1,//任务ID号
3 "task_name": "car_flow",//任务名称
4 "task_type": "eb::vehicle_flow",//任务类型
5 "camera_id": 1,//摄像头ID号
6 "camera_name": "vehicle_flow",//摄像头名称
7 "camera_sn": "",//摄像头SN码
8 "model_id": 1,//模型ID号
9 "background":"base64xxxxxxxxxxxx",//背景图片,勾选页面中【回调图片】和【是否渲染】,会返回该字段
10 "height": 1080,//回调图片的高
11 "width": 1920,//回调图片的宽
12 "time": 1649302643641,//回调图片时间戳
13 "fence_data": [ //画面框定信息
14 {
15 "coordinates": [
16 [
17 0.23790322580645168,
18 0.5430107526881721
19 ],
20 [
21 0.6532258064516131,
22 0.5376344086021505
23 ],
24 [
25 0.8185483870967742,
26 0.9910394265232975
27 ],
28 [
29 0.08366935483870976,
30 0.9892473118279571
31 ]
32 ],
33 "id": 4,
34 "name": "area"
35 }
36 ],
37 "result_data": [ //推理结果
38 {
39 "extended": {
40 "trackId": 5
41 },
42 "label_id": 0,
43 "label_name": "小汽车",
44 "score": 0.942428469657898,
45 "x0": 0.14270833134651184,
46 "x1": 0.17395833134651184,
47 "y0": 0.21111111342906952,
48 "y1": 0.2611111104488373
49 },
50 {
51 "extended": {
52 "trackId": 6
53 },
54 "label_id": 0,
55 "label_name": "小汽车",
56 "score": 0.9207469820976257,
57 "x0": 0.0859375,
58 "x1": 0.13177083432674408,
59 "y0": 0.18981482088565826,
60 "y1": 0.23055554926395416
61 }
62 ],
63 "vehicle_flow": { //车流统计信息
64 "bicycle": {
65 "in": 0,
66 "num": 1,
67 "out": 0
68 },
69 "bus": {
70 "in": 0,
71 "num": 1,
72 "out": 0
73 },
74 "car": {
75 "in": 0,
76 "num": 8,
77 "out": 2
78 },
79 "heavytruck": {
80 "in": 0,
81 "num": 0,
82 "out": 0
83 },
84 "mediumbus": {
85 "in": 0,
86 "num": 1,
87 "out": 0
88 },
89 "minivan": {
90 "in": 0,
91 "num": 0,
92 "out": 0
93 },
94 "motorbike": {
95 "in": 0,
96 "num": 1,
97 "out": 0
98 },
99 "tricycle": {
100 "in": 0,
101 "num": 0,
102 "out": 0
103 },
104 "truck": {
105 "in": 0,
106 "num": 0,
107 "out": 0
108 }
109 }
110}
车型对应关系
为了保证画面预览的渲染效果,画面中的巴士和货车为几种车型的总的流量统计。比如画面中显示的巴士进出数量是巴士和中巴的流量和,但在回调数据中是每种车型单独计数。
画面预览和外接显示器显示的车型信息与回调中车型信息的具体对应关系如下:
| 画面预览&外接显示器的车型信息 | HTTP回调中的车型信息 |
|---|---|
| 小汽车 | car |
| 巴士 | bus + mediumbus |
| 货车 | truck + heavytruck + minivan |
| 三轮车 | tricycle |
| 摩托车 | motorbike |
| 自行车 | bicycle |
更多HTTP回调使用请参考EdgeBoard开发管理平台使用说明-HTTP结果回调
HTTP模型推理服务接口
车流统计软硬一体方案使用的模型为车辆检测模型,HTTP服务仅提供车辆检测的功能,不提供车流统计功能。
HTTP模型推理服务接口使用请参考EdgeBoard开发管理平台使用说明-HTTP模型推理服务接口
