海康线阵相机调试指导

这篇具有很好参考价值的文章主要介绍了海康线阵相机调试指导。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言


前段时间应结构要求一起评估结构光和硬件,主要围绕线阵相机图像质量和光均匀性做灯光调整, 在此记录调试过程中遇到的坑。希望给同行一些避坑指南,同时希望多留言和给出一些指导!

线阵相机结构光评估


  • 光源
    • 评估光源是否满足的要求是图像无太大压缩,无太大拉伸(10%以内)的情况下,模拟增益不超过4dB,gamma增强不超过0.7的情况下,图像亮度正常, 图像整体亮度基本均匀,无暗条纹等情况。
    • 图像无压缩,无拉伸可以确认行频和当前车速基本匹配,此时定下了曝光时间。
    • 模拟增益和gamma是DSP放大,放大会导致噪点的出现,因此需要做一些控制。
      图像亮度均匀是判断外界灯的角度,灯的排版是否合理的有效依据。
      量化工具可以使用照度计。
  • 镜头

    • 镜头确认需要保证像素点都使用到(比如2048的宽,那么绝大部分的像素需要可见),因此镜头的选择尤其重要。
      在选择镜头匹配到所有像素时(width),也需要考虑到抓拍的宽度,尽量满足抓拍的宽度要求(比如客户要求2米等重要指标)
  • 物距

    • 首先确认客户需要使用的环境,确认物距距离,按照物距距离模拟环境, 相机不动, 运动的传送带等通过一种控制
      转动的工具,比如马达类的电机转速等,在上面贴一些字符,方便视觉上调整行频,保证图像不被拉伸和压缩。
  • 视野

    • 抓拍模式设置为连续。调整heigh为128或256,调整曝光时间和行频,确保图像不压缩和拉伸;
      调整gamma等,确认图像正常曝光;
    • 可以找一些白色的条状物体模拟边缘, 移动物体让图像刚好在最边缘,使用卷尺测量横向距离,如果不满足客户要求,
      做结构上的调整,原则上物距越远, 可看到的横向(width)越大。
      P.S:注意晃动的时候,使用比较长的杠子,避免手进入可视区,误以为杆子边缘可见(手的物距高于杆子)

图像优化


帧率

  • 帧率= 行频(Hz)/高(当1/行频大于曝光时间的前提下), 当行频比较高的时候,帧率也会高( 前提是曝光固定切曝光*行频不超过1000000us)。行频的突破需要曝光做牺牲,比如曝光1000us,如果要出30fps, 如果height为32, 那么行频就是1000,此时如果想要帧率继续提高, 就要求行频提高,行频提高需要曝光减少, 关系为反比例

  • 当1/行频小于曝光时间时,帧率由曝光决定, 帧率 = 1/曝光时间/图像行高。

建议:
设置图像宽度(采集方向),设置行频,确认图像是否拉伸或压缩,如果压缩,增大行频, 行频如果最大依然压缩,降低曝光时间。
如果此时图像依然比较暗,优先提高外部亮度, 考虑到功耗图像质量的均衡, 做一个平衡点。
Notice:如果不考虑功耗, 尽量拉伸外部亮度,可以变相的增加了行频利用率以及图像质量。

拖影

  • 对于要做尺寸测量之类,或人脸识别算法之类的场景, 像素精度有一定的要求,一般要求不超过1/2个像素。

  • 拖影对人工智能不造成影响条件是 曝光时间 * 相对运动速度 ≤ 相对运动速度的需求。

例如曝光时间400us,小车按照10km/h的速度从相机上行驶, 分辨率为20484500, 整体视野2m * 4.5m(车长),像素精度要求1/2。
曝光时间 * 相对运动速度(相机固定) = 400/1000000 * 2.78
1000 = 1.112mm
垂直方向像素精度 : 4500(视野范围的垂直方向) / 4500 * 1/2 = 0.5mm
因此无法满足场景
解决方式: 降低曝光时间(要求外界亮度足够)或降低传送带的运动速度

  • 关于线阵相机调试后的效果,传送

适配速度

关于相对速度变化的场景, 如果保证线阵相机抓拍图像正常?

  • 需要确认当前适配的最大速度依然不变形,首先是确认可设置的最小曝光时间, 目前发现曝光在120us以下的情况,图像依然不欠曝(或微欠曝),基本能保证速度能到35km/h。
  • 保证曝光不变形的情况下,然后确认图像亮度,如果亮度不足可以适当增益模拟增益和数字增益,有限模拟增益。如果客户对分辨率没有特别的要求,可以适当降低分辨率(BIND)。

