福州大学第19届206智能车队摄像头培训 三、帧率和快门时间

news/2024/9/21 2:45:39/文章来源:https://www.cnblogs.com/DiscreteWind/p/18394041

原文于2023.10.25发布于本人CSDN主页,现同步至cnblogs

1.摄像头帧率

某天看了学弟学妹们练习PID编写的程序,为了降低串口通信的频率在int main() while(1)内用了delay函数。实际上在未来实际应用中是不可取的。

在平时的单片机工程中,delay函数只会暂停主函数中的程序,不会影响定时器。需要循环执行的任务只需丢进设定好周期的定时器中断即可。

但在逐飞的开源库中,CPU0主循环中是这么个东西:

if(mt9v03x_finish_flag)
{
//循环执行的代码mt9v03x_finish_flag = 0;
}

显然,需要等待每次CPU0主循环结束后,摄像头才会采集下一帧图像。这样的合理性在于:图像处理运算时间长、同时也是智能车控制的核心内容,只要将图像处理的内容写在CPU0主循环中,即可实现一帧图像只识别一次,且一次识别中不会采集下一帧图像(图像数组变动)。这样就最大限度提高了摄像头的工作效率。

不建议使用较长时间delay的原因也在于此:在delay的时间内,定时器中断服务中的电机还在使能,主函数中的摄像头采集与处理却呆住了,车就容易跑飞。

由上所述,此时图像处理的帧率就取决于硬件上限、配置参数上限,以及CPU0主循环中程序消耗的时间(忽略CPU0的中断服务耗时)。

现在需要测量帧率,有这么几种办法:
(1)逐飞库函数

void system_start (void)
uint32 system_getval (void)

(2)CPU0主循环每进行一次,翻转一路io,将该路io接上示波器,即可测出帧率。
(3)没有条件使用示波器或者硬件设计没有引出多余io的时候,CPU0主循环每进行几次,翻转一次最小系统板载LED灯的io。通过LED灯闪动的频率,就可以计算出摄像头的帧率。

2.电子快门与信号

MT9V03X作为智能车竞赛使用的主流摄像头CMOS(逐飞科技总钻风、龙邱科技神眼、呆萌侠电子虎眼),优势在于其全局快门( Global Shutter)功能。对比传统卷帘快门(如OpenMV中常见的OV7725)的逐行曝光模式,全局快门可以避免智能车在高速移动下图像产生的果冻效应。
全局快门原理示意图
全局快门原理示意图

卷帘快门示意图
卷帘快门原理示意图

果冻效应示意图
果冻效应示意图

全局快门的缺点在于,在同为CMOS电路前提下,其帧率上限低于卷帘快门(卷帘快门逐行读取而不是等待整幅图像曝光完成后读出,每行读出之间的时间延迟很小,每个单独行能够在完成前一帧的读出后开始下一帧的曝光,所以最大化帧速率)。同时,额外的采样保持单元引入了新的噪音源;负责将光学模拟信号转换为数字信号的A/D转换器需要同时处理更多的像素;同时曝光的相邻行像素点干扰增多,上述这些缺陷造成了噪点增多,信号易失真的问题。

在没有条件改变摄像头电路与快门方式的情况下,应该避免使用冗长的连接排线,摄像头转接板针脚保持洁净无腐蚀,PCB设计应考虑信号抗干扰、且尽量避免与其他模块共Vcc。

顺带一提,19届智能汽车摄像头组中鼓励使用线性CCD,因为CCD型感光元件相比CMOS型通常均为全局快门,CCD的最终帧速率受到单个像素数字化传输的速率的限制,传感器中传输的像素越多,相机的总帧速率就越慢。而线性CCD只有一行像素,可以实现极高的帧率。

附:MT9V034技术文档下载地址

Onsemi MT9V034

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791483.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络之卷积篇:详解简单卷积网络示例(A simple convolution network example)

