DP读书:《ModelArts人工智能应用开发指南》(一)人工智能技术、应用平台

怎么用ModelArts人工智能应用

训练底座

训练案例

盘古矿山模型

Main

下面是快速助手

https://support.huaweicloud.com/qs-modelarts/modelarts_06_0006.html

准备开发环境

在ModelArts控制台的" 开发环境 > Notebook"页面中,创建基于pytorch1.8-cuda10.2-cudnn7-ubuntu18.04镜像,类型为GPU,规格选择Pnt1或Vnt1系列的Notebook,具体操作请参见创建Notebook实例章节。

如果需要使用本地IDE(PyCharm或VS Code)远程连接Notebook,需要开启SSH远程开发。本案例以在线的JupyterLab为例介绍整个过程。

Notebook创建完成后,状态为"运行中"。单击"操作"栏的"打开",进入JupyterLab页面。

打开JupyterLab的Terminal。此处以Terminal为例介绍整个过程。JupyterLab更多操作请参见JupyterLab简介及常用操作。

图1 打开Terminal

Step1 创建算法工程

在JupyterLab的Terminal中,在work目录下执行ma-cli createproject命令创建工程,根据提示输入工程名称,例如:water_meter。然后按回车键选择默认参数(连续按五次回车),并选择跳过资产安装步骤(选择6)。

图2 创建工程

执行以下命令进入工程目录。

cd water_meter

执行以下命令复制项目数据到Notebook中。

python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_crop

python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_segmentation

说明:

{obs_dataset_path}路径为Step1 准备数据中下载到OBS中的数据集路径,比如"obs://{OBS桶名称}/water_meter_segmentation"和"obs://{OBS桶名称}/water_meter_crop"

图3 复制数据集到Notebook中

Step2 使用deeplabv3完成水表区域分割任务

执行如下命令安装ivgSegmentation套件。

python manage.py install algorithm ivgSegmentation==1.0.2

图4 ivgSegmentation套件安装成功

如果提示ivgSegmentation版本不正确,可以通过命令python manage.py list algorithm查询版本。

安装ivgSegmentation套件后,在JupyterLab界面左侧的工程目录中进入"./algorithms/ivgSegmentation/config/sample"文件夹中查看目前支持的分割模型,以sample为例(sample默认的算法就是deeplabv3),文件夹中包括config.py(算法外壳配置)和deeplabv3_resnet50_standard-sample_512x1024.py(模型结构)。

图5 进入sample文件夹

表盘分割只需要区分背景和读数区域,因此属于二分类,需要根据项目所需数据集对配置文件进行修改,如下所示:

修改"config.py"文件。

图6 修改sample文件夹下的config.py文件

复制代码
```c
# config.py
alg_cfg = dict(
data_root='data/raw/water_meter_segmentation',   
# 修改为真实路径本地分割数据集路径
```

修改完后按Ctrl+S保存。

修改"deeplabv3_resnet50_standard-sample_512x1024.py"文件。

图7 修改deeplabv3_resnet50_standard-sample_512x1024.py文件

复制代码
# deeplabv3_resnet50_standard-sample_512x1024.py

gpus=[0]
...
data_cfg = dict(
    ...    num_classes=2,  # 修改为2类
    ...    
    ...    train_scale=(512, 512),  # (h, w)#size全部修改为(512, 512)
    ...    train_crop_size=(512, 512),  # (h, w)
    ...    test_scale=(512, 512),  # (h, w)
    ...    infer_scale=(512, 512),  # (h, w)
 )

修改完按Ctrl+S保存。

在water_meter工程目录下,执行如下命令安装deeplabv3预训练模型。

复制代码
python manage.py install model ivgSegmentation:deeplab/deeplabv3_resnet50_cityscapes_512x1024

图8 安装deeplabv3预训练模型

执行如下命令训练分割模型。(推荐使用GPU进行训练)

复制代码
python manage.py run --cfg 

algorithms/ivgSegmentation/config/sample/config.py --gpus 0

图9 分割模型训练结果

训练好的模型会保存在指定位置中,默认为"./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/"中。

验证模型效果。

模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。

修改"config.py"文件,修改完按Ctrl+S保存。

config.py

复制代码
...

alg_cfg = dict(

...

load_from='./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/checkpoint_best.pth.tar', # 修改训练模型的路径

...

)

执行如下命令计算模型指标。

python manage.py run --cfg

algorithms/ivgSegmentation/config/sample/config.py --pipeline evaluate

图10 模型指标计算结果

模型推理。

模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化,首先需要指定需要推理的图片路径。

修改"config.py"文件,修改完按Ctrl+S保存。

alg_cfg = dict(

...

img_file='./data/raw/water_meter_segmentation/image/train_10.jpg' # 指定需要推理的图片路径

...

)

执行如下命令推理模型。

python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --pipeline infer

图11 表盘分割模型推理结果

推理输出的图片路径在"./output/deeplabv3_resnet50_standard-sample_512x1024"下。

图12 水表表盘分割结果可视化

执行如下命令导出算法SDK。

python manage.py export --cfg algorithms/ivgSegmentation/config/sample/config.py --is_deploy

算法开发套件支持将模型导出成一个模型SDK,方便进行模型部署等下游任务。SDK导出的路径为"./export/deeplabv3_resnet50_standard-sample_512x1024/Linux_x86_64_GPU_PyTorch_Common_py"

图13 SDK导出路径

图14 SDK导出示意图

Step3 水表读数识别

执行如下命令安装mmocr套件。

相关推荐
牛客企业服务34 分钟前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
视觉语言导航1 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
**梯度已爆炸**1 小时前
自然语言处理入门
人工智能·自然语言处理
ctrlworks1 小时前
楼宇自控核心功能:实时监控设备运行,快速诊断故障,赋能设备寿命延长
人工智能·ba系统厂商·楼宇自控系统厂家·ibms系统厂家·建筑管理系统厂家·能耗监测系统厂家
BFT白芙堂2 小时前
睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
人工智能·机器学习·机器人·协作机器人·复合机器人·睿尔曼机器人
Fortinet_CHINA2 小时前
工业网络安全新范式——从风险可见性到量化防御的进化
安全·web安全
Brduino脑机接口技术答疑2 小时前
脑机新手指南(二十一)基于 Brainstorm 的 MEG/EEG 数据分析(上篇)
数据挖掘·数据分析
aneasystone本尊2 小时前
使用 MCP 让 Claude Code 集成外部工具
人工智能
静心问道2 小时前
SEW:无监督预训练在语音识别中的性能-效率权衡
人工智能·语音识别
羊小猪~~2 小时前
【NLP入门系列五】中文文本分类案例
人工智能·深度学习·考研·机器学习·自然语言处理·分类·数据挖掘