4.1.5 Segmentation and Region-Building

4.1.5分割和区域建筑

The ColorScanlineRegionizer scans along vertical and horizontal scanlines whose distances from each other are small enough to detect the field boundary, field lines, and the ball. These scanlines are segmented into regions, i.e. line segments of a similar color based on the colored part of the ECImage. In vertical direction, the sampling frequency is not constant. Instead, it is given by the ScanGrid, the steps of which depend on the vertical orientation of the camera and basically correspond to a distance of a bit less than the expected width of a horizontal field line at that position in the image. Whenever the color classes of two successive scan points on a vertical line differ, the region in between is scanned to find the actual position of the edge between the two neighboring regions. The best position is the one above which enough pixels are found that are classified as color classes different from the one of the previous region. Fig. 4.8 visualizes the subsampling.

ColorScanlineRegionizer沿垂直和水平扫描线扫描,它们彼此的距离检测场边界,场线,和球足够小。这些扫描线被分段到区域,即基于ECImage的彩色部分的相似颜色的线分割。在垂直方向,采样频率不是恒定的。相反,它是ScanGrid给出,这个过程依赖相机的垂直取向和基本相当于稍微少于在图像中那个位置上水平场线的预计宽度的一个距离。每当两个垂直线上的连续扫描点上的颜色类有所不同,之间的区域进行扫描,以查找这两个相邻区域边缘的实际位置。最理想的位置是一个上面有足够的像素被发现可以被归类到不同于之前区域的的一个色类里。图4.8可视化了二次抽样。

In order to save computational time, the ScanGrid starts at the horizon as given by the ImageCoordinateSystem. Additionally, the vertical scanlines are divided into “low resolution” and “high resolution” scanlines. At first, only the low resolution scanlines are computed and used for determining the field boundary. Afterwards, the high resolution scanlines are computed for further processing, starting at the field boundary.

为了节省计算时间,ScanGrid在由the ImageCoordinateSystem提供的水平上开始。此外,垂直扫描线被分成“低分辨率”和“高分辨率”扫描线。起初,只有低分辨率扫描线被计算并用于确定场边界。随后,高分辨率扫描线从场边界开始被计算以作进一步的处理。

4.1.6 Detecting The Field Boundary

4.1.6检测场边界

The rules state that if fields are further away from each other than 3 m, a barrier between them can be omitted. This means that robots can see goals on other fields that look exactly like the goals on their own field. In addition, these goals can even be closer than a goal on their field. Therefore, it is very important to know where the own field ends and to ignore everything outside. For this purpose, our current approach searches for vertical scan lines, starting from the bottom of the image going upwards. Simply using the first non-green pixel for the boundary is not an option, since pixels on field lines and all other objects on the field would comply with such a criterion. In addition, separating two or more fields would not be possible and noise
could lead to false positives.

规则指出,如果场地彼此离得更远,大于3m,它们之间的障碍可以被忽略。这意味着机器人可能会把在其他场地上的目标看起来就像是自己场地啊上的目标。此外,这些目标甚至可能比在自己场地上的目标更近。因此,这是非常重要的,知道在哪里自己场地结束,忽略一切外面的。为了这个目的,我们目前的方法搜索垂直扫描线,从图像的底部将向上开始。简单地使用第一非绿色像素的边界并不是一种选择,因为在球场线和场上所有其他物体上的像素会遵这样的标准。此外,分离的两个或多个区域将是不可能的和噪声可能会导致误报。

Our approach builds a score for each scan line while the pixels are scanned. For each green pixel, a reward is added to the score. For each non-green pixel a penalty is subtracted from it. The pixel where the score is the highest is then selected as boundary spot for the corresponding scan line. The rewards and penalties are modified depending on the distance of the pixel from the robot when projected to the field. Field lines tend to have more green pixels above them in the image. As a result, they are easily skipped, but the gaps between the fields tend to be small in comparison to the next field when they are seen from a greater distance. Thus, for non-green pixels with a distance greater than 3.5 meters, a higher penalty is used. This also helps with noise at the border of the own field. Figure 4.9 shows that most of the spots are placed on the actual boundary using this method.

我们的方法在像素扫描时,为每条扫描线建立分数。对于每一个绿像素,一个奖励被添加到分数。对于每一个非绿色像素,一个惩罚是从分数中减去。然后,选择得分最高的像素作为相应扫描线的边界点。当投影到场地时,奖励和处罚被修改取决于来自机器人的像素的距离。场地线往往有更多的绿色像素在图像上。结果是,他们很容易被跳过,但从较大的距离看它们时,相比于下一个区域,区域之间的间隙趋向于小。因此,对于非绿色的距离大于3.5米的像素,使用较高的惩罚。这也与帮助在自己的场地边界的噪声。图4.9显示,在使用这种方法的时候,大多数的斑点被放置在实际边界。

Since the detection of the field lines (cf. Sect. 4.2.1) should only take place inside the area of the field, the ColorScanlineRegionsVertical are clipped by the FieldBoundary resulting in a representation called ColorScanlineRegionsVerticalClipped that is used for further processing. Since
clipping away the area outside the field also means to remove the regions that are potentially cluttered the most, ignoring them in further processing also benefits the computation time.

由于场地线的检测(参见4.2.1)应只发生在场地区域内,ColorScanlineRegionsVertical被产生一个称为ColorScanlineRegionsVerticalClipped的representation(它被用于更进一步的处理)的FieldBoundary修剪。因为裁剪掉领域以外的区域也意味着,除去可能是最混乱的区域,在进一步处理中忽视它们也有利于计算时间。

Since other robots in the image also produce false positives below the actual boundary, the general idea is to calculate the upper convex hull from all spots. However, such a convex hull is prone to outliers in upward direction. Therefore, an approach similar to the one described by Thomas Reinhardt [22, Sect. 3.5.4] is used. Several hulls are calculated successively from the spots by removing the point of the hull with the highest vertical distances to its direct neighbors. These hulls are then evaluated by comparing them to the spots. The best hull is the one with the most spots in near proximity. This one is selected as boundary. An example can be seen in Fig. 4.9.

由于图像中其他机器人在实际边界线下也会产生误报,总的思路是,从所有的点上计算上​​凸包​​。然而,这样的凸包是容易发生在向上方向上的异常值。因此,与Thomas Reinhardt描述的一种方法相似的方法被使用。几个斑上的包,通过移除与直接邻居有着最大垂直距离的包的点而被计算。这些包,然后通过比较它们和那些斑点而被估测。最好的包附近有着最多的斑。这一个被选择为边界。一个例子可以图4.9。

The lower camera does not see the actual field boundary most of the time. So calculating the boundary in every image would lead to oscillating representations. Thus, the field boundary is calculated on the upper image. Nevertheless, a convex hull is calculated on the lower image too, since the boundary can start there. The resulting hull is stored for one frame in field coordinates so that the movement of the NAO can be compensated in the upper image. It is then used to provide starting points for the calculations. The resulting hull is used as field boundary over two images.

较低的相机大部分时间并没有看到实际的场地边界。因此在美服图像中计算边界,会导致振荡的representations。因此,在上相机图像上的领域的边界被计算出来。尽管如此,一个下相机图像也被计算,因为边界可以从那里开始。由此产生的包被存储在场地坐标一帧,使得NAO的运动可以在上相机图像中得到补偿。然后,它被用来提供用于计算的开始点。由此产生的包被用作两个图像场地边界。