RoboMaster视觉教程(1)摄像头

2023-05-16

观文有感 之 RoboMaster视觉教程(1)摄像头

闲来垂钓碧溪上。今天钓到一篇RM视觉摄像头的好文,记录一下笔记:

文章目录

    • 观文有感 之 RoboMaster视觉教程(1)摄像头
      • 一、摄像头参数
        • (一)卷帘曝光和全局曝光
        • (二)曝光
        • (三)Gamma矫正
        • (四)帧率与摄像头选型
      • 二、镜头
      • 三、滤光片

一、摄像头参数

摄像头是机器视觉中最重要的部分,选择一款成像质量好、稳定可靠的摄像头可以极大地减少识别算法设计的难度。主流的摄像头分为CMOS摄像头和CCD摄像头,一般CCD摄像头体积大造价高精度高,CMOS摄像头造价低,体积功耗等参数低于CCD。
摄像机主要具有以下几个参数:曝光方式(卷帘曝光、全局曝光),分辨率,最大帧率,快门速度,接口类型(usb2.0、usb3.0、GigE、CSI等),光谱响应类型(像元传感器对不同光波的敏感特性)

(一)卷帘曝光和全局曝光

通常我们在网上买到的摄像头都是卷帘曝光的,日常使用时很难看出这两种摄像头的区别,但是在对速度要求高的领域,这两种曝光方式的优劣就很明显了,尤其是对于廉价的卷帘曝光摄像头,果冻效应更加明显。除了果冻效应外,全局曝光的摄像头在低曝光时间的情况下颜色饱和度更高,在颜色方面全局曝光摄像头完爆卷帘曝光。

(二)曝光

在装甲识别中,曝光度是决定能否成功识别的关键因素。当我们拍摄能够自主发光的物体时,降低曝光时间可以减少环境光的影响。

(三)Gamma矫正

在降低装甲板的误识别率过程中,我们可以通过各种约束来过滤误匹配的情况,而更聪明的方法是识别装甲板中间的数字,但是当我们把摄像头的曝光调到很低(降低曝光时间可以减少环境光的影响,能够自主发光的区域无大影响,但是不能自主发光的区域会变模糊,甚至从视野中消失)的情况下数字就看不见了,这时候怎么办呢?一种不太容易想到的方法是提高摄像头的Gamma值,当Gamma提高时图像中亮度较低的区域的亮度会被提高,图像中被提高亮度的部分为灰色而红色部分的灯条没有明显变化,由于灰色的rgb值相同,所以只要将图片的两个通道相减就能够去除背景的干扰,若要识别红色只需要用红色通道减去蓝色通道。在找到灯条后框出数字区域给识别函数识别即可。

那么,摄像头的Gamma矫正究竟做了什么呢?其实就是将图像中的每一个像素点通过一个幂函数进行转换,幂函数指数的导数就是gamma值,函数图像如下:

Gamma矫正函数曲线

从曲线中可以看到输入数值较小时,输出对输入的比值较大,由此可以提高图像暗处的亮度。

(四)帧率与摄像头选型

在RoboMaster比赛中,识别速度越快越好,所以摄像头帧率也是越高越好。但是,带宽的限制帧率和分辨率通常相互制约,帧率高,对应的分辨率就低。(分辨率是屏幕图像的精密度,指显示器所能显示的像素多少,由于屏幕上的点线面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是一个非常重要的性能指标)

二、镜头

不同焦距的镜头所呈现的视角不一样,焦距越大,视角越窄。可以通过选择合适的镜头来提高图像的成像质量,在实测中战车枪管上使用6mm或8mm左右的镜头比较合适。

三、滤光片

由于装甲板只有红色和蓝色,所以识别时只需要把这两种光过滤出来即可,其实不用滤光片也可以,通过将图片由BGR色彩空间转换到HSV识别颜色,或者红蓝通道相减都可以达到过滤颜色的目的。而滤光片主要是用来配合黑白摄像头使用的(滤光片是用来选取所需辐射波段的光学器件,由塑料或玻璃片中加入特种染料制成,红色滤光片只能透过红光)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RoboMaster视觉教程(1)摄像头 的相关文章

