蔡祺燊
(东南大学 江苏省南京市 211189)
本文以物体辨识系统为主要设计对象,向其中融入了云服务器图像处理技术,连接至智能手机APP,调动设备的摄像头,通过蓝牙配置的方式调控其Wi-Fi/4G 通讯模块,在形成稳定的联网配置关系后将采集单元对接至服务器,此后根据用户的需求开启摄像头,以便快速采集图像信息,利用Wi-Fi 模块和4G 模块传输,服务器可及时获取完整的信息。此处深度优化了服务器,搭建了图像处理平台,能够以用户的需求为导向执行图像处理操作,所得结果可完整反馈给用户。系统结构组成见图1。
本文设计的物体辨识系统有别于传统的嵌入式识别体系,采用了阿里云服务器作为计算中心。云服务器简称ECS,是近十年来新兴的一类互联网基础设施服务,相对于传统的服务器,云服务器具有更高的安全可靠性,计算能力可以弹性变化,在管理便捷性上也有显著的优势,使用云服务器的方案能够降低运维的难度和成本,使程序框架开发更专注于核心业务。另一方面,相比于在树莓派中直接使用嵌入式系统的识别体系,云服务器模式能够容许更强的计算能力,图像识别的应用需要耗费大量算力,嵌入式设备由于体积等原因难以提供理想的算力,因此采用云服务器模式,牺牲少量的网络传输延时换取更快的CPU 和GPU 计算速度,提高软件的整体响应速度,这是十分值得的。在本文最后一部分将云服务器模式与嵌入式的图像识别效率进行对比,结果差距明显,证明了云服务器模式的优越性。
本系统共包含四个层次,各自负责特定的功能,具体作如下分析:
(1)视图层。打破管理系统与用户相互独立的局面,使其形成交互关系,借助Ajax 实现网页设计。用户以浏览页面为载体,根据自身意向发送请求,尽管服务器并未完成整个响应过程,用户依然可根据实际情况利用页面执行其他操作。此外,Ajax 解决了以往Web 页面丢失概率较大的问题;在Ajax 的支持下无需再次加载页面,仅需修改特定的响应模块,给服务器的运行营造了良好条件,避免超负载运行的情况。此外,视图层融入了缓存机制,特定期间内的查询结果可以得到保留,用户无需重复执行查询操作。得益于Ajax 和缓存机制,可提高网页流畅性、改善用户体验。
图1:系统整体结构图
(2)业务逻辑层。整个系统的组成中,业务逻辑层是最为核心的部分。其中特征模块的主要作用在于提供抽象类imfeature,采集所得图像的各特征都继承该抽象类,能够达到对图像特征完整存取的效果;特征提取器的主要作用在于提供抽象类Extractor Base,用户可根据实际需求完成查找或上传操作;图片DB 的DAO 组件具有高度的系统性,其封装了数据库的各项原子操作,具体涉及到增、删、查、改等,对于任何数据表而言,与之相匹配的持久化类都必须实现该DAO 接口,主要目的在于执行类之间的解耦合,达到可靠、高效的效果。
(3)控制层。在设置好视图层和逻辑层后,通过控制层的作用可实现彼此间的高效通信,具体涉及到业务逻辑转发、翻页请求处理等,给业务逻辑层的应用提供了正确引导,使其能够选择相适应的DAO 组件。
(4)模型层。此部分的基本特点在于封装基础类Image 和Tag,此时借助ORM 框架便可达到便捷化访问数据库的效果,为系统的运行创设良好通道,使其以面向对象的方式高精度操作数据库,保证了全程的秩序性,相关操作有条不紊推进。
数据库是各类信息的存储场所,其包含了特征数据库和图片数据库两部分。本系统主要面向数据库做好相应的设计,保证操作和逻辑功能的合理性,以便用户可以根据需求快速查找特征,或是对其采取新建、删除等相关操作。
(1)数据库需求分析。系统应根据图片获取与之相对应的Tag信息;系统应具有高效存储图片的能力,且不遗漏任何的Tag 信息。
为满足上述需求,针对数据项加以优化,主要内容有:①图片信息:涉及到的数据项包含图片编号及其存储路径;②标注信息:涉及到的数据项较为丰富,具体包含标注标号、标注内容、图片编号等多个部分。
(2)数据库物理结构。以ORM 框架为依托实现持久层访问。ORM 框架可完成对持久化对象的操作转换,使其变为数据库的操作,经过此流程后可实现持久对象向关系数据库的映射。从组成方面来看,ORM 框架内各对象的实例并非单独存在,均对应至数据库内某特定的记录,因此若通过应用程序操作对象实例,其本质上指的是对数据库记录的操作。数据库的操作借助DAO 模式实现,配置的DAO 组件具有高度集成特性,其封装了对数据库的各项原子操作,具体包含增、删、改等。系统使用了Spring,作用在于对DAO 组件提供配套化的工具类。若依据ID 查询图片,经调用后可以定位到Image 的对象实例,其操作机制类似于查询数据库过程中所使用到的SQL 语句。若借助面向对象的语言完成对特定项目的开发工作,此时在持久层的数据库访问时将发生迂回的现象,即再次回归至关系数据库,显然该机制具有很强的繁琐性。在此背景下,ORM 框架的应用能够提供可靠的解决途径,面向对象的程序设计工作具有便捷化、高效化的特征,充分彰显出关系数据库的应用优势。
表1:测试结果分析
本系统的形成建立在ISimilar 项目架构的基础上,因此并未涉及到对底层数据的存取操作,核心要点在于对数据库逻辑操作展开相应的设计。
系统提取的特征主要为HFile 文件类型,此部分将被完整存储在HadoopHDFS 文件系统上。从归属关系来看,Hfile 隶属于Hadoop 的范畴,为典型的二进制格式文件,可将其视为Key Value数据的存储格式。
3.4.1 图像查询、上传模块算法设计
系统运行全流程中,获取图片Http 流为基础操作,对其执行解析处理以形成图片,作出上传或查询的选择。若为上传则将图片加载至已创建的图片数据库内,借助JNI 调用的C 端图片特征提取模块,在其支持下识别图像特征;所得的特征被完整增添至特征数据库内,借助LSH 生成Hash 值,确定包含了生成Hash 值的特征点集合,向其中增添该特征。若作出查询的决策,此时JNI 将调用C 端图片特征提取模块,在其支持下识别图片特征;调用LSH,从而将各特征值生成相匹配的Hash 值,确定与该值相一致的特征点,对其实行SURF 加颜色距离的筛选,经过此流程后将得到相似的特征点集合;此后,以所得的特征点为基本对象,通过其中的imageId 完成对图片的排序投票操作,可确定相似图片的排序。
3.4.2 数据库管理模块的设计
MetricSpace 类可实现对特征DB 的管理,具体执行的操作形式丰富,包含新建或删除特征DB、查找特征等。算法函数调用遵循自上而下的操作流程。提取图像的各个特征值,借助LSH 的相关API 调用Hash 集合,对其执行处理以及数据的转换等相关操作,由此可求得特征所属图片的ID,再完整统计具体的票数,从而得到相应的查询结果。
3.4.3 图像分类模块的设计
提取图像特征,在获得相应的特征后对其执行K-means 聚类操作,随之形成编码本,在此基础上借助LLC 方法可以再次编码,由此产生新的特征,通过SPM 的思想处理此类新增的特征,再通过LIBSVM 完成丰富的训练以及学习操作,经过上述流程后将返回分类结果[1]。
LLC 特征编码的全流程中,除了LLC 编码特征的存储具有特殊性外,剩余都可以被归为控制层。在针对进程的管理工作中,若指定的特征集合并未发生任何变化,此条件下extrkmeans 进程运行的次数至少达到1 次。
SPM 算法主要服务于图像分割处理之后,将图像的空间信息以合理的方式完整呈现。图像共包含3 层,其共同之处在于各层金字塔每行的patch 个数都为2^l,其中的意义在于1 代表层次,与此同时patch 分别为{1,4,16}。在形成各个patch 后将各自的特征连成整体,将其视为图像的基本特征。通过SPM 算法的应用可以高效呈现图像的空间信息,在图像识别方面的效果更加良好,具有高精度、高效率识别的特征。
软件是系统设计中的重点对象,具体涉及到两部分的程序编写工作,即云服务端控制软件和物体识别。
云服务器端控制软件的设计建立在Win10 系统服务器中,借助JAVA 环境完成相应的编写工作。该软件采用了TCP/IP 协议,通过此方式实现摄像头采集单元的高效对接,使其与手机APP 形成稳定的通讯关系,当采集单元获得特定的图像后,以最快的速度执行图像处理操作,获得结果后及时反馈[2]。本系统设计工作中高度重视物体识别脚本程序的选择,建立了Python 环境,灵活应用了SSD+Caffe 的目标检测方法,以达到高效率检测视频流的效果。
经过上述分析后,初步提出了物体辨识体系的设计方案,为验证其功能使用情况展开了测试。选取嵌入式机器视觉模块OpenMv作为对比分析对象,以便更为客观地分析所提方案的使用情况。OpenMv 嵌入式机器视觉模块所涉及到的算法较丰富,具体包含寻找色块、边缘检测等多种类型,测试时调用了其中的nn_cifar10 神经网络,在其作用下识别物体,同时将文中所提的物体辨识体系对比分析。按照上述方法重复多次试验,完整记录所得结果,见表1。
本文围绕物体辨识体系的设计工作展开探讨,以云服务器为主要载体,采集实时视频流,在终端控制系统的支持下辨识物体图像,产生的结果可及时反馈给用户。云服务的应用优势在于计算资源丰富,可在短时间内快速完成部署,处理性能大幅提升,且模块化设计还可扩宽本产品的适用范围,使其在多数场景中都具有可行性,达到缩短研发周期、减少成本以及提高效率等多重效果。