获取速度

  • 因为图像变形和车速正相关, 所以必须有一个测速的模块, 如果是匀速的传送带相关的场景,使用一套ISP参数即可。
    测速模块如果有更好的解决方案, 希望一起讨论下,方便提高产品竞争力, 谢谢!

疑难杂症

  • 在线扫过程中停止, 加速,减速。

解决方案: 目前需要评估一种测速,当速度变化后设置图像ISP,但这样会增加链路层传输的时间(调用API),导致抓拍可能丢了一些帧(特别是单帧比较小的情况)

  • 如果被扫距离不固定,如何做到图像最优化?
    该问题如果有解决方案,欢迎指导。

鲁棒性(采集稳定性)


  • 采集丢帧

原因分析:海康SDK走的是TCP/IP方式。 [^Continue]会有两个因子影响到采集,分别是客户端的CPU(arm板或工控机)以及网络往返的时间,当工控机的CPU不足等会造成进程调度问题(如果工控机性能不足或运行的任务比较多时), 或网络抖动等问题可能造成请求一帧的时间超过了一帧的时间,MVS采集帧是不设置缓存,采集时如果客户端消费者来不及请求时,会将后续的帧覆盖掉上一帧,导致客户端丢帧。 单帧采集模式不会出现上述的问题,因为拼接是在MVS相机的Soc中,当完成客户端设置的height后就将数据回调给客户端。

  • 采集方式
  • 单帧扫描采集

这里采集的是一帧数据,采集什么时候结束按照ISP设置的参数决定,特别需要注意的是行频以及曝光
宽度决定扫描的行数, 行频曝光决定扫描的速度,即帧率

  • 连续采集{continue}采集

interrupt: 中断方式,分软中断和硬件中断,这里只讨论软中断,即不再polling同时停止采集。

  • 比较
    • 单帧扫描方式常用于比较规律的地方,存在周期性的拍摄场景。
    • 单帧模式很多场景无法满足客户需求,在这里只针对连续采集模式下应付以上问题:
    a. 客户端轮询拿到本地数据,数据都采用指针方式存储,降低拷贝耗时。
    b. 确认部署按照文档部署。
    c. 采集设置缓存,减轻cpu调用客户端时的分配时间片不足问题。
    d. 单帧设置的height可以适当的增大,即降低帧率,同时也变相的增加了行频利用率。
    
    
    • 后续的想法
      最后说一点,如果对行频利用率要求非常高的场景,建议还是想办法使用单帧的方式,而且能利用外部中断提前停止采集。
      之前尝试这种解决方案, 貌似HIKVISION SDK不支持这种方式。

选型

参考: 工业镜头基础知识和选型
参考: HIKVISION

一些坑参考

  • 自动曝光还是手动曝光(白平衡同理)?

环境单一的场景用手动曝光即可, 如果场景照度多变,使用自动曝光。
自动曝光因为收敛的时间差,导致图像可能存在光线不均匀的情况, 这种问题提高外部亮度,让曝光的上下限设置波动小。

  • 线阵相机采集不均匀问题 ?

主要是因为外部补光导致问题,可以通过尝试sharding,如果还是无法解决,使用后期的图像增强,可以使用OpenCV的图像增强,参考数字宽动态,缺点是算法时间复杂度导致出图可能慢的问题

  • 没有测速模块,无法使用编码器的场景如何解决图像变形{拉伸或压缩}?

如果没有测速模块, 可能无法解决该问题,但可以做缩放, 缩放中的拉伸会降低分辨率,所以如果考虑这种情况,
增大行频相对更好。

  • 开始抓拍和结束抓拍的触发源是通过IO方式(事件),怎么做能刚好扫描到触发前后的图?
    • 后期裁剪算法,逻辑大概是比较每行的差异,如果大多数相同,就说明是无效数据。如果考虑稳定性,增加软件滤波即可。
    • 采用高帧率连续采集模式,拿到帧数据自行realloc后保存, 流程大概为 触发源开始触发抓拍->请求抓拍数据->数据保存到vector中->收到停止信号停止->将vector数据保存一张raw数据->做编码即可

视频预览

采用usb摄像头或MIPI:文章来源地址https://www.toymoban.com/news/detail-455579.html

  • 镜头选择尽量高收敛低震荡的CMOS, 这个可能需要代理定制了,建议500ms的曝光收敛比较合理。
  • 自动曝光依然过曝,可以定制低目标亮度的固件。
  • 因为运动物体,曝光采用增益优先方式更好,曝光上限做一定限制,比如5ms, 毕竟外部补光很高。
  • 如果带宽足够,帧率建议30+, 编码码率选择更高的码率,建议定码率,减少运动场景的网格。

到了这里,关于海康线阵相机调试指导的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 工业相机相关概念词介绍:ISP算法、线阵相机、常用术语

    ISP基本框架及算法介绍 相机的常用设置 50个常用术语 关于立体视觉相关算法,可参考我的专栏:https://blog.csdn.net/yohnyang/category_11720857.html ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、

    2024年02月02日
    浏览(39)
  • 基于FPGA的工业相机项目大赏1——cmos线阵相机

    本文关于基于fpga的cmos工业相机项目工程概览与总结,涉及以下内容: 1、模块总结:整体设计方案、子模块划分、关键技术点/信号 2、调试:关键模块、信号的仿真、调试总结 3、硬件布局:引脚配置、核心供电等硬件、结构设计总结 4、方案优化:现有方案的优化、改造及

    2024年02月07日
    浏览(47)
  • 从零开始实现Dalsa线阵相机采图

    Dalsa相机一只,电源,如需使用编码器触发模块还需要准备增量式编码器输出信号,(AB,ABZ信号均可)。 电源接线:10接电源负极;15接电源正极; 编码器信号线: 1------Line 1+------A+ 2------Line 1-------A- 3------Line 2+------B+ 4------Line 2-------B- 如果不使用编码器触发,只需接好电源线

    2024年02月09日
    浏览(49)
  • 线阵相机参数介绍之轴编码器控制

    1.1 功能介绍 编码器是将检测对象的运动与相机拍摄取图相匹配的设备,也即检测对象运动一定距离,相机就拍摄一定行高的图像。 编码器会将检测对象的实际位移转换为固定数量电信号。例如:编码器的精度是2000p/r,该参数的含义是编码器每转一圈输出2000个信号,通过该参

    2024年02月21日
    浏览(36)
  • Dalsa线阵相机说明(Linea Color GigESeries 2k and 4K)

    相机接口 相机DB15引脚定义 相机外型尺寸图 相机整体参数 传感器参数 最高采样帧率情况下每帧时间:1/45000 1000 1000=22us 传感器中感光单元的排列方式 双线性彩色相机基于Teledyne DALSA的双线性CMOS传感器,并设计为使得该双线传感器的第一行具有红色(R)和蓝色(B)交替像素

    2024年02月11日
    浏览(42)
  • 计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

    一物体被放置在传送带上,转轴的直径为100mm。已知线阵相机4K7u(一行共4096个像素单元,像素单元大小7um),镜头35mm,编码器2000脉冲/圈。保证图像不变形的条件下,计算相机到产品之间 摆放距离?无论传送带速度变化为多少,都不变形。                  解:编码

    2024年02月08日
    浏览(54)
  • C# 开源SDK 工业相机库 调用海康相机 大恒相机

    c# 相机库,含海康、大恒品牌2D相机的常用功能。 底层采用回调+信号量模式封装 ,最大程度减小线程资源,提高采图效率。 开源地址 :https://gitee.com/laomaogu/mgcamctrl 现只兼容了大恒和海康,都是常用的 其他相机,看我老板啥时候换品牌吧,或者换老板? 当然如果小伙伴感兴

    2024年04月26日
    浏览(52)
  • 海康工业相机使用教程

    (1)区分电源适配器正负极 (2)连接相机电源线缆 (3)连接完成后,相机蓝色灯常亮则成功 (1)MVS客户端下载地址(下载3.4.3windows) MVS客户端官网下载 (2)打开安装包默认安装即可 (3)双击MVS图标打开客户端软件

    2024年02月09日
    浏览(46)
  • C# 获取海康相机

    一、简介 由于工作关系,本人最近使用到了海康的网口及USB3.0接口的工业相机。现将相关内容进行整理记录。 二、开发环境 64位VS2013 +C# Halcon12 海康MVS3.0.0 三、项目搭建 1、添加引用 引用海康相机动态库(MvCameraControl.Net.dll) 在VS项目文件中添加添加引用,如下图 引用MVS安装

    2024年02月06日
    浏览(37)
  • 海康相机ROS驱动使用

    1、海康MV-CS050-10GC 镜头 MVL-HF1624M-10MP f=16mm MVL-HF0624M-10MP f=6mm 两个镜头都是1000万分辨率 2、支持POE供电 使用网线连接支持POE的交换机或网卡 3、下载linux客户端 4、查找相关ros驱动 https://github.com/luckyluckydadada/HIKROBOT-MVS-CAMERA-ROS.git 按照readme编译 问题1 : fatal error: MvErrorDefine.h: 没有

    2024年02月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包