项目使用华为云 ModelArts
AI 开发平台进行训练部署,采用 Mask R-CNN
算法模型进行目标检测,使用 Deep SORT
目标跟踪算法。Mask R-CNN
源于2018年论文《Mask R-CNN》,是何恺明团队作品。Mask R-CNN
指的是在检测出图片中物体的同时为每一实例产生高质量的分割掩码(segmentation mask),算法基于 Faster R-CNN
,在其中添加了实例掩码功能。
运行环境
华为云 ModelArts
AI 开发平台开发环境 notebook - TensorFlow-1.13.1
进行调试,可以上传到自己的开发环境中使用。自己机器需要修改一些路径问题,Windows平台安装 pycocotools
依赖是个问题,建议Linux系统下安装配置环境后使用。
将目录文件夹上传至已创建的桶中,文件过多可能上传失败,建议分目录选择上传。
deep-sort-mask-rcnn
┌─── deep_sort DeepSort目标跟踪算法
│ ├── detection.py
│ ├── generate_detections.py
│ ├── iou_matching.py
│ ├── kalman_filter.py
│ ├── linear_assignment.py
│ ├── nn_matching.py
│ ├── preprocessing.py
│ ├── track.py
│ └── tracker.py
├─── model_data 模型文件数据
│ ├── market1501.pb
│ ├── mars-small128.pb
│ ├── train_mask_rcnn.h5
│ └── README.md
├─── mrcnn Mask R-CNN目标实例分割
│ ├── config.py
│ ├── model.py
│ ├── mrcnn_color.py
│ ├── mrcnn_colors.py
│ └── utils.py
├─── train 平台模型训练
│ ├── mask_rcnn.py
│ ├── instance_segmentation.tar.gz
│ ├── pip-requirements.txt
│ └── README.md
│─── detect_video_tracker_color.py6
│─── detect_video_tracker_colors.py
│─── README.md
│─── run_color.ipynb
│─── run_colors.ipynb
└─── test.mp4
目标检测模型先通过训练得到更高精度的模型,也可以直接使用官方权重模型。
ModelArts
平台训练得到 train_mask_rcnn.h5
模型文件。
开发环境模型调试
将以下目录进行 Sync Obs 同步。
┌─── deep_sort DeepSort目标跟踪算法
├─── model_data 模型文件数据
├─── mrcnn Mask R-CNN目标实例分割
│─── detect_video_tracker_color.py color 统一颜色
│─── detect_video_tracker_colors.py colors 随机颜色
│─── run_color.ipynb
│─── run_colors.ipynb
└─── test.mp4
终端执行方式
- 打开
Terminal
后通过命令,可以看到已同步的文件
cd work
pwd
ls -lh
- 先切换到
tf-1.13.1
环境
source /home/ma-user/anaconda3/bin/activate TensorFlow-1.13.1
# (TensorFlow-1.13.1) sh-4.3$
- 选择执行你需要的识别 py
# 掩膜统一颜色 detect_video_tracker_color.py 文件
python detect_video_tracker_color.py --video_file test.mp4 --min_score 0.3 --input_size 1024 --model_file model_data/train_mask_rcnn.h5 --model_feature model_data/mars-small128.pb
# 掩膜随机颜色 detect_video_tracker_colors.py 文件
python detect_video_tracker_colors.py --video_file test.mp4 --min_score 0.3 --input_size 1024 --model_file model_data/train_mask_rcnn.h5 --model_feature model_data/mars-small128.pb
拥有一个华为云账号
- EI 企业智能 —— ModelArts
- 存储 —— 对象存储服务 OBS
ModelArts
平台需要在全局配置中添加访问密钥才能使用的自动学习、数据管理、Notebook、训练作业、模型和服务可能需要使用对象存储功能,若没有添加访问密钥,则无法使用对象存储功能。
对象存储服务 OBS
创建一个桶进行文件的存储。
选择服务地区:华北-北京四
在 ModelArts
平台中使用 开发环境>Notebook 创建一个工作环境(Python3 | GPU)和选择对象存储服务(OBS)桶内的已创建或已上传的文件夹进行创建,之后可以启动已创建 notebook
进行在线的开发调试和具体的模型训练。使用一些关联文件需要同步到开发环境 work
文件夹内,注意同步文件大小存在指定大小内。
在 ModelArts
平台中使用 训练管理>训练作业 创建:
- 算法来源为常用框架(TensorFlow | TF-1.13.1-python3.6)
- 代码目录,选择已上传的
train
目录 - 启动文件,选择
train
目录内的mask_rcnn.py
文件 - 数据来源为数据存储位置,选择已创建桶中已上传的
train
数据文件夹 - 训练输出位置,选择已上传或创建名为
model_data
的文件夹 - 作业日志路径,选择已上传或创建名为
log
的文件夹 - 选择 公共资源池>GPU 训练更佳
- 运行参数,参考下表:
名称 | 类型 | 说明 |
---|---|---|
data_url | string | 已创建桶中已上传的 train 数据文件夹 |
train_url | string | 已上传名为 model_data 的文件夹 |
image_dim | number | 训练统一图片大小 320/480/512/1024 |
epochs_step | number | 每轮训练载入图片张数,默认 100 |
validation_step | number | 每轮训练后验证张数,默认 20 |
max_epochs | number | 训练迭代次数,默认 10 |
num_gpus | number | 拥有 GPU 数,默认固定为 1 |
ModelArts
平台:
Mask R-CNN
算法模型:
Deep Sort
目标跟踪算法: