APP下载

全自动模拟目标搜救系统的设计与实现

2016-12-21潘丽静张虹波周婷婷

电脑知识与技术 2016年28期
关键词:目标识别机器视觉

潘丽静+张虹波+周婷婷

摘要:全自动模拟目标搜救系统(搜救系统)使用OpenMV 微型机器视觉模块,采用MicroPython进行编程,实时采集彩色图像,通过LAB色彩模型处理彩色图像精确定位目标,实现目标的全自动抓取、运输及投放。搜救系统为救援物资投放、人员搜救、无人机物流派送等提供理论依据和实验室验证,准确率达98%,平均每次准确追踪仅需83ms,达到了预期的设计目标。

关键词:机器视觉;彩色图像分割;目标识别;OpenMV;MicroPython

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)28-0178-03

Abstract: Automatic simulation target search and rescue system (the search and rescue system in short) utilizes OpenMV micromachine vision module, with MicroPython programming, acquiring real-time color images, processing color images in the LAB color model in order to locate target precisely, implement grab, transportation and delivery target automatically. The search and rescue system provides theoretical basis and laboratory verification for relief goods delivery, search and rescue people, unmanned aerial vehicle (UAV) logistics delivery and so forth. The accuracy is 98%. It only takes 83 ms to precise tracking. That achieves the expected goal.

Key words: machine vision; color image segmentation; target recognition; OpenMV; MicroPython

随着无人机的不断发展,无人机无论是在军用、民用,还是商业化的应用上都越来越广泛。现代化战争对武器系统的防御能力要求越来越高,因此需要研制功能精度兼备,且反应灵敏的战斗或侦察机。[1]在自然灾害勉强,更能显出人力的微弱,无人机在灾害物资运输、人员搜救上的应用也必然成为趋势。[2]随着电商的兴起,也引起了物流行业的人员紧张,在条件比较有限的地区,依靠人力进行物流配送也遇到了一定的困难,无人机物流配送将解决这一难题。直升机是典型的军民两用产品,可以广泛地应用在运输、巡逻、旅游、救护等多个领域。论文针对以上三个问题,设计并实现了一个直升机搭载的、实时性好、可靠性高,且无人为干预的全自动模拟目标搜救系统。

1 搜救系统开发环境介绍

1.1 MicroPython

Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。MicroPython是一个Python 3的精简和高效的实现编程语言,它包含了Python标准库的一个小子集,同时优化了在微控制器和受限环境中的运行。借助MicroPython,用户完全可以通过Python脚本语言实现硬件底层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。

1.2 OpenMV

OpenMV是一个基于STM32F4xx ARM Cortex-M4 单片机和OV2640 图像传感器的开源微型机器视觉模块。OpenMV上搭载了一个MicroPython解释器,能够使用Python编程来实现一系列功能,包括IO 端口的控制、读取文件系统等基础功能,也可以实现人脸检测和跟踪、关键点提取、颜色跟踪等功能。

1.3 LAB色彩模型

LAB是由明度(Luminosity)和有关色彩的a、b三个要素组成。L表示明度,a表示从洋红色至绿色的范围,b表示从黄色至蓝色的范围。LAB色彩模型不依赖于设备、色域宽阔,它包含了RGB、CMYK的所有色域,人的肉眼能感知的色彩,都能通过LAB模型表现出来。另外,LAB色彩模型弥补了RGB色彩模型色彩分布不均的不足。搜救系统为了在图像的处理过程中保留尽量宽阔的色域和丰富的色彩,最终选择了LAB色彩模型。

2 全自动模拟目标搜救系统设计

2.1 全自动模拟目标搜救系统模块设计

全自动模拟目标搜救系统主要包括飞行机器人控制模块、机器手控制模块,目标自动追踪模块,如图1所示。

飞行机器人控制模块,由于直升机静稳定性不好,所以需要控制器对其进行增稳和控制,以使系统性能满足特定的指标要求。[3]飞行机器人控制模块通过陀螺仪来控制增稳,使飞机自动保持定向飞行。[4]在飞机着陆并进入稳定状态后,飞行机器人控制模块会触发机器手控制模块,并等待机器手模块返回启航信号。

机器手控制模块,在收到抓取/投放信号后,触发目标自动追踪模块以获得目标的坐标,在获得目标坐标后触发目标自动追踪模块进入休眠状态。为了保证抓取稳定性,机器手控制模块通过大力螺旋的收取规划方法,在获得目标坐标后,螺旋下落抓取目标。[5]在获得目标后触发飞行器启航,直达再次被触发启动时释放目标。

目标自动追踪模块,主要实现目标的自动定位及实时追踪,在机器手操作期间进行路线实时校正。[6]该模块通过图像传感器实时获取图像,然后对获得的彩色图像进行阈值分析,选取指定目标,获取目标的中心坐标,传输给机器手控制模块。[7]该模块实时追踪的中心坐标,为机器手提供目标的坐标,防止机器手在操作期间出现路线的偏移,确保目标的准确定位。

2.2 全自动模拟目标搜救系统流程设计

全自动模拟目标搜救系统流程(图2)说明:

1) 飞行机器人稳定飞往目标区域,当机器人进入稳定状态,机器手控制模块通过串口通信向目标自动追踪模块发送搜索指令。

