作者:Atlas | 来源:3D视觉工坊
图1 常见工业相机外观一问价格,至少都是大几千,贵的在十几万,心里就不禁有疑问,就这么一个破相机,为啥就卖这么贵?它跟我们常见的单反相机有什么区别?我用单反相机来拍,色彩又好,成像又清晰,它不香吗?为啥一定要用工业相机?
图2 常见单反相机外观咋一看,单反相机块头这么大、工业相机块头这么小,工业相机明显在坑人啊!诚然,由于工业相机需求量和产量的缘故,工业相机的研发、制造总成本会远远高过消费级单反相机,这也是它价格更为昂贵的原因,但我们这里一定要明白一个概念:工业相机,不能简单地理解为工业上用的相机,它是有特殊用途的一类相机统称。特殊用途:什么叫特殊用途,比如说我们3D重建算法,对相机的畸变要求尽量小,在某些恶劣场合,需要用到IP67级防水相机、拍摄原子弹爆炸前几微秒内原子弹内部的场景,这类专门的相机可以称为高速相机,这些相机都可以称为工业相机。而相反的,你认为工厂里监控摄像头,尽管它部署在工厂里的每个角落,但你能认为它是工业相机吗?
图3 FlyCapture SDK 采集图像界面成像精准:一般来说,工业相机的图像传感器是逐行扫描的,而普通传感器是隔行扫描的,前者生产工艺更为复杂,成品率低、出货量少,世界上只有少数公司能够提供这类产品。此外,工业相机的畸变、色彩还原准确度往往更好,而单反相机追求的是要拍的好看。稳定性和可靠性:工业相机的性能稳定可靠、易于安装,结构紧凑结实不易损坏,连续工作时间长,可在较差的环境下工作,这是单反相机做不到的。例如一些工业相机被安装在工业检测生产线上,负责产品的视觉测量、缺陷筛查等工作,这就要求相机在流水线常年连续运转过程中保证不出故障,否则会导致生产线停摆甚至瘫痪,这对企业来说意味着难以挽回的经济损失。 特殊用途严苛场景:比如某些在航空上用的相机,其工作温度范围就要求:-40℃~85℃;成像速度:拍摄汽车碰撞、原子弹爆炸的高速相机;光谱范围:比如测量钢炉内铁水温度的红外相机;除此之外,工业相机一般来是黑白的,主要是为了保证曝光充足、成像准确。至于价格,我认为不是区分工业相机和单反相机主要的因素,还是得看具体相机的型号,消费级市场也有大十几万的设备。
图4 工业相机的接口[2]镜头接口:固定相机跟镜头,也称为卡口;数据接口(控制):传输拍摄到的相机数据(控制相机);电源接口(控制):提供相机电源(控制相机);有时候,数据口和电源口也会放一起,某个接口既能提供数据传输又能提供相机电源,随着时代的变化,这类即插即用的工业相机越来越普遍。这里所谓的即插即用,并不是说插上去就能用,而是在安装相应的驱动后,我们通过SDK可以进行调用,区别与某些接口相机需要自己去写底层驱动以及相应图像处理算法。
图5 不带镜头的工业相机常见的工业相机镜头接口包括:C、CS、M42、M50、F、V、T2等等,接口类型的不同和工业相机镜头性能、质量并无直接关系,仅仅是接口方式不一样,一般来说,我们也能找到各种常用接口之间的转接口。下面简要地介绍下这些接口。最简单的,你记住什么相机接口对什么相机镜头即可。
图6 工业相机C接口和CS接口实物(图中CS接口相机已转接为C接口)[2]法兰距:也叫做像场定位距离,是指机身上镜头卡口平面与机身曝光窗平面之间的距离,即镜头卡口到感光元件(一般是CMOS或CCD)之间的距离。注意,法兰距不同,即便装上也无法清晰对焦和成像。


(1)M12(2)M42(3)M58 图7 M系列接口 [2]而M42、M58接口更大,往往用在大靶面的工业相机、甚至线扫相机上。这类接口直接通过螺纹连接到相机上,连接较为方便。

