首页 理论教育 智能汽车图像采集方法

智能汽车图像采集方法

时间:2023-09-21 理论教育 版权反馈
【摘要】:图像采集时主要应用到K60单片机的DMA模块、UART模块。图9.14摄像头采集方案通常来讲,采集的图像并不需要很大的尺寸,所以下面的讲解将围绕着一幅图片采集完成进入中断的采集图像方式展开。图9.15图像采集相关初始化流程传统摄像头到处理芯片的连接接口,需要至少9根线的视频口以及一组I2C控制总线。图9.16场中断回调函数图9.17图像处理子程序

智能汽车图像采集方法

首先讲解避障摄像头的图像采集。以应用基于MT9V032视频采集芯片的总钻风摄像头和K60单片机为例,摄像头数据采集概略图如图9.14所示。

图像采集时主要应用到K60单片机的DMA模块、UART模块。如图9.11所示的连接方式为使用K60单片机的PTB23端口接收摄像头传来的像素中断信号;使用PTB20端口接收摄像头传来的行中断信号;使用PTB22端口接收摄像头传来的场中断信号;使用PTB16、PTB17端口分别作为K60单片机UART模块的收发端,负责与摄像头及上位机的串口通信;使用PTC0到PTC7这8个端口接收摄像头传来的像素值。

图像采集有两种方式来采集图像。第一种是一幅图片采集完成进入中断。这种方式的优点是单片机不用频繁进入中断,减轻单片机的负荷;缺点是DMA一次采集的数据有限制,不能超过32 767次,因此使用这种模式的时候列乘宽不能超过32 767。第二种方式是一行采集完成进入中断。这种方式的优点是可以采集更大分辨率的图像,由于逐行采集,可以较为方便地实现定行;缺点是会增加单片机的负荷,进入中断的次数会大幅度提升。

图9.14 摄像头采集方案

通常来讲,采集的图像并不需要很大的尺寸,所以下面的讲解将围绕着一幅图片采集完成进入中断的采集图像方式展开。在总钻风摄像头配置方式下开始一幅图像的采集,首先要做的是对各个输入输出端口、DMA模块、UART模块进行初始化。采集流程如图9.15所示。

配置完成后,DMA就开始接收摄像头采集到的图像数据。不过,每次DMA主循环结束后DMA模块会被自动禁用,所以还要在场中断回调函数里进行一些配置。通常,由于DMA模块刚开启时肯定处于某一幅图传输的中间过程,所以这一帧图像传完后发来的场信号会先触发场中断函数,而此时DMA主计数器并没有记满。实际上,也是因为DMA刚开始接收数据时并不会恰好是一帧图像的开头,第一幅图本身不完整,应该予以舍弃。

为了使车模在运行过程中能够保持DMA模块一边存图,CPU一边进行相关计算,可以开辟三块储存空间(即三个数组)轮换着进行装载数据及分析数据的相关操作,尽可能地满足图像信息的实时处理。各参赛队伍也应该尝试自行分析各幅图像的时序关系,防止出现程序漏洞,导致程序运行不稳定。

在这种三幅图轮换更新及计算的方式下,可以按照如图9.16和图9.17所示的方式来设计相关的场中断回调函数和定时中断中的图像处理函数。(www.xing528.com)

图9.15 图像采集相关初始化流程

传统摄像头到处理芯片(SOC)的连接接口,需要至少9根线的视频口(Clock+8bit RGB Data)以及一组I2C控制总线。而且受限于时钟速度,传输的视频分辨率也受到限制。而采用了Camera Serial Interface(CSI)接口的摄像头到SOC的连接,可以精简到一组差分时钟和一组差分数据线。如果分辨率提高,还可以灵活地增加差分数据对来支持,由此减少了负载,加快了数据传输。典型的CSI接口初始化例程如下。

图9.16 场中断回调函数

图9.17 图像处理子程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