Я делаю проект, чтобы найти скорость транспортного средства из изображений. Мы берем эти изображения из автомобиля. Мы будем отмечать какой-то объект с 1-го изображения в качестве ссылки. Используя свойства одного и того же объекта на следующем изображении, мы должны рассчитать скорость движущегося транспортного средства. Может кто-нибудь мне помочь? Я использую python opencv. Мне удалось найти отмеченный пиксель во втором изображении, используя метод оптического потока. Может ли кто-нибудь помочь мне с остальными?Найти скорость автомобиля из изображений
ответ
Зная частоту обнаружения, вы должны теперь найти расстояние между последовательными позициями маркера.
Чтобы найти это расстояние, я предлагаю оценить поз маркера для каждого изображения. Понятно, что «поза» представляет собой матрицу преобразования, выражающую координаты объекта относительно камеры. После того, как у вас есть эти последовательные координаты, вы можете вычислить расстояние, а затем скорость.
Оценка позиции представляет собой процесс вычисления положения и ориентации 3D-объект относительно 2D-камеры. Полученная поза представляет собой матрицу преобразования, описывающую референт объекта в референтной части камеры.
OpenCV реализует алгоритм оценки Поза: Posit. Док говорит:
Принимая во внимание некоторые 3D-очки (в объекте системе координат) объекта, по мере четыре некомпланарных точек, их соответствующие 2D проекции в изображения, а также фокусное расстояние камера, алгоритм способен оценить позу объекта.
Это означает:
- Вы должны знать фокусное расстояние камеры
- Вы должны знать геометрию маркеров
- Вы должны быть в состоянии соответствовать четыре знать точки маркеров в 2D-изображении
Возможно, вам придется вычислить фокусное расстояние камеры, используя calibration routines, предоставляемый OpenCV. Я думаю, у вас есть еще две требуемые данные.
Edit:
// Algorithm example
MarkerCoords = {Four coordinates of know 3D points}
I1 = take 1st image
F1 = focal(I1)
MarkerPixels1 = {Matching pixels in I1}
Pose1 = posit(MarkerCoords, MarkerPixels1, F1)
I2 = take 2nd image
F2 = focal(I2)
MarkerPixels2 = {Matching pixels in I2 by optical flow}
Pose2 = posit(MarkerCoords, MarkerPixels2, F2)
o1 = origin_of_camera * Pose1 // Origin of camera is
o2 = origin_of_camera * Pose2 // typically [0,0,0]
dist = euclidean_distance(o1, o2)
speed = dist/frequency
Edit 2: "Какова частота приобретения" (ответы на комментарии)
Вычисление скорости вашего транспортного средства эквивалентно вычислению скорости маркера. (В первом случае ссылочным является маркер, прикрепленный к земле, во втором случае ссылочной является камера, прикрепленная к транспортному средству.) Это выражается следующим уравнением:
speed = D/(t2-t1)
С:
D
расстояние[o1 o2]
o1
положением маркеров во времяt1
o2
положения маркеров в времяt2
Вы можете получить прошедшее время либо путем извлечения t1
и t2
из метаданных ваших фотографий, либо из частоты получения вашего устройства формирования изображения: t2-t1 = T = 1/F
.
«Не будет ли лучше отмечать простые вещи, такие как плакаты? И если это не так, мы можем рассматривать это как объект 2d?»
Это не представляется возможным с помощью алгоритма Posit (или с любой другой позе алгоритм оценки, насколько я знаю): он требует четырех некомпланарными баллов. Это означает, что вы не можете выбрать 2D-объект, встроенный в 3D-пространство, вам нужно выбрать объект с некоторой глубиной.
С другой стороны, вы можете использовать действительно простую форму, насколько это объем. (Например, куб.)
У меня есть серьезные сомнения. Поскольку у нас будет свобода отмечать объекты сами по себе, не лучше ли будет отмечать простые вещи, такие как плакаты (в основном прямоугольник в форме)? И если это не так, мы рассматриваем его как объект 2d? А какая частота сбора данных? Я немного новичок в таких условиях. –
И спасибо за ваш ценный ответ. :) –
- 1. По умолчанию скорость автомобиля?
- 2. AS3: скорость движения автомобиля
- 3. как рассчитать скорость автомобиля с помощью акселерометра?
- 4. Программа класса автомобиля, не отображающая обновленную скорость
- 5. Единство: начальная скорость для игрока автомобиля
- 6. PHP Найти Марка/Модель автомобиля из строки
- 7. Запросы изображений страницы скорость
- 8. Скорость загрузки изображений Android
- 9. Svg Скорость рисования изображений
- 10. Установите максимальную и текущую скорость автомобиля в Phaser
- 11. Как рассчитать скорость нашего автомобиля с помощью iphone
- 12. Как рассчитать скорость автомобиля с помощью ускорения в Android?
- 13. Как найти тип автомобиля в Veins?
- 14. Изменение скорости объекта (автомобиля)
- 15. Управление скоростью автомобиля
- 16. Тиснение автомобиля OpenGL из многоугольника
- 17. C++ Конструктор Класс автомобиля
- 18. Получить данные из автомобиля стола
- 19. Рассчитать скорость транспортного средства из предложений NMEA
- 20. Обнаружить прицеп для автомобиля
- 21. iOS locationManager - задержка датчика автомобиля
- 22. Найти скорость загрузки для progressbar
- 23. Найти скорость процессора устройства iOS
- 24. Найти скорость мыши в C#
- 25. Возвращение автомобиля, предоставляя модель автомобиля из файла XML с использованием веб-службы .asmx
- 26. Скорость страницы очень низкая причина разбитых изображений
- 27. фильтрация изображений разделимая скорость матрицы MATLAB
- 28. Скорость обработки изображений на мобильных устройствах
- 29. Частота кадров iPhone и скорость смены изображений
- 30. RTS Движение сетки автомобиля
Не будет ли это также сильно зависеть от камеры, используемой для съемки? Также следует учитывать скорость затвора. – darioo
есть что рассмотреть: например. перпендикулярное расстояние объекта маркировки от линии движения вашего автомобиля, время между двумя изображениями – mauris
, вероятно, вам следует предоставить некоторый код, чтобы показать ваш процесс. Без этого каждому будет трудно ответить. –