昆虫机器人海量图像数据并行处理平台的制作方法

文档序号:24075601发布日期:2021-02-26 16:48阅读:100来源:国知局
ch050-10cm工业面阵相机,分辨率2432×2048,最大帧率140fps。采用以ttl信号触发进行外触发硬件解决多台相机的同步拍摄问题,同时利用三块dalsa相机采集卡用于缓存相机采集的高通量视频数据,并以高性能服务器磁盘阵列raid,提高传输速率和通过数据校验提供容错能力。[0008]c.在a、b所述采集系统的基础上构建并行处理集群平台,利用采集到的海量数据基于hadoop一主五从节点构建集群模型,以离线将采集到海量未经处理的昆虫行为图像数据的上传至分布式存储系统hdfs中,其中采用ffmpeg将视频切割为图像后再将图像转换为javacv可识别的流数据,为d所述的并行处理模块作前置准备。[0009]d.所述的d采用mapreduce并行计算框架,程序分布式运行在六个节点上。由于hadoop只定义了面向文本数据的基本数据类型,默认是无法支持图像数据类型,本平台设计出匹配在mapreduce下合适的图像文件数据类型接口,并可根据文件格式类型自动转换成相应程序所需数据流文件,同时设计出图像处理算法的接口,可搭载不同预处理算法对图像进行包括但不限灰度化、中值滤波、图像增强、边缘检测、聚类算法等。[0010]本发明的有益效果:本发明以图像序列处理的效率研究过程中引入mapreduce并行处理技术,在以高通量数据记录平台和基于hadoop并行计算集群的框架下,将记录平台采集的数据作为数据源,对在海量图像处理上表现的性能和优势进行分析,并提出改进优化策略,构建了高效并行的高速运动海量图像处理系统的体系结构。[0011]本发明实现了图像数据到hadoop可直接处理的数据类型的转换,对外提供了支持mapper端搭载不同图像处理算法接口实现并行图像处理功能。同时针对大数据量中海量小文件,在集群框架处理优化设计上,要把大量的小文件通过组合,建立索引,以此合并成一个大文件,减少分片数量从而提高集群处理效率。附图说明[0012]图1为昆虫数据采集记录系统总体设计图;图2为hadoop计算机集群执行过程;图3为mapreduce并行图像处理执行过程;图4为单一map任务处理过程。具体实施方式[0013]为了对本发明的技术特征、目的和效果有更加清楚的理解,下面结合附图和实施例对本发明进一步说明。[0014]以下结合附图1对本发明作进一步说明。本发明面向昆虫机器人的控制神经性实验系统建设基于其行为数据的分布式并行处理实验平台,基于mapreduce分布式并行处理技术应用于昆虫机器人平台视频处理领域,提升本平台对采集到海量图像数据的高效处理能力;该平台解决了多相机同步记录、高通量数据记录采集存储的问题,能够实时完成昆虫机器人的环路控制和行为数据并行预处理等实验,针对昆虫机器人快速飞行时的图像数据能够进行海量数据处理并包含计算和存储功能的并行数据处理,具体内容如下:1.昆虫机器人运动姿态和轨迹数据采集记录系统工作流程:通过多目高速高清摄像机将昆虫在电刺激状态下的行为动作进行拍摄记录,在拍摄过程中通过信号触发器进行外触发硬件同步相机,以高性能磁盘阵列作为高效记录器无损存储高通量数据,将视频数据传送到pc端上位机进行显示和存储。[0015]2.基于mapreduce的分布式处理集群平台:图2为mapreduce分布式执行过程,mapreduce作为一种编程模式,采用了分治思想。hadoop框架实现了以mapreduce思想为主导的分布式并行计算编程,其组件将作业任务分解成map和reduce放置到tasktracker子节点服务器进行运算。子节点收到处理请求后,利用inputformat对hdfs中的数据进行加载,区别于hdfs中的block是物理分片,此处进行逻辑分片split。recordreader将各个分片的数据从hdfs中读取出来以键值对输出作为map函数进行输入,用户程序利用自定逻辑编写map函数进而输出中间结果shuffle进行归并,接着传给reduce函数合并大量来自不用节点map函数的输出结果,并最终写入hdfs中。[0016]3、基于图像并行处理的框架模型改造:hadoop在最开始的设计中,主要是为了满足海量的互联网数据管理的需求,而在mapreduce模型下进行图像文件并行处理时,不能简单地像文本文件一样对图像文件进行分割或者组合。所以在图像领域,系统并不直接支持处理图像。同时hadoop只定义了面向文本数据的基本数据类型,默认是无法支持图像数据类型。要实现对图像数据的并行处理,需要实现图像数据到hadoop可直接处理的数据类型的转换。根据mapreduce模型对hdfs中存储的数据进行处理的基本原理及计算流程,得到相关处理流程如图3所示。本发明主要对当前mapreduce框架进行以下方面的创新扩展:a、图像数据输入设计在mapreduce中键值对的数据类型必须支持序列化,在hadoop中的自定义数据类型都需要实现writable接口或writablecomparable<t>接口,其中实现前者只能作为值类型,实现后者既可以作为值类型也可以作为键类型。传统的mapreduce处理图像数据需要设计相应的值类型来存储图像数据,而本模型的输入文件采用的是图片在hdfs中的路径,这些路径信息是以字符串的形式存储在文本文件中,因此键和值类型直接采用hadoop默认提供的longwritable和text数据类型,longwritable以文本行信息得出帧存储位置进而定义帧单位,而text用来存储每行中记录的图像路径信息。相比传统方法,本模型在输入阶段只需要输入图像的存储路径,网络传输量要比输入图像数据要少,map函数从分片中获取数据时网络传输量也会减少。图像数据在map阶段完成后就直接存储至hdfs中,没有了图像的reduce阶段,进一步地减少了模型中图像数据的传输量。[0017]b、文件输出过程的优化当输入为大量小图像文件时,传统的基于图像数据类型的并行处理模型的方法都是提前将大量小图像文件转换一个大文件进行处理,而本模型采用以图像在hdfs中的存储路径作为值来传递map函数所需参数的方法来解决这个问题,图像数据的获取是在map函数中完成的,见图4。[0018]模型从fileinputformat生成的切片中获取需要的键值对并且传递给map函数。当map函数接收到键值对参数,会根据值中的数据以及定义好的fsdatainputstream,连接到hdfs中的对应路径下读取所需要图像的二进制数据流。模型的数据处理是采用的opencv的方式,利用opencv提供的数据类型mat,将数据流中的二进制数据转换为mat类型后,直接调用基于opencv的图像处理算法实现图像在hadoop中的并行处理,利用opencv简化了图像处理算法的编写。在图像数据处理完成后,返回一个mat类型的数据,在map函数的最后,会将数据转换为图像最初的数据类型(如jpg格式)并存储在当前的数据节点当中,最后将存储在本地的图像上传至hdfs中。传统方法中的map函数接收的来自分片的参数也是键值对的形式,不过其值类型一般都是采用自定义的图像数据类型,将图像数据序列化后存储在对象中,处理后的中间结果也会使用该图像数据类型存储在当前节点,等待着发送给reduce函数。在本模型中,图像数据直接从hdfs中读入map函数中,处理完成后存储至hdfs中,极大地降低了模型中的数据传输量。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1