详解简单卷积网络示例 假设有一张图片,想做图片分类或图片识别,把这张图片输入定义为\(x\),然后辨别图片中有没有猫,用0或1表示,这是一个分类问题,来构建适用于这项任务的卷积神经网络。针对这个示例,用了一张比较小的图片,大小是39393,这样设定可以使其中一些数字效果…

3分钟了解CDN

CDN CDN的全称是Content Delivery Network,即内容分发网络。CDN的全称是Content Delivery Network,即内容分发网络CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器 通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低…

新手朋友在安装pbootcms经常遇到一些错误(PbootCMS 常见问题及解决方法)

Parse error: syntax error, unexpected :, expecting {问题描述:在 www\core\function\handle.php 文件第 130 行出现了语法错误,提示意外的冒号。 原因分析:此错误通常出现在尝试在较旧的 PHP 版本上运行需要 PHP 7.x 或更高版本的代码时。PHP 7 引入了一些新的语法特性,…

【VMware VCF】VCF 5.2:配置管理域 vSAN 延伸集群。

VMware vSAN 解决方案中,根据集群的配置类型分为 vSAN 标准集群、vSAN 延伸集群以及双主机集群(延伸集群特例)。我们最常见的使用方式应该是 vSAN 标准集群,也就是 vSAN HCI 超融合集群,至少由 3 台 ESXi 主机所组成,这些 ESXi 主机安装位属于同一个数据中内,将本地磁盘…

Datawhale X 李宏毅苹果书AI夏令营深度学习入门(三)

一.实践方法论 (一)模型偏差 模型偏差可能会影响模型训练。若模型过于简单,一个有未知参数的函数代θ1 得到一个函数 fθ1(x),同理可得到另一个函数 fθ2(x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不…

PlugIR:开源还不用微调,首尔大学提出即插即用的多轮对话图文检索 | ACL 2024

即插即用的PlugIR通过LLM提问者和用户之间的对话逐步改进文本查询以进行图像检索,然后利用LLM将对话转换为检索模型更易理解的格式(一句话)。首先,通过重新构造对话形式上下文消除了在现有视觉对话数据上微调检索模型的必要性,从而使任意黑盒模型都可以使用。其次,构建了…

「代码随想录算法训练营」第五十二天 | 图论 part10

目录Floyd算法题目:97. 小明逛公园A * 算法题目:126.骑士的攻击最短路算法总结 Floyd算法 Floyd算法用于求解多源最短路问题(求多个起点到多个终点的多条最短路径)。在前面学习的dijkstra算法、Bellman算法都是求解单源最短路的问题(即只能有一个起点)。 注意:Floyd算法…

定义一个正则表达式,使用finditer从表达式内取值后存储到列表中

演示代码:responce = requests.get(url = url_web,headers=head) url_obj = re.compile(r<a class="media-content" target="_blank" href="(?P<url>.*?)" title=".*?" ,re.S) list_url = url_obj.finditer(responce.tex…

大模型隐私泄露攻击技巧分析与复现

大型语言模型,尤其是像ChatGPT这样的模型,尽管在自然语言处理领域展现了强大的能力,但也伴随着隐私泄露的潜在风险。在模型的训练过程中,可能会接触到大量的用户数据,其中包括敏感的个人信息,进而带来隐私泄露的可能性。前言 大型语言模型,尤其是像ChatGPT这样的模型,尽…

反光衣自动识别检测系统

反光衣自动识别检测系统检测预警信息仪仗于完整的Ai智能分析平台,包含视频监管、视频采集、预测分析预警信息、可视化管理、时间监管、等模块,反光衣自动识别检测系统可以完成业务流程数据信息的数据共享,产生完善的安全生产管理体系。反光衣自动识别检测系统以健全设备的基…

深入剖析 PCI 转 CPCI 载板转接卡:连接不同架构的桥梁

在计算机技术不断发展的进程中,硬件接口的多样性和演进促使了各种转接卡的出现,以满足不同接口标准之间的连接和通信需求。其中,PCI 转 CPCI 载板转接卡作为一种关键的转接设备,在实现 PCI(Peripheral Component Interconnect)接口与 CPCI(CompactPCI)接口之间的转换方…