微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于OMAP3530平台的车道线识别检测的实现

基于OMAP3530平台的车道线识别检测的实现

时间:01-28 来源:互联网 点击:

:b=-ρ/sinθ,k=ctgθ通过这两个方程式得到ρ、θ值之后,可以求得相应的k、b值。

由于图像的连续性,图像序列中车道线的位置不会发生突变,我们在识别一帧图像的车道线时是以上一帧的识别结果为依据,动态地规划搜索区域,动态地规划Hough变化的ρ和θ值,这样就减少了计算量,提高了算法的实时性,也可提高可靠性。

系统硬件设计

本文选取ICETEK-OMAP3530-Mini开发板为实验平台,该开发板是由北京瑞泰创新科技有限责任公司与美国德州仪器公司合作推出,是一个开放的OMAP3530的硬件平台,它是以TI最新的、高性能的ARM CortexA8处理器OMAP3530为核心,以DSP64x+内核作为强劲的辅助图像处理,优化硬件2D/3D加速器,形成一个精简完备的计算机系统。

选用CMOS摄像头OV7670.OV7670是Omnivision公司生产的一款30万像素的彩色图像传感器芯片,体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。其特点有:灵敏度高,适合低亮度下使用;标准串行摄像头控制总线(SCCB),兼容IIC接口;自动曝光控制;自动增益控制;自动白平衡;自动消除灯光条纹;自动黑电平校准;图像格式可以是原始RGB、RGB(4:2:2)、RGB565/555/444、YUV(4:2:2)、YCbCr(4:2:2)。OV7670与ICETEK-OMAP3530-Mini板通过USB接口连接在一起。

系统软件设计

OMAP3530是一款双核微处理器,由ARM核和DSP核两部分组成,二者之间软件的编程和运行都是相互独立的,通过DSP/BIOS Link完成双核之间的通信。ARM端采用嵌入式Linux操作系统,动态创建、控制和删除DSP节点,实现数据的高效传输。DSP端采用DSP/BIOS实时操作系统,支持eXPressDSP实时软件技术,由DSP/BIOS实时内核、可重构的DSP算法和第三方软件模块组成。

由系统结构可见,软件设计主要包括:ARM端引导程序和Linux系统的移植;捕获道路图像程序。

ARM端引导程序和Linux系统的移植

为便于项目的开发和调试,ICETEK-OMAP3530-Mini板采用SD卡启动,本系统中使用的X-Loader的版本是x-loader1.4.2,U-boot的版本是Uboot-2009.01,Linux内核的版本是Linux-2.6.28,Busybox的版本是busybox-1.12.2,该过程的主要步骤如下:

(1)在开发主机Linux PC里安装交叉编译工具;

(2)交叉编译X-Loader,生成镜像文件x-load.bin.ift,然后转化为SD卡启动用程序MLO;

(3)交叉编译U-boot,生成u-boot.bin和mkimage工具;

(4)驱动配置并交叉编译内核,生成内核镜像文件uImage;

(5)利用Busybox制作文件系统;

(6)将上述生成的二进制文件复制到SD.

捕获道路图像

Linux系统对视频设备的操作提供了两套API,分别是Video 4 Linux(简称V4L)和Video 4 Linux 2(简称V4L2)。早期开发的V4L存在很多缺陷,Bill Dirks等人对其进行了重新设计,更名为V4L2,相比于V4L有很好的扩展性和灵活性,并且支持更多的硬件设备。这两套API不兼容,本文采用V4L2进行USB摄像头视频编程。

利用V4L2提供的接口,我们可以编写出具有视频采集功能的测试代码。下面就主要的环节做一些说明。

(1)打开视频设备

cameraFd=open(“/dev/video0”, O_RDWR, O);

(2)查询设备属性

通过调用ioctl函数和接口命令VIDIOC_QUERYCAP,查询摄像头的信息,见程序段1.

———————————————————————

if (ioctl(fd, VIDIOC_QUERYCAP, == -1) {

} else {…

if ((cap.capabilities V4L2_CAP_VIDEO_CAPTURE) == V4L2_CAP_VIDEO_ CAPTURE) {

…}

if ((cap.capabilities V4L2_CAP_STREAMING) == V4L2_CAP_STREAMING) {

…} }

while(ioctl(fd,VIDIOC_ENUM_FMT, {…}

———————————————————————

程序段1查询摄像头属性

(3)设置像素格式

一般的USB摄像头都会支持YUV,可能还会支持其他更多的格式。通过上一步对摄像头所支持像素格式的查询,下面利用ioctl函数对格式进行设置,见程序段2.———————————————————————

fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;

fmt.fmt.pix.heig

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top