Зелёная проверка
Ссылка копируется в буфер обмена

Ultralytics YOLOv8 Для оценки скорости в проектах по компьютерному зрению

Узнай, как модель Ultralytics YOLOv8 можно использовать для оценки скорости в твоих проектах по компьютерному зрению. Попробуй сам на простом примере кодирования.

Наверное, все мы видели дорожные знаки, ограничивающие скорость. Некоторые из нас, возможно, даже получали автоматическое уведомление о нарушении скоростного режима по почте или электронной почте. Системы управления дорожным движением с искусственным интеллектом (ИИ) могут автоматически отмечать нарушения скоростного режима благодаря компьютерному зрению. Видеозаписи, сделанные в реальном времени камерами на светофорах и магистралях, используются для оценки скорости и повышения безопасности дорожного движения.

Оценка скорости не ограничивается только безопасностью на шоссе. Она может использоваться в спорте, автономных транспортных средствах и различных других приложениях. В этой статье мы расскажем, как ты можешь использовать модельUltralytics YOLOv8 для оценки скорости в своих проектах по компьютерному зрению. Также мы пошагово разберем пример кодирования, чтобы ты мог попробовать сам. Давай начнем!

Оценка скорости облегчает управление движением

По данным Всемирной организации здравоохранения (ВОЗ), ежегодно в результате дорожно-транспортных происшествий из-за превышения скорости погибает около 1,19 миллиона человек. Кроме того, еще от 20 до 50 миллионов получают несмертельные травмы, многие из которых приводят к инвалидности. Важность безопасности дорожного движения невозможно переоценить, особенно когда оценка скорости помогает предотвратить аварии, спасает жизни и сохраняет наши дороги безопасными и эффективными. 

Оценка скорости с помощью компьютерного зрения подразумевает обнаружение и отслеживание объектов в видеокадрах, чтобы вычислить, насколько быстро они движутся. Такие алгоритмы, как YOLOv8 , могут определять и отслеживать объекты, например автомобили, по последовательным кадрам. Система измеряет расстояние, которое проходят эти объекты, используя калиброванные камеры или опорные точки для определения реальных расстояний. Засекая время, которое требуется объектам для перемещения между двумя точками, система вычисляет их скорость, используя соотношение "расстояние-время".

Рис. 1. Оценка скорости с помощью модели Ultralytics YOLOv8

Помимо поимки превышающих скорость, интегрированные в ИИ системы оценки скорости могут собирать данные для составления прогнозов о дорожном движении. Эти прогнозы могут помочь в решении таких задач управления дорожным движением, как оптимизация тайминга сигналов и распределение ресурсов. Понимание закономерностей движения и причин заторов может быть использовано для планирования новых дорог, чтобы уменьшить заторы.

Применение оценки скорости в других отраслях

Применение оценки скорости выходит за рамки мониторинга дорог. Она также может пригодиться для мониторинга результатов спортсменов, помощи автономным транспортным средствам в понимании скорости движущихся вокруг них объектов, обнаружения подозрительного поведения и так далее. Везде, где можно использовать камеру для измерения скорости объекта, можно применить оценку скорости с помощью компьютерного зрения. 

Вот несколько примеров того, где используется оценка скорости:

  • Автономные автомобили Tesla используют оценку скорости на основе технического зрения, чтобы избежать столкновений.
  • Компьютерное зрение и оценка скорости будут использоваться на Олимпийских играх 2024 года для улучшения аналитики результатов в соревнованиях по легкой атлетике.
  • Умные города исследуют анализ походки пешеходов, чтобы контролировать скорость ходьбы и повысить городскую мобильность и безопасность. Эти системы могут предупреждать водителей о присутствии пешеходов и предотвращать аварии.
  • Системы мониторинга поведения животных используют оценку скорости для отслеживания их передвижения и выявления признаков дистресса или болезни.
Рис. 2. Оценка скорости может измерить скорость ходьбы человека.

Преимущества оценки скорости с помощью компьютерного зрения

Системы оценки скорости на основе компьютерного зрения вытесняют традиционные методы, основанные на использовании датчиков, благодаря своей повышенной точности, экономичности и гибкости. В отличие от систем, которые полагаются на дорогостоящие датчики вроде LiDAR, компьютерное зрение использует стандартные камеры для мониторинга и анализа скорости в режиме реального времени. Решения на основе компьютерного зрения для оценки скорости могут быть легко интегрированы в существующую дорожную инфраструктуру. Кроме того, эти системы могут быть созданы для выполнения ряда сложных задач, таких как идентификация типа транспортного средства и анализ схемы движения, чтобы улучшить общий транспортный поток и повысить безопасность.

Попробуй сам: Оценка скорости с помощью YOLOv8

Теперь, когда у нас есть четкое понимание оценки скорости и ее применения, давай подробнее рассмотрим, как ты можешь интегрировать оценку скорости в свои проекты компьютерного зрения с помощью кода. Мы будем обнаруживать движущиеся автомобили и оценивать их скорость с помощью модели YOLOv8 .

В этом примере используется видео с машинами на дороге, загруженное из интернета. Ты можешь использовать то же самое видео или любое другое подходящее. Модель YOLOv8 определяет центр каждого автомобиля и вычисляет его скорость, основываясь на том, как быстро этот центр пересекает горизонтальную линию в кадре видео. 

Рис. 3. Входное видео с автомобилями на дороге

Прежде чем мы погрузимся в процесс, важно отметить, что в данном случае расчет расстояния является приблизительным и основан на евклидовом расстоянии. Калибровка камеры не учитывается, поэтому оценка скорости может быть не совсем точной. Кроме того, расчетная скорость может меняться в зависимости от скорости твоего GPU.

