前言

基于华为云ModelArts和昇腾CANN实现从训练到部署的端到端行人检测和跟踪Demo,这里的CANN使用的是Python接口(Python版本)。

在ModelArts完成开发和模型训练

华为云ModelArts供海量数据预处理及交互式智能标注、大规模分布式训练、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流。

基于华为云ModelArts一站式AI开发平台,可以很

数据集

这里我提供了数据集,大家可到AI Gallery下载到自己的OBS桶,方便后续训练使用。注意,下载到OBS需要占用OBS的存储,这需要一定花费,请确保余额充足或有代金券可以抵扣。

这里顺便简单说下AI Gallery:

AI Gallery 是人工智能知识与实训专区,包含超多优质 AI 资产:算法、模型、数据、论文…模型订阅即可快速使用,零门槛上手 AI 开发;为新手定制完整成长路线,快速进阶 AI 开发达人。

我们使用的是基于公开数据集整理的行人数据集,具体信息如下:

  • 样本数量: 4526张图片
  • 标注格式:VOC标注格式
  • 标签:person
  • 标签数量:11183
  • 数据集划分:未做划分

特别说明

为了节省花费,我们这里使用ModelArts的免费体验规格训练,后续会详细介绍,使用默认参数下,训练时间超过了免费体验规格的1小时体验时长会导致训练失败。因此,建议大家减少训练epoch,比如设置max_epochs=100(默认参数下,max_epochs=200),同时建议大家划分数据集再训练。

我使用的超参数设置如下图所示:

训练

硬件规格:

使用的是华为云ModelArts提供的[限时免费]规格,具体如下:

  • 计算节点个数:1
  • 规格:GPU: 1 * NVIDIA-V100(32GB) | CPU: 8 核 64GB | 780GB
  • 预置镜像:TensorFlow | TF-1.13.1-python3.6

训练日志截图:

资源占用情况截图:

可以看到算法很高效,GPU和GPU的占用率和利用率稳定且较高,以GPU为例,显存占用率和利用率都很高,分别达到了90%以上和80%以上,充分发挥硬件算力。

本次训练未经调优,得到的精度指标为:

f1 recall precision accuracy mAP
0.6949 0.6049 0.8163 0.8163 0.5326

说明:

  • 根据每种分类的置信度对样例进行排序,逐个把样例加入正例进行预测,算出此时的精准率和召回率。使用这一系列的精准率和召回率绘制的曲线,即是一个类别的P-R曲线。
  • 平均精度均值(Mean Average Precision, mAP):计算每个类别P-R曲线下面积得到每个类别的平均精度(AP),所有AP的均值即为平均精度均值(mAP)。
  • 因为我们这里仅针对行人检测,所以类型只有人,即class_name: "person",其对应的 class_id: 0

可以看到精度指标还有提升空间,这里附上一些建议,需要注意的是,此建议是对在上述数据集上按照上述超参数设置的训练的分析,并不适用所有情况,要具体情况具体分析:

  • 背景漏检数量为321,超过标注框总数的20%。
    建议使用Balanced Loss来进行目标框回归计算。
  • 非极大值抑制的IoU预置在0.40时,模型的mAP最高;分类置信度的预置在0.33时,各个类别的平均F1值最高。
    建议推理时,将阈值设置为上述两个值。这点比较重要,在后续部署的时候,我们会用到。
  • 目标框清晰度对person的召回率有重大影响,在不同特征区间上mAP的方差为0.208。
    建议在训练时,添加针对此特征的数据增强。这里提醒一下,对数据集的特征分析和数据增强,可以使用ModelArts的数据集管理来做,便捷高效。

在ECS基于CANN完成模型部署和推理

环境配置

基本配置

这里,我们使用的是CANN体验官第五期提供的镜像300-5.1.RC2.alpha005,我的弹性云服务器配置如下:

AI加速型 | ai1s.large.4 | 2vCPUs | 8GiB | Ubuntu 18.04 server 64bit | 5.1.RC2.alpha005

就是一台最简配的CPU(x86) + Ascend 310的ECS,不过也足够我们个人开发使用了。

第三方依赖安装

请参照第三方依赖安装指导(python样例),完成第三方依赖安装便于后续开发。

注意事项

  • 若执行如下命令遇到问题:

    sudo apt-get install python3-pip
    

    若报错:

    E: Unable to locate package python3-pip
    

    应该是因为没有更新,可先更新,命令如下:

    sudo apt-get update
    

    之后再执行之前的命令即可。

  • 安装Python第三方库

    建议用如下命令:

    python3.6 -m pip install scipy --user -i https://mirrors.huaweicloud.com/repository/pypi/simple
    

    可将scipy换成你想安装的库名。

最后来看看我们的环境变量:

模型转换

原始模型yolo3_resnet18.pb要求的输入是宽度为640,高度为352、3通道的RGB格式的图像

  • 使用AIPP,做归一化操作(设置每个通道方差的倒数为0.003922,即1/255)
atc --model=./yolo3_resnet18.pb --framework=3 --output=yolo3_resnet18_aipp_bs1 --input_format=NHWC --soc_version=Ascend310 --input_shape="images:1,352,640,3" --log=info --insert_op_conf=insert_op_conf.cfg

之后是部署和推理,未完待续中…

总结与思考

未完待续中…

基于ModelArts和CANN的端到端行人检测和跟踪Demo(Python版本)【训练篇】相关推荐

  1. ModelArts 与HiLens Kit联合开发丨行人社交距离风险提示Demo

    摘要:本Demo使用YOLOv3_Resnet18模型来检测的视频流中的行人,获取行人坐标(即图中蓝色方框),然后计算所有检测到的人之间的相互"距离". 作者:华为云EI专家厉天一 ...

  2. Chained-Tracker:链式成对关注回归结果,用于端到端联合多目标检测和跟踪

    1.文章信息 本文是腾讯优图团队和复旦大学.日本奈良先端科学技术大学院大学一起完成的一项工作,是2020年7月底提交到arXiv中的一篇文章. 2.摘要 现有的多目标跟踪(MOT)方法要么遵循检测跟踪 ...

  3. 在服务器上搭建基于yolo3 与crnn 实现中文自然场景文字检测及识别,GPU版本

    Github地址 参考地址 作者大人,十分热心,对于我的问题,提供了大量的帮助,使我少走了很多的弯路,在此表示由衷的感谢 注意事项 使用nvidia-smi命令查看cuda的版本,必须是10.1或者1 ...

  4. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  5. 检测跟踪 DeepSOCIAL:基于YOLOv4的人群距离监测 集检测、跟踪以及逆透视映射一体的系统

    论文:https://doi.org/10.3390/app10217514 代码:https://github.com/DrMahdiRezaei/DeepSOCIAL https://github ...

  6. 基于激光雷达点云的3D目标检测算法—端到端多视图融合

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Rubicon007@知乎 来源丨https://zhuanlan.zhihu.com/p/44 ...

  7. 丢弃Transformer!旷视和西安交大提出基于FCN的端到端目标检测网络

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文作者:王剑锋  | 编辑:Amusi https://zhuanlan.zhihu.com ...

  8. 基于深度学习的端到端人脸识别技术:全面调研

    44页,共计371篇参考文献.本文全面介绍了端到端深度学习人脸识别技术,包括人脸检测,人脸预处理和人脸表征等方向,详细介绍了最新的算法设计,评估指标,数据集,性能比较等. The Elements o ...

  9. 基于Docker的开源端到端开发者平台

    今天和大家一起分享的是一个基于Docker的适用于多平台的端到端开发者平台,Appwrite Appwrite,可以适用如Flutter.Vue.Angular.React.iOS.Android等众 ...

最新文章

  1. 操作系统思考 第二章 进程
  2. Python 调试工具 PDB(Linux 环境下调试)
  3. 从90年代的SRNN开始,纵览循环神经网络27年的研究进展
  4. Vue.js 运行机制全局概览浅读
  5. 开源公司黄页之腾讯开源软件推荐
  6. sublime text3的一些小技巧记录(配gif图)
  7. P1725 琪露诺 题解(单调队列)
  8. linux系统声卡安装教程,Linux操作系统声卡驱动的安装与配置
  9. Shiro 实战教程(上)
  10. 一键发圈,一键转发到微信朋友圈或者微信好友
  11. 电池包IPX9K、IPX9测试目的
  12. 教你如何用PCtoLCD2002生成字模以及软件的下载
  13. python代码~小人比心表白
  14. epub 电子书的制作
  15. PostgreSQL 源码解读(32)- 查询语句#17(查询优化-表达式预处理#2)
  16. 啥叫工程?啥叫工程师?
  17. postgis routing pgr_dijkstra道路拓扑分析与方向分析
  18. java[1,2]错题整理
  19. 火山视窗树形框实现取所有根项目文本
  20. SQL将两列合并为一列

热门文章

  1. win7下安装jdk1.8版本
  2. 射级偏置电阻如何稳定基极分压式射级偏置电路的静态工作点?
  3. C语言选择题题库(5)
  4. Jetpack Compose中的Accompanist
  5. 皮尔逊相关系数php,生信分析网站(相关性分析)
  6. kali之httrac:复制网站
  7. 上拉电阻、下拉电阻认识
  8. delphi Align属性
  9. Elton John ------Sorry seems to be the hardest
  10. music Elton John - Home Again