X光图片智能识别云平台的关键技术研究

2019-08-15 10:32赫楠姬光吴倩胡宁
关键词:存储系统X光镜像

赫楠,姬光,吴倩,胡宁

(1.北京市地铁运营有限公司安保部;2.北京声迅电子股份有限公司;3.北京市地铁运营有限公司研发中心)

1 前言

随着地铁智能识别机部署的数量越来越多,智能安检系统承受的运维压力也随之增大。现有的图片管理、模型训练、软件安装和升级通过人工操作,消耗了大量的大力资源,随着大规模的生产部署,系统运维成本将越来越高。因此,本文目的在于搭建云存储平台对安检图片数据实现有效的存储和管理,以及基于容器技术实现模型训练和生产部署自动化。

2 系统架构

X光图片智能识别系统的生产部署方案关键思想是基于云存储和容器技术建立你分布式的存储和开发运维一体化环境,实现X光图片数据的长期保存和有效管理、以及模型训练、智能识别机分布式部署和运维的自动化,重点解决智能识别机系统软件安装,模型文件自动更新等关键问题。系统架构如图1。

图1 系统总体架构

系统的工作流程如下:

(1)数据处理与管理:首先将安检物联机采集的数据保存在云存储系统中的原始数据库中;对原始数据库中的数据进行清洗、预处理和打标签工作,将处理好的数据存储在云存储系统中的训练数据库中;将数据集划分为训练数据集和测试数据集两部分。

(2)模型训练与发布:使用容器平台按照需求新建模型训练GPU实例,并根据X光机设备产商不同分别对云存储中的训练数据进行训练得到多个深度学习模型;当模型构建完成,对模型进行测试,若模型精度符合要求,对模型进行压缩,并将模型发布,保存在云存储系统中的模型数据库中。

(3)模型更新:智能识别机通过容器服务实现模型文件的自动更新;安检员通过智能安检客户端检查并发现新的物品和识别错误的图片并保存,标记后返回保存到云存储中的训练数据库中;定期对更新和扩展后的数据库,训练新的模型,替换智能识别机中的旧模型文件,进一步提高识别的准确率。

智能识别机的软件安装工作流程如下:

(1)基于镜像安装系统软件,包括Linux操作系统,容器服务软件。

(2)启动Docker服务,下载智能识别软件镜像,完成软件安装。

3 云存储技术

云存储基于对象存储技术,基于通用服务器构建,是一个海量分布式存储平台。与当前的网络存储系统相比,云存储具有更高的性价比、更加通用和更方便的使用模式;在需要存储大量数据的应用场合,如图片数据、业务数据等,可以大幅提高存储系统性价比。

图片存储和模型文件均通过云存储系统进行存储,基于HTTP协议标准进行数据传输,非常适用于互联网应用场景。安检物联机或其他终端设备可以更方便地把图片上传到云存储系统,形成新的训练数据。

图2 图片存储结构

图片存储按照图片内容分为原始图片、测试图片、标记图片、训练图片四个部分,分为四个文件夹进行存储,其中标记图片从原始图片复制到标记文件夹后进行标注,标注文件采用符号链接到训练图片和测试图片两个文件夹。图片存储采用文件存储的方式,将所有图片存入ceph文件系统中。

发布的模型文件根据不同设备厂家的名称进行分类存储,然后根据评分分类并存储各个训练模型文件,模型文件的存储采用块存储的方式,将所有模型存入ceph块设备中。

镜像仓库建立在云存储系统中,更新的模型文件采用镜像进行保存,智能识别机可以通过互联网下载最新的镜像文件,实现模型文件自动更新。镜像的存储根据不同设备厂家的名称进行分类,采用块存储的方式存入ceph块设备中。

4 Docker容器技术

Docker是一个开源代码软件项目,让应用程序部署在软件容器下的工作可以自动化进行,借此在Linux操作系统上,提供了一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。

