《基于嵌入式系统的多摄像头图像采集》由会员分享,可在线阅读,更多相关《基于嵌入式系统的多摄像头图像采集(23页珍藏版)》请在金锄头文库上搜索。
1、智能科学与技术专业智能科学与技术专业基于嵌入式系统的多摄像头图像采集 答辩人: 桂 旻 指导教师:刘忠信2015年6月2日 -1-Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业主要内容-2-研究背景及意义系统硬件平台介绍单摄像头图像采集多摄像头图像采集与图像处理总结与展望注释:DDTL-Distribution Diagram Table Look-upEvaluation on
2、ly.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业-3-研究背景及意义 随着机器视觉技术的发展,越来越多的机器人工作时需要采集周围环境的图像信息。对某些机器平台来说,周围环境的全景信息更是其进行定位、移动规划时所需的必要信息。 本课题的目标在于搭建基于嵌入式的多摄像头图像采集系统。与一般通过特殊设备(如鱼眼镜头、折射反射镜)来实现全景图像采集功能的系统不同,本课题通过多个市面上一般的USB摄像头设备采集周围的
3、图像信息,再通过图像拼接算法将这些摄像头采集到的图像数据合成全景图片。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业系统硬件平台介绍-4- 广州天嵌计算机科技有限公司TQ210开发板采用三星Cortex-A8 S5PV210核心板,CPU运行速度最大可达1GHz,32/32KB一级缓存,512KB二级缓存。自带3D图形加速引擎(SGX540),2D图形加速,最大支持8192819
4、2分辨率。(1) ARM开发板选择TQ210开发板实物图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业系统硬件平台介绍-5- 中心微公司出品中心微公司出品的具有的具有150度广角的度广角的USB摄像头。该摄像摄像头。该摄像头的型号为头的型号为XS998,有有1200万像素,免驱,万像素,免驱,感光元件类型为感光元件类型为CMOS,最大分辨率,最大分辨率为为1280720,支持,支
5、持UVC协议协议(2) 摄像头选择摄像头实物图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业系统硬件平台介绍-6-三摄像头相对位置图 本课题的最终目标是实现基于嵌入式的多摄像头全景图像采集系统。由于需要采集周围环境的全景图像信息,所以对摄像头的位置有一定的要求。摄像头摆放的相对位置如右图所示。(3) 硬件平台搭建Evaluation only.Created with Aspos
6、e.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业单摄像头图像采集-7-一、搭建Android开发环境二、相关驱动介绍三、JNI技术四、图像采集程序Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业搭建Android开发环境-8-(1)安装
7、JDK(Java SE Development Kit);(2)安装Eclipse;(3)安装Android SDK(Software Development Kit);(4)安装ADT(Android Development Tools)插件;(5)在Eclipse中设定Android SDK主目录;Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业相关驱动介绍-9-(1)V4L2
8、(Video for Linux two)驱动/dev/videoXV4L2设备号字符设备驱动程序核心(cdev)V4L2驱动核心平台V4L2驱动(Video_device,v4l2_dev)具体的sensor驱动(v4l2_subdev)摄像头硬件设备用户空间内核空间内核空间硬件V4L2作用效果图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业相关驱动介绍-10-(2)UVC(U
9、SB Video Class) UVC(USB Video Class)是由微软发起的一种USB视频类标准,主要用于摄像头,扫描仪等图像设备。该协议主要用于提供一种基USB的视频图像设备的一种视频图像传输的标准。 UVC驱动的实现源码位于drivers/media/video/uvc/uvc_driver.c中。当系统外接USB图像采集设备如USB摄像头时,系统就会调用该文件,检测USB设备所能实现的功能,将该USB图像采集设备注册成一个V4L2视频设备,并将该video设备文件存放在系统的/dev目录下。Evaluation only.Created with Aspose.Slides f
10、or .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业JNI技术 -11- JNI是Java平台上定义的一套接口标准。它的存在使得Java能和C语言等其它编程语言进行交流,即让Java能调用用C语言编写的代码。具体来看,当Java想调用C语言编写的文件,需先将这个文件生成一个动态链接库,再将这个动态链接库导入到Android程序中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5
11、.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业图像采集程序-12-打开摄像头驱动程序获取驱动功能VIDIOC_QUERYCAP设置视频格式VIDIOC_S_FMT为设备驱动申请帧内存VIDIOC_QUERYBUF映射帧缓存到用户空间mmap()帧缓冲入队列,交给内核驱动VIDIOC_QBUF启动视频采集VIDIOC_STREAMON从缓冲序列中获取一帧视频VIDIOC_DQBUF帧缓冲入队列,交给内核驱动VIDIOC_QBUF停止视频采集VIDIOC_STREAMOFF关闭摄像头驱动程序继续采集是否一、采集流程Evalu
12、ation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业图像采集程序 -13- 二、主要步骤(1) 打开设备文件。(2) 查看设备功能,若设备能采集图像,设置输入图像的格式(3) 设置设备采集的图像编码格式为YUYV(4) 向驱动申请帧缓冲,用来存放采集的图像数据。本系统申请了4个缓冲区。(5) 将申请到的内存缓冲区放入图像采集队列。(6) 开始数据采集。这里采用内存映射方法,程序直接获取摄像头采集
13、的数据(7) 处理数据。内存缓冲区将通过驱动从设备处采集的数据交给应用程序处理,自己清空数据后再被放入图像采集队列等待获取图像。(8) 程序将从内存缓冲区得到的YUYV格式数据转化为RGB格式,在显示屏上显示出来。(9) 图像采集过程结束,关闭视频设备。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业图像采集程序 -14- 三、编写程序 在清楚了Android系统如何通过USB摄像
14、头采集视频图像信息后,本文编写完成一个简单的应用程序来实际实现单USB摄像头的图像采集。 该程序只有一个Activity,用来预览USB摄像头采集到的视频图像。同时本文将操作摄像头采集图像数据及对数据进行处理的函数方法都封装到用C语言编写的文件中,再通过Android系统中的JNI技术生成动态链接库将其导入程序中。通过调用这些函数本文编写了一个继承Android系统中的SurfaceView的CameraPreview类,通过此类实现数据采集工作,最终实现了单摄像头图像采集的功能。Evaluation only.Created with Aspose.Slides for .NET 3.5 C
15、lient Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业三摄像头图像采集及图像处理-15-一、三摄像头图像采集二、简单图像拼接三、图像拼接Stitcher类四、两种图像拼接方法的简单比较Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业三摄像头图像采集-16- 当将三个USB摄像头与开发板相
16、连时,在系统目录下的dev文件夹中会生成video0,video4,video5三个设备文件(video1、video2、video3是Android4.0系统自带的文件,有特定的功能,不再对应外接的USB设备)。 在第三章里已经编写了一个能实现摄像头预览功能的CameraPreview类。在这个类中,通过一个cameraID和一个cameraBase整形变量来确定访问的设备文件,通过改变这两个变量的值可访问不同的摄像头设备。 通过三个CameraPreview类,如CameraPreview1、CameraPreview2、CameraPreview3,分别访问一个摄像头。同时调用它们三个即
17、可实现三摄像头图像采集。最后将三组采集的数据汇聚到一个程序中,实现全景图像的合成。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业简单图像拼接-17-算法思想:由于在本系统中采集周围图像信息的三个摄像头的相对位置是固定的。那么同一时间三个摄像头所采集的图像信息的重叠部分是始终不变的。那么可通过一组实例找到图像重叠部分,拼接时就只需将已确定位置的重叠部分消去,再将剩余部分拼接在一起即
18、可得到较为理想的全景图像。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业简单图像拼接-18-简单拼接效果图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业图像拼接St
19、itcher类-19-OpenCV2.4.0以上的版本提供了用于图像拼接的stitcher类,其图像拼接的基本过程如下:(1) 图像预处理:对原始图像进行直方图匹配、平滑滤波、增强变换等数字图像处理的基本操作,为图像拼接的下一步作好准备。(2) 图像配准:这一步是整个图像拼接流程的核心,配准的精度决定了图像的拼接质量。精确配准的关键是寻找一个能很好描述两幅图像转换关系的数据模型。(3) 图像合成:确定了两幅图像之间的转换关系模型,即重叠区域后,就需要根据重叠区域的信息将待拼接图像拼接成一个包含全部图像信息的全景图Evaluation only.Created with Aspose.Slide
20、s for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业图像拼接Stitcher类-20-Stitcher类拼接效果图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业两种图像拼接方法的简单比较-21-简单图像拼接简单图像拼接Stitcher拼接效果一般,有错
21、位,拼接处接缝明显较好,拼接精确,无错位拼接速度较快较慢Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业总结与展望-22-总结: 本课题实现了基于嵌入式的图像采集系统,并能通过两种图像拼接方法获得全景图像展望: (1) 系统仅仅实现了摄像头的图像采集功能。可尝试扩展如拍照、录影等其它常用功能的实现。 (2) 系统依赖多个程序实现对多个摄像头的访问。可尝试在一个程序里实现对多个摄像头的操作。 (3) 能否对视频进行实时的图像拼接Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.智能科学与技术专业智能科学与技术专业谢谢各位评审老师!Q&A-23-Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.