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

Мы все, наверное, видели дорожные знаки ограничения скорости. Некоторые из нас даже получали автоматические уведомления о нарушении скоростного режима по почте или электронной почте. Системы управления дорожным движением на базе искусственного интеллекта (ИИ) могут автоматически фиксировать нарушения скоростного режима благодаря компьютерному зрению. Кадры в реальном времени, снятые камерами на светофорах и шоссе, используются для оценки скорости и повышения безопасности дорожного движения.
Оценка скорости не ограничивается только безопасностью на шоссе. Ее можно использовать в спорте, автономных транспортных средствах и многих других областях. В этой статье мы обсудим, как ты можешь использовать модель Ultralytics YOLOv8 для оценки скорости в своих проектах по компьютерному зрению. Мы также пошагово разберем пример кода, чтобы ты мог попробовать все самостоятельно. Давай начнем!
Link to this sectionОценка скорости упрощает управление дорожным движением#
По данным Всемирной организации здравоохранения (ВОЗ), ежегодно в дорожно-транспортных происшествиях из-за превышения скорости погибает около 1,19 миллиона человек. Кроме того, от 20 до 50 миллионов человек получают травмы, не приводящие к летальному исходу, многие из которых заканчиваются инвалидностью. Важность безопасности на дорогах невозможно переоценить, особенно когда оценка скорости помогает предотвращать аварии, спасает жизни и делает наши дороги безопасными и эффективными.
Оценка скорости с помощью компьютерного зрения включает обнаружение и отслеживание объектов на кадрах видео для расчета скорости их движения. Алгоритмы, такие как YOLOv8, могут идентифицировать и отслеживать объекты, например транспортные средства, на последовательных кадрах. Система измеряет расстояние, пройденное объектами, используя откалиброванные камеры или опорные точки для оценки реальных расстояний. Засекая время, необходимое объектам для перемещения между двумя точками, система рассчитывает их скорость, используя соотношение расстояния и времени.

Рис 1. Оценка скорости с помощью модели Ultralytics YOLOv8.
Помимо выявления нарушителей скоростного режима, системы оценки скорости с ИИ могут собирать данные для прогнозирования ситуации на дорогах. Эти прогнозы могут помочь в задачах управления движением, таких как оптимизация работы светофоров и распределение ресурсов. Полученная информация о характере движения и причинах заторов может использоваться при планировании новых дорог для снижения пробок.
Link to this sectionПрименение оценки скорости в других отраслях#
Применение оценки скорости выходит далеко за рамки мониторинга дорог. Она также может быть полезна для отслеживания результатов спортсменов, помощи автономным транспортным средствам в понимании скорости движущихся вокруг них объектов, обнаружения подозрительного поведения и т. д. Везде, где камера может быть использована для измерения скорости объекта, можно применять компьютерное зрение для оценки скорости.
Вот несколько примеров того, где используется оценка скорости:
- Автономные автомобили Tesla используют оценку скорости на основе зрения для предотвращения столкновений.
- Компьютерное зрение и оценка скорости будут использоваться на Олимпийских играх 2024 года для улучшения аналитики результатов в легкой атлетике.
- В умных городах изучается анализ походки пешеходов для мониторинга скорости ходьбы с целью повышения мобильности и безопасности в городской среде. Такие системы могут предупреждать водителей о присутствии пешеходов и предотвращать аварии.
- Системы мониторинга поведения животных используют оценку скорости для отслеживания движения животных и обнаружения признаков стресса или болезни.

