可以加快ChessboardboardCorners的查找速度吗?

tut*_*web 0 opencv computer-vision camera-calibration corner-detection

我发现此帖子OpenCV findChessboardCorners非常慢,但是它不能完全回答我的问题。

我在树莓派上运行相机校准工具,并且要花费大量时间来检测全分辨率图像中的棋盘角。我目前正在重新缩放它们,但是计算出的参数无法用于完整尺寸的图像。

我当时想做的一件事是在较小的图像中检测到角点4倍,然后将角点坐标乘以4,但结果却不尽相同。

您是否认为有办法加快或插入另一个拐角检测?

我正在使用python实现(cv2)

谢谢

Fra*_*ari 6

大部分时间都花在棋盘格提取上,该过程(大致而言)包括三个步骤:检测图像中的棋盘格角,将其细化为亚像素分辨率,并将其与标称棋盘格匹配。

在这三个步骤中,第一步是最昂贵的,因为它涉及处理整个图像。因此,您可以通过检测角点并以较低的分辨率匹配棋盘格(使用cv2.findChessboardCorners)来获得一些时间。然后,您可以将其坐标重新缩放为全分辨率,并对其进行子像素优化(cv2.find4QuadCornersSubpix),以提高准确性。优化例程适用于检测到的拐角附近的较小区域,因此它需要的内存要少得多-这在处理缓存大小有限的CPU时很有用。

此过程也可用于其他原因,请参阅此其他答案。