APP下载

阿里云机器学习PAI 平台在驾驶行为识别上的应用

2021-05-13刘永志

通化师范学院学报 2021年4期
关键词:计算资源图像识别阿里

林 峰,刘永志

2020 年4 月,中国社会福利基金会等机构发布了《道路交通安全调研报告——2019 年度:不良驾驶行为》.报告指出分心驾驶、疲劳驾驶等不良驾驶行为是造成2019 年度中国道路交通事故的最主要原因.因此如何有效识别车辆司机驾驶状态,对分心驾驶、疲劳驾驶等危险行为进行及时预警,对减少车辆交通事故的发生具有重大意义[1].

近年来,随着行车记录仪的普及,通过对驾驶人员实时影像检测,快速识别不良行为并告警已逐渐成为解决不良驾驶行为的主流方案[2-3].在该方案中,基于深度学习的图像识别技术被广泛使用,并已在实践中被证实具有较高的性能和准确性[4].但是传统的深度学习图像识别技术存在以下不足:一是需要开发人员掌握深度学习相关理论知识,能够熟练使用Keras、TensorFlow 等第三方代码库,并具备手工搭建多层人工神经网络模型的能力;二是深度学习模型训练的过程往往需要消耗大量的计算资源,若开发人员硬件资源受限,将无法进行大规模图像识别模型的构建;三是图像识别模型一旦训练完成后,缺乏便捷的手段将其快速部署,实用性不强[5-8].

机器学习PAI 平台是阿里云计算有限公司开发的一款在线机器学习平台.基于阿里云自身丰富的技术积累和强大的云计算资源,开发者只需准备训练数据集,PAI 平台可提供数据预处理、数据分析、数据可视化、模型评估、模型发布等一站式服务.Auto Learning自动学习模块是机器学习PAI 平台中的重要组件之一.在图像识别问题上,只要训练集数据质量得到保证,Auto Learning 自动学习模块就能快速训练足够精确的模型,并提供一键发布模型的服务[9].鉴于此,本文利用阿里云机器学习PAI 平台,结合Auto Learning 自动学习模块,构建了线上驾驶行为识别模型,并进行了相关验证和发布试验.

1 机器学习PAI 平台

机器学习PAI 平台(Platform of Artificial Intelligence)是一款阿里云人工智能平台,提供了一站式的机器学习解决方案.PAI 平台起初仅服务于阿里巴巴集团内部业务,致力于让阿里巴巴集团内部开发者能够高效、简洁、标准地使用人工智能技术.随着平台技术的不断积累,2018 年机器学习PAI 平台正式商业化,目前已积累了数万企业客户和个人开发者,是国内领先的线上机器学习平台之一.机器学习PAI 平台具有如下优点:①支持一站式机器学习,使用者只需要准备好训练数据(注意:数据通常存放在阿里云OSS 或MaxCompute 系统中),数据上传、数据预处理、特征工程、模型训练、模型评估及模型部署等环节均可在阿里云PAI 平台中操作实现.②对接阿里云DataWorks 大 数 据 平 台,支 持SQL、UDF、UDAF、MR 等多种数据处理方式,灵活性较高.③生成模型的实验流程支持DataWorks 平台周期性调度,且调度任务可区分生产环境和开发环境,确保数据安全性.

机器学习PAI 平台主要提供了可视化建模PAI-Studio、交互式AI 研发PAI-DSW,以及自动化建模Auto Learning 三种使用模式.其中Auto Learning 模式提供了自动机器学习服务,支持在线标注、自动模型训练、超参优化及模型评估等常见机器学习操作.使用者只需准备少量标注数据,设置训练时长,就可以得到深度优化的人工智能算法模型.

2 基于机器学习PAI 平台的驾驶行为识别

2.1 数据准备

本文实验数据来源于大数据算法竞赛平台Kaggle(赛题:State Farm Distracted Driver Detection),涉及26 位司机、10 种驾驶行为,合计22 424 张图片.每张图片尺寸均为640×480,约占40 KB 存储空间.原始数据集体量较大,为方便实验,抽选了具有代表性的两名司机(司机编号:p021、p022)的样本数据,并随机拆分为训练集(图片数量:1 100)和测试集(图片数量:220).其中图片示例如图1 所示,数据集分布见表1.

图1 训练样本示例

表1 数据集分布

阿里云PAI 平台中图像识别模型依赖的训练数据需存储于OSS 平台中.OSS(Object Storage Service,对象存储服务)平台提供面向海量数据规模的分布式存储服务,具有稳定、可靠、安全、低成本的特点.在OSS 平台中创建存储空间(亦称之为Bucket),新建目录,并通过专用客户端工具oss-browser,将1 100 张训练集图片进行上传.值得注意的是,需要创建相应的RAM 角色(角色名:AutoLearningRole),并赋予AliyunOSSFullAccess 权限,阿里云PAI平台才能访问OSS 平台图像数据用于模型训练.具体角色创建及赋权操作可见阿里云相关帮助文档,此处不作赘述.

2.2 创建Auto Learning 实例

