Как распознать объекты с помощью камеры на Webots - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь использовать камеру на https://robotbenchmark.net/ для вождения по шоссе, но у меня возникают некоторые трудности с пониманием руководства камеры и распознавания объектов. Мне удалось распознать некоторые объекты, как показано ниже, с помощью camera.getRecognitionObjects (), но я не могу понять, как я могу получить идентификатор и расстояние или положение указанного c объекта. То, что я пытаюсь сделать, - это распознать линии дороги, чтобы я мог выровнять машину по дороге. Заранее спасибо.

   [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> >]

1 Ответ

1 голос
/ 06 февраля 2020

Вот определение класса cameraRecognitionObject (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, вы получите массив объектов и вы можете легко получить идентификатор и положение (по сравнению с камерой):

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