颜色校准总结

颜色校准被分为两步:首先,根据环境需要更新摄像头驱动参数,命令如下:
get representation:CameraSettings
将返回当前设置。此外,将生成必要的set命令,最重要的参数:
whiteBalance:可用区间为[2700,6500]。
exposure:可用区间为[0,1000],通常使用140的exposure,等同于14毫秒,exposure过高将导致图像模糊。
gain:可用区间为[0,255],通常设置为50-70,过高的参数值将导致图像噪声。
autoWhiteBalance:Enable(1) / disable(0),white balance的自主行为。这个参数总是未被激活的,因为white balance可以改变颜色,弄乱颜色校准。另一方面,环境颜色温度的改变将产生相同的结果。
autoExposure: Enable (1) / disable (0),exposure的自主行为。当在静态光条件下,如标准室内比赛,这个参数应该被禁用,因为将自动选择比所需更高的参数值,这将导致图像模糊。然而,对于动态光照条件,像现在在Outdoor Competition at RoboCup 2016,使用摄像头驱动的自动化是必要的。在这种情况下,它的行为可以使用参数autoExposureAlgorithm和亮度来改变。
摄像头驱动将做一次性的自动白平衡,这个特征可以通过下面的命令来触发:
dr module : CameraProvider : doWhiteBalanceUpper
dr module : CameraProvider : doWhiteBalanceLower
在设置摄像头驱动的参数之后,必须更新颜色分类的参数(查阅4.1.4节)。为此,需要打开上下摄像头的影像视图和颜色校准视图,更多详细描述见10.1.4.1节。与那一节不同的是,要分别选择每一个视图的颜色显示或者校准。这可能对于在第一次更新绿色校准是有用的,应为在一些检测中,例如,BallPerceptor,,使用依赖于适当的绿色分类的FieldBoundary。在完成颜色分类校准并保存当前参数,copyfiles或者bush(查阅2.5节)可以用于当前设置。为了确保cameraSettingsV5.cfg(或者如果NAO是V4模型,cameraSettingsV4.cfg) 和fieldColorsCalibrationV5.cfg (or fieldColorsCalibrationV4.cfg)文件被存储在正确的位置。

图2.2:a)不适当白平衡的图像。b)一样的图片,比a)图有更好的白平衡设置。

识别图像中像素的颜色类别是由ECImageprovider(EC图像提供者)计算的ECImage判断的。为了能够明确区分不同的颜色和轻松定义颜色类别,系统会计算ECImage每个摄像机图像实时的yhs2颜色空间的使用。yhs2颜色空间和yhs2色彩空间的运用理念来源于HSV色彩空间定义,即定义色度分量为在一个向量RGB颜色轮,也即YUV的颜色空间。在yhs2中,色调H描述了U和V分量的矢量角在YUV颜色空间的颜色,同时S表示饱和度分量,它的描述为向量的长度除以 该亮度对应的像素。亮度分量Y则与YUV一样除以饱和度的亮度,由此产生的饱和度值更精确地描述了颜色的实际饱和度,使得它更适合于从中分离 黑白实际的颜色。这是因为在使用YUV时,色度分量的亮度有所依赖(参见图4.6)。
分类方法
对像素的颜色进行分类,首先是通过向饱和度通道施加阈值。如果它是低于给定的阈值,像素将被认为是描述非颜色的,例如黑色或者白色。在这种情况下, 颜色是否是黑色或白色取决于另一个亮度通道阈值。然而,如果给定像素的饱和度高于饱和阈值,并且它的色相值位于该颜色定义的色调范围内,则该像素具有一定的颜色。这种方法在RoboCup 2016使用和设置中有很好的效果。它是如何通过设置的简单的分类参数来使用另一种分类方法 ECImageprovider判断对错呢。在这种情况下,颜色的定义不仅由色相范围,而且由一个范围内的值为每个H,S和Y共同决定.此外,白色和黑色不是由一 个单一的Y通道阈值分离,但有一个最小的Y阈值为白色和A最大Y阈值的黑色,使未分类像素降低饱和度。为了实时地对整个摄像机图像进行分类,无论是色彩转换到yhs2还是颜色分类均使用SSE指令。图4.7显示了图像的表示形式,在yhs2上相机按色彩空间和基于它的颜色,白色,绿色以及“无”(显示灰色 )分类。

图像视图(Image Views)

图像视图展示了相机校准坐标系统的相关调试信息(参见图10.4左)情况,它需要一个标记了的背景图像和图像名字,选择是否 jpeg 压缩和分割,且图像名应使用控制台命令Vi。正式的控制台语法如下:

debug image可以是一般拍照的照片或被SEND DEBUG IMAGE 宏定义的其他图像,下面是目前使用的图像调试信息:
ColoredImage:色阶图。只包含相关的颜色。
GrayscaledImage:图像的Y形通道。
SaturatedImage:图像仅包含计算饱和度的灰度图像。
HuedImage:图像仅包含计算色调的灰度图像。
cnsImage:Sobel对比度归一化图像,包含方向的信息。每个角度都显示为不同的颜色(参见图4.11 b)。
Image:被摄像机提供的图像。
netThumbnail:一个缩减压缩的形象。
binaryDebugImage:灰度图像的二进制版本。由模块AutomaticHeadPitchCalibrator提供。
imagePatches:图样小于整个图像,包含所有通道(例如,可以用来只使用特定的点周围的信息)。
Corrected:类似 image,但是除掉了快门的影响。
HorizonAligned:类似 image,但是对准地平线。
none:定义空白背景。