Рис 2. Оценка скорости позволяет измерить скорость ходьбы человека.
Link to this sectionПреимущества оценки скорости с помощью компьютерного зрения#
Системы оценки скорости на базе зрения вытесняют традиционные методы на основе датчиков благодаря повышенной точности, экономической эффективности и гибкости. В отличие от систем, полагающихся на дорогие сенсоры типа LiDAR, компьютерное зрение использует стандартные камеры для отслеживания и анализа скорости в реальном времени. Решения на базе компьютерного зрения для оценки скорости можно легко интегрировать в существующую дорожную инфраструктуру. Кроме того, эти системы могут быть настроены для выполнения ряда сложных задач, таких как идентификация типа транспортного средства и анализ структуры трафика, для улучшения общего потока движения и безопасности.
Link to this sectionПопробуй сам: оценка скорости с помощью YOLOv8#
Теперь, когда у нас есть четкое понимание оценки скорости и сфер ее применения, давай подробнее рассмотрим, как ты можешь интегрировать оценку скорости в свои проекты по компьютерному зрению с помощью кода. Мы будем обнаруживать движущиеся автомобили и оценивать их скорость с помощью модели YOLOv8.
В этом примере используется видео с автомобилями на дороге, скачанное из интернета. Ты можешь использовать то же самое видео или любое другое подходящее. Модель YOLOv8 определяет центр каждого автомобиля и рассчитывает его скорость на основе того, как быстро этот центр пересекает горизонтальную линию на кадре видео.
Прежде чем мы углубимся, важно отметить, что в данном случае расчет расстояния является приблизительным и основан на евклидовом расстоянии. Калибровка камеры не учитывается, поэтому оценка скорости может быть не совсем точной. Кроме того, расчетная скорость может варьироваться в зависимости от производительности твоего 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: На этом этапе мы откроем входной видеофайл с помощью модуля VideoCapture в OpenCV. Мы также извлечем ширину, высоту и количество кадров в секунду (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: Здесь мы инициализируем объект записи видео (video writer) для сохранения окончательных результатов оценки скорости. Выходной видеофайл будет сохранен как “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:
print("Video frame is empty or video processing has been successfully completed.")
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.pyLink to this sectionПроблемы оценки скорости на основе компьютерного зрения#
Также важно понимать проблемы, связанные с реализацией оценки скорости с помощью компьютерного зрения. Неблагоприятные погодные условия, такие как дождь, туман или снег, могут вызвать проблемы в работе системы, поскольку они ухудшают видимость дороги. Аналогично, перекрытия (окклюзии), вызванные другими транспортными средствами или объектами, могут затруднить точное отслеживание и оценку скорости целевого автомобиля. Плохое освещение, вызывающее тени или блики от солнца, также может еще больше усложнить задачу оценки скорости.
Еще одна проблема связана с вычислительной мощностью. Чтобы оценивать скорость в реальном времени, нам нужно обрабатывать большое количество визуальных данных с высококачественных дорожных камер. Твоему решению может потребоваться дорогостоящее оборудование, чтобы справиться с этим и обеспечить быструю работу без задержек.
Кроме того, существует вопрос конфиденциальности. Данные, собираемые такими системами, могут включать сведения об автомобиле конкретного человека, такие как марка, модель и номерной знак, которые собираются без его согласия. Некоторые современные HD-камеры могут даже делать снимки людей внутри автомобиля. Подобный сбор данных может порождать серьезные этические и правовые вопросы, которые требуют максимально ответственного подхода.
Link to this sectionНа пути к будущему#
Использование модели Ultralytics YOLOv8 для оценки скорости обеспечивает гибкое и эффективное решение для многих задач. Хотя существуют определенные проблемы, такие как точность в сложных условиях и вопросы конфиденциальности, преимущества многочисленны. Оценка скорости на базе компьютерного зрения более экономична, адаптируема и точна по сравнению с традиционными методами. Она полезна в различных секторах, таких как транспорт, спорт, наблюдение и беспилотные автомобили. Учитывая все преимущества и возможности применения, она неизбежно станет ключевой частью будущих умных систем.
Интересуешься ИИ? Присоединяйся к нашему сообществу! Изучи наш репозиторий на GitHub, чтобы узнать больше о том, как мы используем ИИ для создания инновационных решений в различных отраслях, таких как здравоохранение и сельское хозяйство. Сотрудничай, внедряй инновации и учись вместе с нами! 🚀