随机推荐

  • 数据安全与销毁案例:美国最近发生大规模数据泄露

    据福克斯新闻网6月20日报道 xff0c 一位网络安全专家称 xff0c 美国近日发生一起大规模的选民信息泄露事件 xff0c 将近2亿选民的个人信息遭意外曝光 网络风险研究员克里斯 维克里在其博客文章中表示 xff0c 与美国共和党全国委
  • 回收销毁,IT界头条2022年7月12日版

    2022年7月 12日 1 关于构建数据基础制度更好发挥数据要素作用的意见 审议通过 2 微软在新报告中揭示了俄乌冲突期间的网络战细节 3 西北工业大学遭受境外网络攻击 xff0c 西安警方已立案侦查 4 立陶宛对俄罗斯 禁运 后遭网络攻击
  • 回收销毁,IT界头条2022年7月7日版

    2022年7月 7日 1 关于构建数据基础制度更好发挥数据要素作用的意见 审议通过 2 微软在新报告中揭示了俄乌冲突期间的网络战细节 3 西北工业大学遭受境外网络攻击 xff0c 西安警方已立案侦查 4 立陶宛对俄罗斯 禁运 后遭网络攻击
  • 数据安全与销毁:数据安全已经上升到了国家战略层面

    日前 xff0c 中央全面深化改革委员会审议通过了 关于构建数据基础制度更好发挥数据要素作用的意见 xff08 下称 意见 xff09 xff0c 明确提出 把安全贯穿数据治理全过程 业内专家表示 xff0c 数据安全已经上升到了国家战略层
  • C++用带有默认参数的函数实现,求2个或3个正整数中的最大数

    1 题目要求如下 xff1a C 43 43 用带有默认参数的函数实现 xff0c 求2个或3个正整数中的最大数 2 来吧 xff0c 展示 xff1a include lt iostream gt using namespace std
  • 程序设计思维与实践 Week2 作业B "倒水问题"

    数据 xff1a Sample Input xff1a 2 7 5 2 7 4 Sample Output xff1a fill B pour B A success fill A pour A B fill A pour A B succ
  • armbian的换源

    安装好armbian和众多Linux一样 xff0c 最重要的就是把原来的官方源给替换掉 xff0c 换成国内的源 xff0c 当然个人建议还是把官方的源备份一下以防出错 cp etc apt sources list etc apt so
  • Ubuntu18.04上网断断续续

    刚刚体验了一把Ubuntu18 04 LTS xff0c 有个小问题就是 xff0c 网络链接老是断断续续 后来在这里找到了解决方法 xff1a span class hljs built in sudo span gedit etc pp
  • Coursera Machine Learning 第二周 quiz Octave/Matlab Tutorial 习题答案

    1 Suppose I first execute the following Octave Matlab commands 1 2
  • C语言random问题

    总 结一下C语言random的用法 xff1a srand xff08 xff08 int xff09 time xff08 NULL xff09 xff09 用于设定随机数种子 rand 100 xff0c 产生 0 99 的随机数 如果
  • java.util.regex.PatternSyntaxException

    在处理字符串用到String replaceAll 这个方法的时候出现了这个异常 Exception in thread 34 main 34 java util regex PatternSyntaxException Dangling
  • Shell 脚本 Debug 方法

    可能有的程序员在对程序调试的时候用printf或者echo将信息挨条打印出来 xff0c 但是这比较麻烦 xff0c 因为在交付的时候还要将这些语句一条条删除 xff0c 下面对shell debug的方法稍微做一个总结 xff1a 1 使
  • JAVA 点击按钮展开一个新的Jpanel

    问题不太容易用语言来描述 xff0c 先直接上图吧 xff1a 点击按钮之前 xff1a 点击按钮之后 xff1a 那么如何实现这种功能呢 xff1f 首先在图一中的主JFrame中添加一个JScrollPane xff0c 在点击按钮后n
  • java 实现日历选择器

    首先引用com qt datapicker DatePicker 包实现如下 xff1a package Date import java awt event ActionEvent import java awt event Action
  • 获取JPasswordField组件中的密码

    在JTextField中有一个方法getText xff0c 可以返回组件中输入的字符串 xff0c 但是对于JPasswordField类 xff0c getText 方法已经不适用了 xff0c 执意使用的话 xff0c 获取的也是一串
  • 指针的大小

    说这个之前先了解几个概念 xff1a 字长 xff1a 字长是CPU的主要技术指标之一 xff0c 指的是CPU一次能并行处理的二进制的位数 xff0c 字长是8的整倍数 xff0c 通常的PC机的字长为16位 xff0c 32位 xff0
  • 程序设计思维与实践 Week6 作业A氪金带东树的直径的应用

    题意 xff1a 依次输入图中的点以及边权等信息 xff0c 最后输出每个点在图中所能到达的最远的路线的长度 例如所给的样例 xff1a input 输入文件包含多组测试数据 对于每组测试数据 xff0c 第一行一个整数N N lt 61
  • 《UNIX环境高级编程》(第二版)找不到apue.h问题

    UNIX环境高级编程 xff08 第二版 xff09 这本书 xff0c 实例程序中都包含头文件apue h xff0c 寻找linux usr include中 xff0c 缺找不到此头文件 xff0c 因此编译时会出错 实际上apue
  • java程序中,如何安全的结束一个正在运行的线程?

    如何停止java的线程一直是一个开发多线程程序常遇到的一个问题 在Java的多线程编程中 xff0c java lang Thread类型包含了一些列的方法start stop stop Throwable and suspend dest
  • RoboMaster视觉教程(1)摄像头

    观文有感 之 RoboMaster视觉教程 xff08 1 xff09 摄像头 闲来垂钓碧溪上 今天钓到一篇RM视觉摄像头的好文 xff0c 记录一下笔记 xff1a 文章目录 观文有感 之 RoboMaster视觉教程 xff08 1 x