Docker提供了一种静态链接Linux核到应用程序的方式,通过Docker容器可以调用GPUs,因此云平台采用Docker对Caffe深度学习框架的部署。Docker通过一个命令来拉取正确的Docker镜像,可以取代很大部分复杂的部署工作。通过静态的方式将项目中所有依赖项集成进一个压缩镜像中,重用时只需要拉取下来即可。

图3 容器镜像部署

研发人员将所有的系统资源,运行依赖以及环境配置成一个完整的运行环境,构建成若干个可独立运行的Docker镜像。建立私有的镜像仓库,通过push操作将所有需要的镜像存储在镜像仓库中。在任何一台目标主机上都可以通过pull操作将镜像仓库中的新建镜像或更新镜像下载到本地。通过编写Dockerfile或Docker Compose脚本,实现镜像的自动部署和系统集成。不仅测试人员可以在本地主机上快速进行系统应用的测试集成,还可以在用户主机上完成自动化部署和运行。

5 深度学习模型管理与远程更新

X光智能识别云平台采用Docker容器对模型文件进行管理与远程更新。模型文件的管理包括:模型文件的版本控制,生产环境中对模型文件进行跟踪,配合容器服务将模型文件部署到生产环境中,自动重新训练模型。

模型文件的管理还提供自动化工作流用于打包和部署深度学习容器,使用容器打包及其运行时的想相关依赖项。模型文件的管理使用的信息包括:运行时环境选项,以及系统架构文件 、运行时的依赖文件,模型文件或包含模型文件的目录,用户创建的可实现模型评分的程序文件等。

图4 模型管理工作流

将模型文件保存到深度学习模型库,在生产环境中跟踪模型文件版本,为了方便重现问题和监管,模型管理服务会捕获所有依赖项和关联的信息。基于Docker的容器化镜像原生包含生成预测所需的所有必要依赖项,可以使用一个创建的清单在相应的环境中生成基于Docker的容器镜像。基于Docker的容器化镜像可以让企业用户在生产环境中灵活运行这些镜像,使用模型管理,只需要一条命令即可。

深度学习训练出来的模型文件一般相当大,通常在数百MB,甚至数GB,模型文件越大时,基于互联网提供模型更新会越困难。

当采用新的深度学习网络时,会产生一个新的模型。模型训练通过容器平台分布式服务构建并验证模型,发布保存到云存储中的模型数据库中。在部署新版本模型的时候,在更新到智能识别机之前,首先对模型文件进行压缩,从而使模型更新会更轻松。

图5 模型更新管理

云平台采用容器的方式对模型文件进行更新,首先需要技术人员对智能识别机进行Docker的部署,提前将模型文件与其运行的环境打包,构建好镜像并运行相应脚本文件,生成Docker并部署在智能识别机上。

通过Git挂载的方式实现智能识别机中模型文件的同步与更新,当云存储平台有最新版本的模型文件发布时,可发布至Git;同时,智能识别机运行更新脚本,将Git中的最新模型文件进行Pull,使用HTTPS的传输方式将模型文件下载至智能识别机的Docker中。最后将本地的模型文件进行替换。

智能识别机定期扫描本地文件系统,根据文件系统的状态和模型版本控制策略来加载和卸载模型。这样智能识别机可以在系统运行的情况下,通过将导出的模型复制到指定的文件路径,而轻松地部署新的模型

6 结语

本文的研究内容主要在X光图片智能识别云平台的关键技术。云平台关键技术包括基于云存储对X光安检图片进行存储,实现X光原始数据和训练数据的有效管理;基于容器技术建立深度学习模型管理的云平台,解耦环境依赖配置和模型开发,实现模型训练和测试的自动化;同时,基于容器技术实现智能识别机安装部署自动化,并基于不同版本的模型建立智能识别机镜像仓库,为智能识别机提供模型远程自动更新服务。

猜你喜欢
存储系统X光镜像
分层式大数据存储系统缓存调度策略与性能优化
记忆X光机(下)
记忆X光机(上)
仿生武器大揭秘
镜像
天河超算存储系统在美创佳绩
镜像
基于Hadoop 的海量医药电商数据存储系统设计与开发
X光眼镜的神秘历史
镜像