Шаг 1: Начнем с установки пакета Ultralytics . Открой командную строку или терминал и выполни команду, показанную ниже. 


pip install ultralytics

Ознакомься с нашим руководством по установкеUltralytics , в котором ты найдешь пошаговые инструкции и лучшие практики по процессу установки. Если у тебя возникнут проблемы с установкой необходимых пакетов для YOLOv8, в нашем руководстве "Общие проблемы" есть решения и полезные советы.

Шаг 2: Далее мы импортируем необходимые библиотеки. Библиотека OpenCV поможет нам справиться с обработкой видео.


import cv2
from ultralytics import YOLO, solutions

Шаг 3: Затем мы можем загрузить модель YOLOv8 и получить имена классов, которые модель может обнаружить.


model = YOLO("yolov8n.pt")
names = model.model.names

Ознакомься со всеми моделями, которые мы поддерживаем, чтобы понять, какая модель подходит твоему проекту больше всего.

Шаг 4: На этом шаге мы откроем входной видеофайл с помощью модуля OpenCV VideoCapture. Также мы извлечем из видео ширину, высоту и количество кадров в секунду (fps).


cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (
cv2.CAP_PROP_FRAME_WIDTH, 
cv2.CAP_PROP_FRAME_HEIGHT, 
cv2.CAP_PROP_FPS))

Шаг 5: Здесь мы инициализируем видеописатель, чтобы сохранить наши окончательные результаты оценки скорости. Выходной видеофайл будет сохранен под именем "speed_estimation.avi".


video_writer = cv2.VideoWriter(
"speed_estimation.avi",
cv2.VideoWriter_fourcc(*"mp4v"),
fps, (w, h))

‍Шаг6: Далее мы можем определить точки линии для оценки скорости. Для нашего входного видео эта линия будет располагаться горизонтально в середине кадра. Не стесняйся играть со значениями, чтобы расположить линию в наиболее подходящих местах, в зависимости от твоего входного видео. 


line_pts = [(0, 360), (1280, 360)]

Шаг 7: Теперь мы можем инициализировать объект оценки скорости, используя заданные точки линий и имена классов.


speed_obj = solutions.SpeedEstimator(reg_pts=line_pts,
                                      names=names,
                                      view_img=True,)

Шаг 8: Ядро скрипта обрабатывает видео кадр за кадром. Мы читаем каждый кадр, обнаруживаем и отслеживаем объекты. Скорость отслеживаемых объектов оценивается, и аннотированный кадр записывается в выходное видео.


while cap.isOpened():
  success, im0 = cap.read()
  if not success:        
    break
  tracks = model.track(im0, persist=True, show=False)
  im0 = speed_obj.estimate_speed(im0, tracks)
  video_writer.write(im0)

Шаг 9: Наконец, мы освобождаем объекты захвата и записи видео и закрываем все окна OpenCV.


cap.release()
video_writer.release()
cv2.destroyAllWindows()

Шаг 10: Сохрани свой скрипт. Если ты работаешь из терминала или командной строки, запусти скрипт, используя следующую команду:


python your_script_name.py

Если твой код выполнится успешно, то твой выходной видеофайл будет выглядеть так.

Рис. 4. Вывод оценки скорости с помощью YOLOv8.


Проблемы оценки скорости с помощью зрения

Также важно понимать сложности, связанные с реализацией оценки скорости с помощью компьютерного зрения. Неблагоприятные погодные условия, такие как дождь, туман или снег, могут создать проблемы для системы, так как они могут препятствовать видимости дороги. Аналогичным образом, окклюзии, вызванные другими транспортными средствами или объектами, могут затруднить для этих систем отслеживание и точную оценку скорости целевого транспортного средства. Плохие условия освещения, вызывающие тени или блики от солнца, также могут еще больше усложнить задачу оценки скорости.

Еще одна проблема связана с вычислительными мощностями. Чтобы оценить скорость в реальном времени, нам нужно обработать множество визуальных данных с высококачественных дорожных камер. Твоему решению может потребоваться дорогостоящее оборудование, чтобы справиться со всем этим и обеспечить быструю работу без задержек.

Кроме того, существует проблема конфиденциальности. Данные, собираемые этими системами, могут включать в себя такие сведения о транспортном средстве человека, как марка, модель и номерной знак, которые собираются без его согласия. Некоторые современные HD-камеры могут даже захватывать изображения пассажиров, находящихся в машине. Такой сбор данных может вызвать серьезные этические и юридические проблемы, к которым нужно подходить с особой тщательностью.

Ускорение на пути к будущему

Использование моделиUltralytics YOLOv8 для оценки скорости обеспечивает гибкое и эффективное решение для многих задач. Несмотря на сложности, такие как точность в сложных условиях и решение вопросов конфиденциальности, преимущества многообразны. Оценка скорости с помощью компьютерного зрения более экономична, адаптивна и точна по сравнению со старыми способами. Она полезна в различных отраслях, таких как транспорт, спорт, видеонаблюдение и самоуправляемые автомобили. Учитывая все преимущества и сферы применения, ей суждено стать ключевой частью будущих умных систем.

Интересуешься искусственным интеллектом? Подключайся к нашему сообществу! Изучи наш репозиторий на GitHub, чтобы узнать больше о том, как мы используем ИИ для создания инновационных решений в различных отраслях, таких как здравоохранение и сельское хозяйство. Сотрудничай, внедряй инновации и учись вместе с нами! 🚀

Логотип FacebookЛоготип ТвиттераЛоготип LinkedInСимвол копирования-ссылки

Читайте больше в этой категории

Давай вместе построим будущее
искусственного интеллекта!

Начни свое путешествие с будущим машинного обучения