本作业分为两个难度,体验作业(低难度)和进阶作业(中等难度),推荐大家先完成体验作业,再尝试进阶作业
进阶作业相比于体验作业,需要额外针对predict.py文件进行修改,增加篮球视频与图片之间的转换工作,后续的推理过程与体验作业一致。创建华为云账号,申请公测、创建OBS桶的流程与体验作业一致,如已完成,可以跳过
进阶作业:输入篮球比赛视频,在ModelArts环境上完成模型推理流程
进阶作业提供:一段篮球比赛视频、模型预测结果(输出mp4格式文件)、源代码
体验作业流程:
1. 申请华为云账号、申请ModelArts华为云昇腾集群服务公测
2. 从链接下载YOLOv3 ckpt文件和源代码
3. 创建obs桶
4. 本地修改predict.py源代码,完成篮球比赛视频的解码和合成工作
5. 上传YOLOv3 ckpt文件、篮球比赛视频和修改后的源代码到obs桶
6. 提交ModelArts 训练作业
7. 等待、查看结果
8. 保存预测结果截图
进阶作业详细步骤
1. 申请华为云账号、申请ModelArts华为云昇腾集群服务公测
注册完毕之后,进入到ModelArts界面,点击昇腾集群公测,完成申请流程
2. 完成申请之后,开始下载所需文件,包括YOLOv3 ckpt文件和源代码文件:
YOLOv3进阶作业一键下载包:
https://ascend-tutorials.obs.cn-north-4.myhuaweicloud.com/yolov3_darknet53/demo/YOLOv3%E4%BD%9C%E4%B8%9A%E4%B8%80%E9%94%AE%E4%B8%8B%E8%BD%BD%E5%8C%85.zip
3. 创建OBS桶,进入官网界面https://www.huaweicloud.com/product/obs.html,点击右上角的控制台按钮
在控制台界面中,在左上角选择北京四节点,同时在左边的弹出式菜单的搜索框中,搜索OBS,并选择“对象存储服务OBS”
此时我们已经进入了OBS对象存储服务的界面,点击右上角“创建桶”按钮:
按照以下模板创建桶:
数据冗余存储策略选择“单AZ存储”
桶名称自己取一个不重复的名称即可
桶策略采用公共读
其他单策略使用默认单即可
点击创建按钮之后,OBS桶就创建完毕了
4. 本地修改predict.py源代码,完成篮球比赛视频的解码和合成工作
由于predict.py默认只能完成图片的处理工作,因此需要用户手动修改代码完成视频到图片之间的转换工作(建议用户使用OpenCV Python库完成解码与合成操作)
为了避免大家不熟悉OpenCV库的操作与使用,这里为大家提供通过OpenCV实现视频转换成图片的样例代码:
5. 上传篮球比赛视频、ckpt文件和修改后的源代码到新建的obs桶中
首先需要将篮球比赛相关的图片放到之前下载的“YOLOv3作业一键下载包”中basketball-dataset/test目录下:
然后上传“YOLOv3作业一键下载包“中的所有文件到新建的obs桶中:
完成对象桶创建之后,点击桶名称进入桶内
点击对象,然后可根据课程要求上传相关文件或文件夹:
上传全部完成之后,截图如下:
6. 提交ModelArts训练作业,类似我们进入OBS的方式,在左侧服务列表的弹出菜单中,在搜索框中输入modelarts,并且选择下面的“ModelArts”
进入ModelArts界面之后,点击左侧“训练管理”,在下拉菜单中点击“训练作业”,进入训练作业界面后,点击中上方的“创建”按钮
创建任务的参数配置参考如下:
创建训练作业界面如下:
代码目录要求更改为“桶名称+目录名+yolov3目录”
启动文件相应变为“代码目录+predict.py”
数据来源选择数据存储位置,存储位置设置为“桶名称+目录名+basketball-dataset/test”
在运行参数一栏,除了系统自动生成的train_url和data_url之外,点击增加运行参数checkpoint_path,参数值更改为“s3://桶名称+目录名+ckpt_files/yolov3-320_168000.ckpt”
然后点击下一步和提交按钮就可以了
7. 等待、查看推理结果
本身推理任务时间是很短的,但如果同时提交任务但人数很多,可能会导致大部分人必须排队等待,等待的时间可长可短,所以到了这一步,大家也可以做一些其他但事情,过一段时间回到ModelArts网页上检查一下作业状态即可
如果显示“运行成功”,即代表推理运行作业已经完成,我们可以,可以点击作业名称,进入到作业内部详情,再点击“日志”,查看输出:
打开日志之后,上下拖动滑动条找到“Upload output image.”的信息
然后打开OBS服务,进入新建的桶中,查看output目录下的内容:
8. 保存output.mp4视频文件,和输入的篮球比赛视频一并上传到个人fork代码仓即可.