进入阿里云机器学习PAI 平台,在“自动学习(Auto Learning)”栏目中,创建实例.其中在“创建实例”对话框中,选择实例类型为“图片分类”,并设置标注配置文件OSS 路径.标注配置文件为CSV 文本文件,需手工生成,用于指定训练集中各图片所属类别.文件内容包含样本ID、图片文件OSS 路径,以及类别标注等信息,内容格式如下所示:

0,{"tfspath":"oss://linfengbucket.oss-cn-shanghai.aliyuncs.com/distracted_driver_detection/train/img_58285.jpg"},{"option":"c0"}

2.3 模型训练及评估

在Auto Learning 自动学习页面中,通过随机抽查,确认训练图片标注无误后,即可进入模型训练及评估阶段.点击页面下方“完成标注”按钮,弹出“开始训练”对话框.配置最大训练时长为60 分钟后,点击“开始训练”按钮.截止本文撰写时,阿里云PAI 平台Auto Learning 自动学习模块仍处于公测阶段,配置参数“最大训练时长”不能超过60 分钟,对训练模型所消耗的阿里云计算资源无需付费.经过约11 分钟时长的训练,驾驶行为识别模型指标数据已达到预期:准确率99.08%,模型训练结束.

2.4 模型部署和测试使用

模型训练完毕后,可进行EAS 部署.阿里云EAS(Elastic Algorithm Service,弹性算法服务)支持将所训练的模型发布为在线预测服务,通过RESTful API 形式供第三方系统或平台使用.本文以流行的Python 编程语言作为实例,本地测试客户端通过阿里云提供的eas-prediction 库,进行模型在线接口调用,核心代码如下所示.

# 引入模块

from eas_prediction import PredictClient

from eas_prediction import StringRequest

# 初始化客户端

client=PredictClient("接口公网URL地址")

client.set_token("接口TOKEN码")

client.init()

# 构造请求参数

request=StringRequest(′{"image":"待预测图片base64编码"}′)

# 预测

response=client.predict()

print(response.response_data.decode())

在线预测服务返回的结果为JSON 字符串,提供了上传图片所属各类别的概率,形如:

{"class_probs": {"c9": 2.4398683962090217e-08, "c8":1.7996175074586063e-06,……},"success":true,"request_id":"ff281367-4d25-435b-8cca-69b653ed5e48", "class_name":"c6","probs":[3.242876633891001e-09,5.356615773166595e-08,……],"predictions":3,"class":3}

通过使用PAI 平台在线预测服务,结合上述核心Python 代码,对含220 张驾驶图片的测试集进行了预测分析,比对真实情况,220 张图片驾驶行为均被准确识别,准确率为100%.同时经过测试,平均每张图片预测耗时1 160毫秒,不超过1.5 秒,满足驾驶行为检测性能要求.

3 传统本地线下模式比对

为与机器学习PAI 平台方式进行对比分析,本文使用Python 编程语言,依托深度学习开源库Keras(版本号:2.2.5)、TensorFlow(版本号:1.15.3),开发了CNN 卷积神经网络模型.所设计的本地模型包含了卷积层、池化层、全连接层等结构,合计参数12 946 890 个.使用上述与机器学习PAI 平台方式相同的1 100 张图片进行模型训练,在个人计算机中(CPU:1.8 GHz、4 核,内存:10 GB、DDR3)耗时约222 分钟(3.7 小时),模型准确度及损失函数(categorical_crossentropy)逐渐收敛,如图2 所示.

图2 线下模型准确度、损失函数收敛曲线

通过对含220 张图片的测试集进行测试,成功预测193 张图片所属驾驶行为,准确率为87.73%,此外平均每张图片预测耗时43 毫秒.结合模型训练耗时、测试集准确率、平均每帧图片预测耗时及费用等因素,将本地开发模式与在线PAI 平台模式进行对比,具体情况见表2.基于PAI 平台Auto Learning 模式的方法具有如下特点:①操作人员不需要掌握额外的编程方法和深度学习技术,能够将主要精力集中于训练数据的采集和标注上.②依托阿里云IT 技术积累,图像分类模型准确率较高.③可弹性提供模型训练依赖的计算资源.④易于将模型发布为线上服务,方便其他系统或平台使用.⑤资费合理,使用者无需承担过高的费用,即可享受机器学习模型的训练、测试、发布等一站式服务.

表2 两种模型训练模式对比

4 结语

本文基于阿里云机器学习PAI 平台,结合Auto Learning 自动学习模块,利用1 100 张含10种驾驶状态的车内影像数据,构建了一个高性能的线上驾驶行为识别模型.该方案解决了传统本地线下模型训练方式深度依赖开发能力和计算资源的缺陷,后续计划将进一步丰富数据集,提升模型在多场景、多尺度情况下驾驶行为识别准确率.

猜你喜欢

计算资源图像识别阿里
基于模糊规划理论的云计算资源调度研究
云上阿里
辰辰带你游阿里
改进快速稀疏算法的云计算资源负载均衡
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
基于Wi-Fi与Web的云计算资源调度算法研究
耦合分布式系统多任务动态调度算法