基于华为云 ModelArts 的轻量图像分类推理服务实践
一、背景与目标
最近接手一个小型工业质检项目,需求是对产线摄像头采集的零件图片做二分类判断:正常或异常。团队人手有限,没有专职算法工程师,因此希望尽量复用云端托管能力,把精力放在数据标注和业务集成上。最终选定的方案是华为云 ModelArts:数据标注、训练、模型管理和在线推理都在一个平台内完成,省去了自建训练集群和推理网关的工作。
二、数据与标注
样本共约三千张,正负样本比例接近 3:1,存在轻度不均衡。先把图片按 8:1:1 划分为训练集、验证集和测试集,并统一缩放到 512×512。标注阶段使用平台内置的标注工具,按目录批量导入后逐张打标签,同时保留一份原始分辨率的副本,方便后期排查模型误判时回看细节。为避免过拟合,训练时开启了随机裁剪、水平翻转和亮度扰动三种增强。
三、训练与调优
训练使用 ResNet50 预训练权重做迁移学习,冻结前面的卷积层,只训练最后的分类头,学习率设为 1e-4,批大小 32,共训练 30 个 epoch。前 10 个 epoch 损失下降很快,第 18 个 epoch 之后验证集准确率基本稳定在 96% 左右。由于正负样本不均衡,除了准确率,还重点关注异常类的召回率,必要时通过调整分类阈值把召回率从 0.89 提升到 0.94,代价是误报略有增加,业务侧可以接受。
四、部署与调用
训练完成后把模型一键发布为在线服务,选择小规格的 CPU 实例即可满足每秒十几张的吞吐需求。调用方式很简单:先用 IAM 账号获取 token,再以 JSON 形式提交图片的 base64 编码,返回结果中包含预测类别和置信度。为了降低时延,客户端做了连接复用和图片压缩,单张端到端耗时从 320 毫秒降到 180 毫秒左右。
五、踩坑与小结
过程中遇到两个问题:一是上传的图片格式不一致,个别 PNG 带透明通道导致推理报错,统一转成 JPEG 后解决;二是首次部署时实例规格选得过大,成本偏高,后来按实际 QPS 下调规格,费用下降约一半。整体来看,用托管平台做这类中小规模视觉任务,从零到可用的周期可以压缩到一周以内,后续如果要扩容,直接调整服务实例数即可,不需要改动业务代码。
- 点赞
- 收藏
- 关注作者
评论(0)