云服务器内容精选
-
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文件 # 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套件。 python manage.py install algorithm mmocr==0.2.1 安装mmocr套件后,“./algorithms/mmocr/config/textrecog”文件夹中包括config.py(算法外壳配置)和robustscanner_r31_academic.py(模型结构),需要根据所需算法和数据集路径修改配置文件。以下以robust_scanner算法为例。 图15 进入textrecog文件夹 修改“robustscanner_r31_academic.py”,如下所示: ... train_prefix = 'data/raw/water_meter_crop/' # 修改数据集路径改为水表ocr识别数据集路径 train_img_prefix1 = train_prefix + 'train' train_ann_file1 = train_prefix + 'train.txt' ... test_prefix = 'data/raw/water_meter_crop/' test_img_prefix1 = test_prefix + 'val/' test_ann_file1 = test_prefix + 'val.txt' 执行如下命令安装robust_scanner预训练模型。 python manage.py install model mmocr:textrecog/robust_scanner/robustscanner_r31_academic 图16 安装robust_scanner模型 训练OCR模型。 初次使用mmcv时需要编译mmcv-full,该过程较慢,可以直接使用官方预编译的依赖包。 预编译包URL: https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html pip uninstall mmcv -y pip install https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/mmcv_full-1.3.9-cp37-cp37m-manylinux1_x86_64.whl pip install rapidfuzz==2.15.1 pip install numpy -U 修改“./algorithms/mmocr/config/textrecog/config.py”,将EPOCHS(迭代数量)改为2。 图17 修改textrecog文件夹下的config.py文件 图18 迭代数量修改为2 执行如下命令训练OCR模型。(仅使用GPU进行训练,大概需要几分钟) python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py 图19 OCR模型训练结果 训练好的模型会保存在指定位置中,默认为output/robustscanner_r31_academic/文件夹中。 验证模型效果。 模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。 修改“./algorithms/mmocr/config/textrecog/config.py” #config.py ... model_path = './output/robustscanner_r31_academic/latest.pth' ... 执行如下命令验证模型。 python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py --pipeline evaluate 图20 计算模型的指标 可选:模型推理。 模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化。首先需要指定待推理的图片路径,修改“./algorithms/mmocr/config/textrecog/config.py”,具体如下。 ... infer_img_file='./data/raw/water_meter_crop/val/train_10.jpg' # 指定需要推理的图片路径 ... 执行如下命令推理。 python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py --pipeline infer 图21 模型推理结果 推理输出的图片路径在“output/robustscanner_r31_academic/vis”文件夹下。 图22 表盘读数识别结果图 执行如下命令导出算法SDK。 python manage.py export --cfg algorithms/mmocr/config/textrecog/config.py
-
准备数据 登录OBS控制台,创建OBS对象桶,区域选择“华北-北京四”。 登录ModelArts控制台,选择控制台区域为“华北-北京四”。 在“全局配置”页面查看是否已经配置授权,允许ModelArts访问OBS。如果没有配置授权,请参考配置访问授权(全局配置)添加授权。 分别下载本案例的数据集,水表表盘分割数据集和水表表盘读数OCR识别数据集到OBS桶中,单击数据集右侧的“下载”,弹出“选择云服务区域”,选择区域后单击“确定”进入下载详情页面。下载方式选择“ 对象存储服务 (OBS)”,填写OBS路径信息等,详细步骤请参考下载数据集。 OBS路径示例如下: obs://{OBS桶名称}/water_meter_segmentation 水表表盘分割数据集 obs://{OBS桶名称}/water_meter_crop 水表表盘读数OCR识别数据集 从AI Gallery下载数据集免费,但是数据集存储在OBS桶中会收取少量费用,具体计费请参见OBS价格详情页,案例使用完成后请及时清除资源和数据。
-
查询在线服务详情 from modelarts.session import Sessionfrom modelarts.predictor import Predictordef query_service(service_id): sess = Session() model_instance = Predictor(session=sess, service_id=service_id) return model_instance.get_service_info(service_id)if __name__ == '__main__': service_id = '*************************' service_info = query_service(service_id) print(service_info)
-
Step4 部署为在线服务 本次展示仅部署OCR服务, 包括本地部署和线上部署, 部署上线后调用部署服务进行本地图片的推理,获取水表的预测读数。部署在线服务,需要指定OBS桶以便保存部署所需要的文件。 1.在“algorithms/mmocr/config/textrecog/config.py”文件中配置OBS桶。 修改./algorithms/mmocr/algorithm/configs/textrecog/robust_scanner/config.py # 替换为用户自己的OBS桶信息obs_bucket = 'obs://{your_obs_bucket_path}' 2.依次执行下述命令: python manage.py export --cfg algorithms/mmocr/config/textrecog/config.py --is_deploy # 导出部署模型所需文件python manage.py deploy --cfg algorithms/mmocr/config/textrecog/config.py # 本地部署调试 本地部署成功后的输出结果 # ...[Conda environment created successfully.]local_service_port is 127.0.0.1:42153Deploying the local service ...Successfully deployed the local service. You can check the log in /home/ma-user/work/water_meter/export/robustscanner_r31_academic/Linux_x86_64_GPU_PyTorch_Common_py/log.txt[07/05 09:40:14][INFO][ma_cau-deployer.py 49]: { "text": "00326", "score": 0.9999999046325684}[07/05 09:40:14][INFO][ma_cau-deployer.py 59]: ************************ End Deployer ************************ python manage.py deploy --cfg algorithms/mmocr/config/textrecog/config.py --launch_remote本地部署成功后可直接进行在线部署,大约需要12分钟。 图10 部署为在线服务
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格