通过yolov5实现的人物检测,因为部署环境的过程实属复杂,后来封装成docker镜像,使得部署过程非常简单,拉下来就能使用。目前已稳定的运行在项目中进行大量的任务检测分析。
1 环境说明
系统要求为linux,centos推荐7.5及以上,ubuntu推荐16及以上。
1.1 安装docker服务
安装docker服务的方式,请自行网上搜索,方式多种,都比较简单,要求18及以上的版本,如需使用GPU进行运算,docker版本须在19及以上。
1.2 端口开放
如采用云端服务器部署,“安全组”需要开放6699端口(端口可自行在容器启动时设定)。
2 安装部署
2.1 获取docker镜像
docker pull registry.cn-hangzhou.aliyuncs.com/yangfeng123/rwjc
(如已过期请联系获取最新镜像)
2.2 启动容器
docker run -itd -p 6699:8080 \
--ipc=host \
-e WEIGHTS=yolov5m -e CONFIDENCE=0.6 \
--restart always \
--name rwjc \
5cd16b04fe13
2.3 参数说明
- 我这里映射的是6699端口,大家根据自己的情况设置。
- WEIGHTS:可供选择的模型名称有 yolov5s, yolov5m, yolov5l, 其算法精度 yolov5s 最低,yolov5l 最高,但是识别速度刚好相反,建议根据部署环境选择合适的算法模型,比如在 GPU 运行,可以选择 yolov5l 模型,且置信度可以调高。
- yolov5m为cpu运行。
- CONFIDENCE:置信度(0~1,两位小数)。
3 使用接口说明
接口地址:http://IP:PORT/ai/utils/personDetect
请求方式:POST
Body请求参数:
- mage:必传, 图片的 base64 编码数据, 不需要 base64 字符串文件格式字符串, 即`,` 前的字符串;
- resultImgType:可选, 返回图片内容是否画框, 默认为 1, 1: 带 bbox 框, 2: 不带 bbox 框。
请求示例:
{
image: "/9j/4AAQSkZJRgABAQEAS....."
}
注意:是图片的base64编码数据!
返回示例:
{
"code": 0,
"message": "Ok.",
"data": {
"image": "/9j/4AAQSkZJRgABAQEAS.....", #返回检测结果的base64图片,可以在请求时设置是否将目标框出来
"inferenceResult": {
"person": {
"num": 3, #检测到的人形数量
"items": [
{
"x": 277.08, #目标框X坐标
"y": 55.43, #目标框Y坐标
"height": 159.16, #目标框高度
"width": 57.83, #目标框宽度
"confidence": 0.93 #置信度
},
{
"x": 326.83,
"y": 56.43,
"height": 141.43,
"width": 48.06,
"confidence": 0.9
},
{
"x": 390.72,
"y": 51.3,
"height": 233.61,
"width": 74.31,
"confidence": 0.83
}
]
}
}
}
}
Postman调用示例:
4 最后
大家遇到问题可以通过csdn昵称或简介联系到我,请注明来意。
通过人物检测还可以实现行人统计、人员聚集分析、客流等,大家可以自行发散。