如何在 Webots 上使用摄像头识别物体

How to Recognize objects using camera on Webots

我正在尝试在 https://robotbenchmark.net/ 上使用摄像头进行公路驾驶,但我在理解摄像头手册和物体识别方面遇到了一些困难。我已经能够使用 camera.getRecognitionObjects() 识别出如下所示的一些对象,但我不明白如何获取特定对象的 ID 和距离或位置。我想要帮助的是识别道路线,以便我可以将汽车与道路对齐。 提前致谢。

   [highway_driving] 3
   [highway_driving] [<controller.CameraRecognitionObject; proxy of <Swig Object of type 'webots::CameraRecognitionObject 
*' at 0x7fb72c2233c0> >, <controller.CameraRecognitionObject; 
    proxy of <Swig Object of type 'webots::CameraRecognitionObject *' at 0x7fb72c2233f0> >, 
    <controller.CameraRecognitionObject; proxy of <Swig Object of type 'webots::CameraRecognitionObject *' at 0x7fb72c223420> >]

这里是cameraRecognitionObject的定义class (https://www.cyberbotics.com/doc/reference/camera?tab-language=python#wb_camera_has_recognition)

from controller import CameraRecognitionObject

class CameraRecognitionObject:
    def get_id(self):
    def get_position(self):
    def get_orientation(self):
    def get_size(self):
    def get_position_on_image(self):
    def get_size_on_image(self):
    def get_number_of_colors(self):
    def get_colors(self):
    def get_model(self):

因此,一旦你调用Camera.getRecognitionObjects你会得到一个对象数组,你可以很容易地得到id和位置(与相机相比):

firstObject = Camera.getRecognitionObjects()[0]
id = firstObject.get_id()
position = firstObject.get_position()