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网络摄像头,硬件接口丰富,支持二次开发。
人体属性识别软硬一体方案,预置人体检测和人体属性识别模型,检测图像中的所有人体并返回每个人体的矩形框位置,同时识别人体的静态属性和行为,共支持17种属性,包括性别、年龄阶段、上下身服饰(含类别/颜色)、是否佩戴帽子、是否带口罩、背包、是否吸烟、是否使用手机、人体朝向等。
人体属性识别功能说明
人体属性识别功能线上体验:https://ai.baidu.com/tech/body/attr
人体属性识别模型可以检测图像中的所有人体并返回每个人体的矩形框位置,识别人体的静态属性和行为,共支持17种属性,包括:性别、年龄阶段、上下身服饰(含类别/颜色)、是否戴帽子、是否戴口罩、背包、是否吸烟、是否使用手机、人体朝向等。
主要适用于监控场景的中低空斜拍视角,支持人体轻度截断、轻度遮挡、背面、侧面、动作变化等复杂场景。
摄像头硬件选型无特殊要求,分辨率建议720p以上,更低分辨率的图片也能识别,只是效果可能有差异。夜间红外监控图片的识别效果可能欠佳。
注:属性信息包括人体的遮挡、截断情况,在应用时可基于此过滤掉“无效人体”,比如严重遮挡、严重截断的人体。
17种属性及其输出项如下:
序号 | 属性 | 接口字段(type) | 输出项说明(name) |
---|---|---|---|
1 | 性别 | gender | 男性、女性 |
2 | 年龄阶段 | age | 幼儿、青少年、青年、中年、老年 |
3 | 上身服饰 | upper_wear | 长袖、短袖 |
4 | 下身服饰 | lower_wear | 长裤、短裤、长裙、短裙、不确定 |
5 | 上身服饰颜色 | upper_color | 红、橙、黄、绿、蓝、紫、粉、黑、白、灰、棕 |
6 | 下身服饰颜色 | lower_color | 红、橙、黄、绿、蓝、紫、粉、黑、白、灰、棕、不确定 |
7 | 背包 | bag | 无背包、单肩包、双肩包、不确定 |
8 | 是否戴帽子 | headwear | 无帽、普通帽、安全帽 |
9 | 是否戴口罩 | face_mask | 无口罩、戴口罩、不确定 |
10 | 是否使用手机 | cellphone | 未使用手机、看手机、打电话、不确定 |
11 | 人体朝向 | orientation | 正面、背面、左侧面、右侧面 |
12 | 是否吸烟 | smoke | 吸烟、未吸烟、不确定 |
13 | 上方截断 | upper_cut | 无上方截断、有上方截断 |
14 | 下方截断 | lower_cut | 无下方截断、有下方截断 |
15 | 侧方截断 | side_cut | 无侧方截断、有侧方截断 |
16 | 遮挡情况 | occlusion | 无遮挡、轻度遮挡、重度遮挡 |
17 | 是否是正常人体 | is_human | 非正常人体、正常人体;用于判断说明人体的截断/遮挡情况,并非判断动物等非人类生物。 正常人体:身体露出大于二分之一的人体,一般以能看到腰部肚挤眼为标准; 非正常人体:严重截断、或严重遮挡的人体,一般看不到肚挤眼,比如只有个脑袋、一条腿 |
开发管理平台功能说明
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、图片渲染时,只显示了性别、年龄、帽子、抽烟、手机、口罩六个属性,若检测到该属性为不确定则不显示该属性。但在回调中会显示所有的属性以及其score值;
2、人体检测与属性识别任务执行耗费的时间与检测到的人数相关,任务执行流程为先调用人体检测,若检测到多个人则逐个扣图送入人体属性模型中,所有一帧图片中,人数越多,任务执行耗费时间越长
3、模型推理时间,一张1080P的图片,人体检测耗时约110ms,人体属性耗时约150ms,当图片中有一个人体时,模型推理总耗时约260ms,同理若图片中有两个人体时,总耗时约410ms。
画面预览
外接显示器
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参数。由于回调中返回图片会占用大量的资源和带宽,实际使用时推荐选择【无图片】选项。
人体属性数据返回格式
{
"background":"base64xxxxxxxxxxxx",//背景图片,勾选页面中【回调图片】和【是否渲染】,会返回该字段
"camera_id":1,
"camera_name":"10",
"camera_sn":"",
"fence_data":[//画面框定信息
{
"coordinates":[
[
0.03592120509849363,
0.04474056907428863
],
[
0.031286210892236384,
0.9552594309257112
],
[
0.9710312862108921,
0.961439423200721
],
[
0.9768250289687137,
0.050920561349298295
]
],
"id":1,
"name":"area"
}
]
,
"height":720,
"model_id":1,
"result_data":[
{
"extended":{
"info":[
{
"name":"男性",
"score":0.8792504668235779,
"type":"gender"
},
{
"name":"青年",
"score":0.994939923286438,
"type":"age"
},
{
"name":"无背包",
"score":0.995636522769928,
"type":"bag"
},
{
"name":"短袖",
"score":0.7792378664016724,
"type":"upper_wear"
},
{
"name":"不确定",
"score":0.7130165100097656,
"type":"lower_wear"
},
{
"name":"白",
"score":0.8084244132041931,
"type":"upper_color"
},
{
"name":"黑",
"score":0.6762060523033142,
"type":"lower_color"
},
{
"name":"无帽",
"score":0.9998950958251953,
"type":"headwear"
},
{
"name":"未吸烟",
"score":0.8000762462615967,
"type":"smoke"
},
{
"name":"未使用手机",
"score":0.49706175923347473,
"type":"cellphone"
},
{
"name":"右侧面",
"score":0.9922451376914978,
"type":"orientation"
},
{
"name":"无口罩",
"score":0.9934377074241638,
"type":"face_mask"
},
{
"name":"无上方截断",
"score":0.9841088652610779,
"type":"upper_cut"
},
{
"name":"有下方截断",
"score":0.812346875667572,
"type":"lower_cut"
},
{
"name":"无侧方截断",
"score":0.8846884369850159,
"type":"side_cut"
},
{
"name":"重度遮挡",
"score":0.8641374111175537,
"type":"occlusion"
},
{
"name":"正常人体",
"score":0.9556099772453308,
"type":"is_human"
}
]
},
"image_data":"base64xxxxxxxxxxxx", //base64格式的图片,是检测到物体的扣图
"score":0.7676804661750793,
"x0":0.503125011920929,//左上角、右下角坐标
"x1":0.6968749761581421,
"y0":0.46388888359069824,
"y1":0.9944444298744202
},
{
"extended":{
"info":[
{
"name":"女性",
"score":0.9932680726051331,
"type":"gender"
},
{
"name":"青年",
"score":0.9970265030860901,
"type":"age"
},
{
"name":"无背包",
"score":0.9931153655052185,
"type":"bag"
},
{
"name":"长袖",
"score":0.701508641242981,
"type":"upper_wear"
},
{
"name":"不确定",
"score":0.9529623985290527,
"type":"lower_wear"
},
{
"name":"白",
"score":0.9327301979064941,
"type":"upper_color"
},
{
"name":"不确定",
"score":0.8535535931587219,
"type":"lower_color"
},
{
"name":"无帽",
"score":0.9740849137306213,
"type":"headwear"
},
{
"name":"不确定",
"score":0.5655806660652161,
"type":"smoke"
},
{
"name":"不确定",
"score":0.8170598745346069,
"type":"cellphone"
},
{
"name":"右侧面",
"score":0.9964438080787659,
"type":"orientation"
},
{
"name":"无口罩",
"score":0.9623166918754578,
"type":"face_mask"
},
{
"name":"无上方截断",
"score":0.9917484521865845,
"type":"upper_cut"
},
{
"name":"无下方截断",
"score":0.7652865648269653,
"type":"lower_cut"
},
{
"name":"无侧方截断",
"score":0.9054059386253357,
"type":"side_cut"
},
{
"name":"重度遮挡",
"score":0.9928562641143799,
"type":"occlusion"
},
{
"name":"正常人体",
"score":0.9902727007865906,
"type":"is_human"
}
]
},
"image_data":"base64xxxxxxxxxxxx",//base64格式的图片,是检测到物体的扣图
"score":0.63933265209198,
"x0":0.15859374403953552,
"x1":0.27734375,
"y0":0.4000000059604645,
"y1":0.9986110925674438
}
],
"task_id":1,
"task_name":"人体属性",
"task_type":"eb::humanattr",
"time":1650337279276,
"width":1280
}
HTTP模型推理服务接口
人体属性识别的模型推理服务接口与开发管理平台接口使用方法相同,推理结果与可视化页面模型管理中的效果验证结果相同。
HTTP模型推理服务接口使用请参考EdgeBoard开发管理平台使用说明-HTTP模型推理服务接口