点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重要的作用。工业相机已经被广泛应用于工业生产线在线检测、智能交通,机器视觉,科研,军事科学,航天航空等众多领域。 工业相机的主要参数包括:分辨率、帧率、像素、像元尺寸、光谱响应特性等。下面我们来对工业相机帧率的相关知识进行讲解:
帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second),简称:FPS或“赫兹”(Hz)。
由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16fps的时候,就会认为是连贯的,此现象称之为视觉暂留。这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的。
每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。
最大帧率(Frame Rate)/行频(Line Rate):即相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.),对于线阵相机为每秒采集的行数(Hz)。
相机帧率和曝光时间的关系:
有人问,为什么我们在使用工业相机的时候,将相机的曝光时间增加以后,相机的帧率就下降,而且下降得很厉害,相机的帧率和曝光的关系是怎样,如果想要获得固定的帧率,相机的曝光时间应该怎么设置?因此写下本文,解答了朋友的问题,也使用Sentech相机来做过相关的测试,帧率和曝光时间跟本文中所述一致。详细原理见下文所示:
曝光和传感器读数
相机上的图像采集过程包括两个截然不同的部分。第一部分是曝光。曝光完成后,进行第二部分Readout过程即从传感器的寄存器中读出数据并传送出去(Readout过程)。
关于图像采集过程中,相机操作有两种常见的方法:“non-overlapped”的曝光和“overlapped”的曝光。在非重叠(“non-overlapped”)模式中,每个图像采集的周期中,相机在下一个图像采集开始前,均要完成曝光/读出整个过程。如图1所示。
Fig.1 Non-overlapped Exposure
虽然非重叠(“non-overlapped”)的模式,可适合于许多情况下,但它并不是最有效的方式。为了提高相机的帧率,允许在下一帧图像开始曝光时候,将前一帧获得的图像数据读出并传送出去。相机“重叠”(“overlapped”)曝光的方式见图2所示。
从图2中我们可以看到,相机读出数据和下一帧曝光开始出现重叠的情况,在同一个时刻内,相机执行两个操作,导致在同样的单位时间内,在“overlapped”曝光模式下,可以采集到更多的图片,即相机的帧率更高。
Fig.2 overlapped Exposure
从上边两个图中,我们可以知道在“non-overlapped”的曝光和“overlapped”的曝光模式底下,一帧图像的周期存在着这样的关系: "overlapped”的曝光模式下: FramePeriod ≤Exposure Time + ReadoutTime
“non-overlapped”的曝光模式下:FramePeriod > Exposure Time + Readout Time
以STC-A202A为例:
图1 Spec
从Spec中可知,其Pixel Frequency为:36.8181MHz,所以1Clock的时间为1/36.8181Mhz =27.3836ns,接下来我们看相机的Timing chart,首先先看HorizontalTiming,见图2所示:
图2 Horizontal Timing
从图2中,我们从中可读到的信息为,1 CLK=27.1605 nseconds,和我们从spec上得到的Pixel Frequency算出来的时间差不多。扫描1Horizontal需要1920CLK,即1H =27.1605*1920 =52148.16ns=52.14816us
接下来看相机Vertical Timing 见图3所示:
图3 Vertical Timing
从图3中,我们可读出的信息为,1H=52.1482useconds,和我们通过图2计算出来horizontal Scanning的时间一致,而在一帧图像中,需要扫描1252H,其中Effective Pixels为1220H,即1帧图像中,Effective Pixels Read out的时间为1220*52.1482 =63620.804us =63.620804ms,一个VD信号,所用的时间为:1252*52.1482=67793.5464us =67.7935464ms。按照我们前边的理论,一个cycletime内,一帧图像的时间为:Frame Period = Exposure Time +Readout Time
而我们知道STC-A202A的帧率为:15fps,即1 Frame Period =1/15 =66.7ms。
所以在“non-overlapped”exposure 模式下,ExposureTime = Frame Period – Readout Time =66.7ms -63.6ms =3.1ms,在此模式下,若是超过3.1ms的曝光时间,其帧率就会比标准帧率15fps低。
假如1颗相机Readout Time为:66.7ms,即数据传输时间为A,A=66.7ms,曝光时间为B,B=5ms,则一帧图像的时间为C,则C=A+B=66.7ms + 5ms =71.7ms,则这颗相机的帧率为:1000/71.7 =13.94FPS,则这颗相机的帧率为13.94.
注意:一般情况下,若我们的相机的帧率为15fps,则表示相机ReadOut数据的时间为1000ms/15 =66.7ms
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~