(1)EF接口(佳能)(2)F接口(尼康) 图8 卡扣系列接口[2]
图9 常见数据+电源 接口[3]它们的性能指标对比如下:
表2 常见数据+电源接口对比[3]简要地解释一下:USB2.0、3.0系列:这类接口的好处是即插即用(虽然这里说是即插即用,但一般工业相机都还是要安装驱动以及相应的SDK才能调用的),3.0的速度达到了5.0GB,但问题是传输的线路太短,不太适合长距离、大批量工业相机的应用场景(这在大多数化工企业中是这样,相机安装在工厂的各个角落,处理放在主控室)。IEEE1394:Apple公司推出的标准,传输速度介于USB2.0~3.0之间(还是比较慢的),传输距离达到了100m,但是其需要额外的转接头,因此应用也不多。GIGE:也就是常说的网口相机,传输速度虽然不高(一般来说也够用了),但是传输距离远,集成方便,配合上千兆路由器,可以实现大规模的工业相机集成,目前工业应用上最为广泛,较为高端的工业相机也大多采用这种配置,唯一的缺点是需要额外的电源供电。Cameralink:一种专门的工业级视觉产品使用行业标准,传输速度可以达到5.44Gbit/s,往往用在之前的一些高速相机上(因为之前USB2.0、GIGE这些接口都太慢了),但缺点是需要额外的图像采集卡、价格贵(一条线缆1000)、而且不好用,要自己去写相机驱动,并且不支持热插拔(会损坏相机!)。原因:使用这类接口的相机在物理上被硬生生地拆为两部分,相机的厂商只负责相机的制造,而相应的驱动、软件,比如说图像的采集、处理等算法都需要你自己对CameraLink采集卡进行编程。CiaXPress:速度快、传输距离远,独立供电、价格也便宜,推出来用以取代Cameralink接口。这类相机需要额外的接口卡,注意,这里是接口卡!接口卡不同于采集卡,其只是相机采集到的数据的一个中转站,不会对数据做任何处理,其直接将数据存储在主寄存器中。因为这类相机传输速度较快,如果将拷贝数据的工作交给CPU来做的话,CPU将会消耗大量资源.需要说明的是,我们选取工业相机型号的时候,接口并不是传输速度越好越好,而是要挑合适的,杀鸡焉用牛刀?那怎么选型呢?我们下一节说!
图10 单片凸透镜的物理焦距但现代镜头通常由多片薄透镜组成,如图11所示:
图11 现代相机镜头构成[5]它们之间的的相对距离可以发生变化,因而物理焦距也可以随之发生变化,这类镜头称为变焦镜头,反之不能发生变化的是定焦镜头。
图12 镜头的摄影焦距[4]
图13 相机清晰成像对焦情况对于小人头部的A点,其从头部发出三个方向的光线,经过镜头汇聚后,汇聚于成像面的A’点。那么对于A点发出其它方向的光线呢?它们也会汇聚于A点,因为镜头的形状是经过专门设计的。这里有两点特殊:同一点发出的各个方向的光线,经过镜头后必定汇聚于同一点;同一平面上的不同点发出的光线,经过镜头后,汇聚于不同点;对于这个模型,这里可以看出,如果相机镜头跟成像面的距离,也就是焦距不对,那么必然要进行调焦。在实际情况中,在大多数相机中,CCD是固定不动的,我们通过移动整个镜头离成像面的距离来完成对焦(镜头的物理焦距依然没有发生改变,这也是定焦镜头可以调焦的原理)。为什么改变物体距相机的距离后,我们要重新进行调焦?原因如下:即使是同一个高度点,在不同距离上,摄影焦距也是不一样的,因而需要调焦,示意图如下,A1、A2的摄影焦距显然不一样:
图14 不同成像距离,摄影距离不同,因而需要调焦有人又问了,如果发生发生下面这个场景,图像不会混叠吗?A1、A3好像成像在同一点上,首先A3是可以清晰成像的,A1显然不行。
图15 不同距离、高度下光路混叠现象其次,从理论上讲,A1、A3在CCD上就是呈现为同一点,那怎么区分A1、A3点呢?拜托,动下脑子,如果有A3点,你能看到A1点吗?需要提的一点是,在之后的模型推导中,我们会将整个相机模型简化为小孔成像模型,就像下图这样,这并不会影响我们之后公式推导的准确性。目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。
针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」
学习3D视觉核心技术,扫描查看,3天内无条件退款本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:
收集汇总并发布3D视觉领域优秀企业的最新招聘信息。
发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。
分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。
星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。
发布3D视觉行业新科技产品,触及行业新动向。
如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com
科研论文写作:
基础课程:
[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶
[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]
工业3D视觉方向课程:
[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]
SLAM方向课程:
[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战
[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化
[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析
[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)
视觉三维重建:
自动驾驶方向课程:
[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)
[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程
[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)
[1]零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]
下一篇:手机中的计算摄影:多摄融合