Определить скорость нескольких автомобилей из видео-Python - PullRequest
0 голосов
/ 30 сентября 2018

Я пишу программу, которая использует камеру контроля скорости (с платой Raspberry Pi Camera Board) и должна делать фотографии автомобилей, скорость которых выше заданной, и отправлять эти фотографии полицейскому, ожидающему дорогу, и сохранятьномер машины.

У меня есть видео, которое записывает под этим углом: Угол захвата У меня есть несколько проблем:

  1. Есть много автомобилей, которые едут одновременнои мне нужно получить информацию обо всех них
  2. Я не могу рассчитать скорость - возможно, проблема возникает из-за того, что я не знаю, как справляться с несколькими автомобилями вместе

Я пробовал алгоритм, который описан здесь, но, возможно, я не очень хорошо его понимаю:

Найти скорость автомобиля по изображениям

Это частьмоего кода, где я пытаюсь определить скорость: * В коде, который я обнаруживаю точку в центре автомобиля и следуя ей во время движения автомобиля, я понимаю, что мне нужно получить точки X, Y и точки X1, Y1,время между ними и сделать расчет.Но когда я использую это: print('centre',centroid[0:2]) я получаю только одну точку (х).

def update_vehicle(self, vehicle, matches):
    # Find if any of the matches fits this vehicle
    for i, match in enumerate(matches):
        contour, centroid = match

        vector = self.get_vector(vehicle.last_position, centroid)
        if self.is_valid_vector(vector):
            vehicle.add_position(centroid)
            self.log.debug("Added match (%d, %d) to vehicle #%d. vector=(%0.2f,%0.2f)"
                , centroid[0], centroid[1], vehicle.id, vector[0], vector[1])

            #i detect the centre of the car and follow it, I've thought, how can I use the info of points of the centre and
            #use it to detect the car, the problem is: I can't understand how to take this info,
            #i need the X & Y point,
            print(centre',centroid[0:2])

            return i

    # No matches fit...
    vehicle.frames_since_seen += 1

    self.log.debug("No match for vehicle #%d. frames_since_seen=%d"
        , vehicle.id, vehicle.frames_since_seen)

    return None

и это функция centroid , которую я использую там:

def get_centroid(x, y, w, h):
    x1 = int(w / 2)

    y1 = int(h / 2)

    cx = x + x1
    cy = y + y1

    return (cx, cy)

Я буду рад помочь.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...