2) 目标自动追踪模块收到搜索指令后,通过对LAB色彩模型的彩色图像进行阈值分割,并锁定目标。目标自动追踪模块在获得目标中心坐标后,将结果传输给机器手控制模块,等待机器手返回睡眠指令,该模块进入睡眠状态,等待机器人的下一个搜索指令。

3) 机器手控制模块在获得目标中心坐标后,进行目标抓取,在抓取到目标后传输指令触发目标自动追踪模块进入休眠状态,并触发飞行机器人控制模块进行下一个操作。

4) 机器手在抓取到目标后触发飞行机器人,进行返航。

5) 飞行器自主返航到安全区,触发机器手释放目标,判断目标是否全部解救,如果不是则跳到1.,否则结束飞行,目标全部被解救。

3 目标自动追踪模块实现

目标自动追踪模块采用OpenMV摄像头开发板上的 M12镜头座子,和一个 2.8mm焦距、92°视角的镜头来获取实时图像。模块在OpenMV上搭载的MicroPython 解释器进行图像处理,通过LAB色彩模型进行彩色图像阈值分割,通过形态学特性选取对目标进行定位,从而实现目标的识别和追踪。[8]

搜救系统提前设置目标特征阈值、目标数量,每次仅对一个目标进行追踪。目标自动追踪模块通过MicroPython 中image 库中的find_blobs函数进行目标的搜索。find_blobs函数通过参数thresholds 确定目标的阈值范围,对于彩色图像,thresholds是一个一维数组,包含六个LAB色彩模型的阈值参数,该阈值通过试验获得,连通ROI(感兴趣区域),并返回一个包含结果坐标、大小等特性的List。为了更精确的获得目标,系统通过给定目标的形态学特性在find_blobs函数返回的List中选取最为匹配的区域,并计算中心坐标。

目标自动追踪模块通过OpenMV 的串口3,对应GPIO ( General Purpose Input Output ,通用输入/输出)为(PB10, PB11),用来与机器手控制模块进行数据交互。机器手控制模块准备就绪后向目标自动追踪模块传送搜索信号。目标自动追踪模块读入搜索信号后启动图像采集传感器。实时采集到的图像经过处理后,将中心坐标再通过串口3写出,并停止搜索目标直到下一个搜索信号到来。

4 仿真结果

仿真运行在Windows 8.1 64位系统, Intel(R) Core(TM) i5-3210M CPU @2.50 GHz 处理器,2G内存,在OpenMV IDE 环境下进行,先预设目标的阈值范围、形态学参数,并等待搜索信号。

4.1 目标自动追踪仿真

在收到搜索信号后,目标自动追踪模块启动摄像头传感器获取彩色图像,图像大小为320*240,帧速率为15 FPS。该模块通过预设的目标阈值范围对图像进行阈值分割,并获得目标的中心坐标,图3展示的是图像传感器获取的图像经过处理后将目标的坐标标示出来。图4展示出该图像在LAB色彩模型下的直方图。

4.2 串口数据传输仿真

串口通信的原理如图5 所示。

目标自动追踪模块在系统启动后进入等待状态,直至收到来自机器手控制模块的搜索信号。此时,该模块将运行目标自动追踪程序,并将获得的中心点坐标反馈到串口3,并进入等待状态。机器手控制模块收到中心点坐标后向目标自动追踪模块反馈一个标志数据,并结束本次通信。目标自动追踪模块在收到这个标志数据后结束本次通信,等待下一次唤醒。通信仿真如图6所示。

5 结束语

通过全自动模拟目标搜救系统可以对目标进行准确的抓取与投放,准确率达98%。同时,系统采用的摄像头传感线频率快,系统的图像处理速度快,平均每次准确追踪仅需83ms,具有良好的时效性。由于OpenMV搭载的图像传感器像素较低,获得的图像信息量有限,这就是使得飞行机器人必须精确的导航到目标区域。

参考文献:

[1] 朱娟. 全自动目标坐标测定仪通信系统设计与实现[D]. 南京: 南京理工大学, 2010.

[2] 章逸丰. 基于视频的运动物体的实时检测与跟踪[D]. 杭州: 浙江大学, 2008.

[3] 蔡华. 直升机控制律设计及仿真研究[D]. 西安: 西北工业大学, 2007.

[4] 刘歌群, 刘卫国, 卢京潮. FUTABA陀螺仪的辨识及在无人机中的应用[J]. 航空精密制造技术, 2005, 41(6): 56-58.

[5] 莫海军, 黄平. 基于最大力螺旋多指手抓取规划[J]. 机械工程学报, 2009, 45(3): 258-262.

[6] 沈宝国, 顾寄南, 陈雪芳, 等. 基于单目视觉的零件抓取信息提取技术[J]. 制造业自动化, 2012, 34(9): 24-26.

[7] 庞晓敏, 闵子建, 阚江明. 基于HSI和LAB颜色空间的彩色图像分割[J]. 广西大学学报:自然科学版, 2011, 36(6): 976-980.

[8] 侯云峰, 阳丰俊, 杨效余. 基于形态学重构运算的地面目标识别算法[J]. 国土资源遥感, 2012, 94(3): 11-15.

猜你喜欢

目标识别机器视觉
渡口水域安全监管技术研究
渡口水域安全监管技术研究
大场景三维激光扫描仪在研究生实践教学培养中的应用
移动机器人图像目标识别