默认情况下显示的数据是来自机器人下方的摄像机.可以通过upper将摄像机替换为机器人上方的摄像机。选择 jpeg 将会导致机器人在将图片送到 SimRobot 之前对图像进行压缩。当然,这么做的有效前提是SimRobot通过WIFI与机器人相连。选择 segmented 将会使图像视图把每一个像素分类到对应的颜色类而不再使用像素的值。
使用控制台命令 vid 来增加调试图像,举个例子,视图 raw 被定义为如下:

你可以通过附加在一个vid命令中添加off来禁用调试图纸。

颜色校准视图(Color Calibration View)
颜色校准视图提供直接的方式去调节所有颜色类的参数设置。颜色类的参数可以通过移动滑块来改变。颜色类由YHS颜色空间定义(参见4.1.4节)。
下面是一些colorCalibration视图工具栏的按钮。
保存最近颜色文件 切换扩展颜色模式
撤销最新的滑块改变 恢复一个最新滑块改变
最大黑/白饱和度 白色Y阈值
黑色Y阈值 绿色的YHS
你的团队自己的颜色的YHS 对方团队的颜色的YHS
此外每个按钮将显示colorCalibration视图当前设置的相应的颜色类。绿色和两个球衣颜色由YHS选择器定。黑色和白色通过Y阈值和最大的白色/黑色饱和度来定义。图10.5显示了一个绿色校准示例。

2 摄像头校准
2.1 手动校准
在 simrobot 中打开一个 scene, 在控制台中输入
call CameraCalibrator
下面这部分是手动校准的快捷键
-Shift-click in images to point camera to that direction.标定相机指向的方向
- Shift+Ctrl+C: Collect points (initially active) 开始收集点
- Shift+Ctrl+Z: Undo last point 撤销刚才的操作
- Shift+Ctrl+R: Remove all points删除所有收集的点
- Shift+Ctrl+O: Optimize 开始进行优化
- Shift+Ctrl+A: Abort optimization 终止优化
- Shift+Ctrl+S: Save calibration保存校准结果
下面是 call CameraCalibrator返回的信息, 在这里将机器人的位置定义在己方半
场的罚球点处,面向对方半场所以 x的值应设置为-3200
set module:CameraCalibrator:robotPose rotation = 0; translation = { x = -3200; y =
0; };
注:
1. 在校准过程中, 通过移动机器人的头部来收集不同位置的点 (模拟器中通过
shift+左键转换视野,并且可同时使用上下两个摄像头收集点 )。
2. 点的数量不要过多,否则将无法识别。
3. 这里所用的命令可以执行多次,例如,当对收集的点进行过优化之后,还可使用
Shift+Ctrl+C 命令继续收集点,然后再继续使用 Shift+Ctrl+ O 进行优化。
4. 在校准时可利用
vid raw module:CameraMatrixProvider:calibrationHelper命令画出校准后
场地图像,查看校准结果。
2.2 自动校准
在simrobot中打开一个 scene , 在控制台中输入
call CameraCalibratorV6
这里同样需要将x的值设为-3200,机器人的摆放方式也同手动校准方式
set module:CameraCalibratorV6:robotPose rotation = 0; translation = { x = -3200; y
= 0; };
dr module:CameraCalibratorV6:start启动命令
dr module:CameraCalibratorV6:accumulate 开始收集点
dr module:CameraCalibratorV6:stop停止收集
dr module:CameraCalibratorV6:optimize对收集的点进行优化
save representation:CameraCalibration 保存校准结果
注: 校准过程开始,机器人会自动转动头部,操作人员需要站机器人身后,切
记不要遮挡摄像头。
3 颜色校准
3.1 改变图片设置
在simrobot中打开一个 scene , 在控制台中输入
get representation : UpperCameraSettings 返回当前设置
get representation : LowerCameraSettings
下面命令的作用是自动白平衡,有其他参数可选后面将会一一列出
dr module : CameraProvider : DoWhiteBalanceUpper
dr module : CameraProvider : DoWhiteBalanceLower
whiteBalance: 白平衡,允许范围 [2700, 6500].
exposure: 曝光度,允许范围 [0, 1000]. 通常设置为 140,曝光度越高图片会越
显蓝色
gain: 补偿,允许范围 [0, 255]. 通常设置为 50 - 70. 补偿越高噪声越大
autoWhiteBalance: 允许 (1)/禁止 (0) 最好设置为禁止,否则可能会改变图片颜色
或者引入较多噪声
autoExposure: 允许(1)/禁止 (0) 最好设置为禁止,一旦自动会导致图片比较蓝

注 :校准结束后需要上传校准信息到机器人端。

你可能感兴趣的:(nao-Bhuman)