Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Настройки cookie
Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Узнайте, как модель Ultralytics YOLOv8 можно использовать для оценки скорости в ваших проектах компьютерного зрения. Попробуйте сами, используя простой пример кода.
Мы, вероятно, все видели дорожные знаки ограничения скорости. Некоторые из нас, возможно, даже получали автоматическое уведомление о нарушении скоростного режима по почте или электронной почте. Системы управления дорожным движением на основе искусственного интеллекта (ИИ) могут автоматически отмечать нарушения скоростного режима благодаря компьютерному зрению. Видеоматериалы в реальном времени, снятые камерами на светофорах и автомагистралях, используются для оценки скорости и повышения безопасности дорожного движения.
Оценка скорости не ограничивается только безопасностью на дорогах. Она может использоваться в спорте, автономных транспортных средствах и различных других приложениях. В этой статье мы обсудим, как можно использовать модель Ultralytics YOLOv8 для оценки скорости в ваших проектах компьютерного зрения. Мы также шаг за шагом рассмотрим пример кода, чтобы вы могли попробовать это самостоятельно. Давайте начнем!
Оценка скорости упрощает управление дорожным движением
По данным Всемирной организации здравоохранения (ВОЗ), примерно 1,19 миллиона человек ежегодно погибают в результате дорожно-транспортных происшествий из-за превышения скорости. Кроме того, от 20 до 50 миллионов человек получают несмертельные травмы, многие из которых приводят к инвалидности. Важность безопасности дорожного движения невозможно переоценить, особенно когда оценка скорости помогает предотвратить несчастные случаи, спасает жизни и обеспечивает безопасность и эффективность наших дорог.
Оценка скорости с использованием компьютерного зрения включает в себя обнаружение и отслеживание объектов в видеокадрах для расчета скорости их движения. Алгоритмы, такие как YOLOv8, могут идентифицировать и отслеживать объекты, такие как транспортные средства, в последовательных кадрах. Система измеряет расстояние, которое проходят эти объекты, используя откалиброванные камеры или опорные точки для определения расстояний в реальном мире. Измеряя время, необходимое объектам для перемещения между двумя точками, система вычисляет их скорость, используя отношение расстояния ко времени.
Рис. 1. Оценка скорости с использованием модели Ultralytics YOLOv8
Помимо выявления нарушителей скоростного режима, системы оценки скорости, интегрированные с ИИ, могут собирать данные для прогнозирования дорожной ситуации. Эти прогнозы могут поддерживать задачи управления дорожным движением, такие как оптимизация времени работы светофоров и распределение ресурсов. Анализ структуры дорожного движения и причин заторов может быть использован для планирования новых дорог с целью уменьшения заторов.
Применение оценки скорости в других отраслях
Применение оценки скорости выходит за рамки мониторинга дорог. Она также может быть полезна для мониторинга производительности спортсменов, помогая автономным транспортным средствам понимать скорость движущихся вокруг них объектов, выявлять подозрительное поведение и т. д. Везде, где можно использовать камеру для измерения скорости объекта, можно использовать оценку скорости с помощью компьютерного зрения.
Вот несколько примеров того, где используется оценка скорости:
Автономные автомобили Tesla используют оценку скорости на основе компьютерного зрения, чтобы избежать столкновений.
Компьютерное зрение и оценка скорости будут использоваться на Олимпийских играх 2024 года для улучшения анализа производительности в легкой атлетике.
Умные города изучают анализ походки пешеходов для мониторинга скорости ходьбы и повышения мобильности и безопасности в городах. Эти системы могут предупреждать водителей о присутствии пешеходов и предотвращать несчастные случаи.
Системы мониторинга поведения животных используют оценку скорости для отслеживания передвижения животных и выявления признаков дистресса или болезни.
Рис. 2. Оценка скорости может измерять скорость ходьбы человека.
Преимущества оценки скорости с использованием компьютерного зрения
Системы оценки скорости на основе компьютерного зрения заменяют традиционные методы, основанные на датчиках, благодаря своей повышенной точности, экономической эффективности и гибкости. В отличие от систем, использующих дорогие датчики, такие как LiDAR, компьютерное зрение использует стандартные камеры для мониторинга и анализа скорости в режиме реального времени. Решения компьютерного зрения для оценки скорости могут быть легко интегрированы в существующую дорожную инфраструктуру. Кроме того, эти системы могут быть построены для выполнения ряда сложных задач, таких как идентификация типа транспортного средства и анализ структуры дорожного движения, для улучшения общей пропускной способности и безопасности дорожного движения.
Попробуйте сами: Оценка скорости с использованием YOLOv8
Теперь, когда у нас есть четкое понимание оценки скорости и ее применения, давайте подробнее рассмотрим, как можно интегрировать оценку скорости в ваши проекты компьютерного зрения с помощью кода. Мы будем обнаруживать движущиеся транспортные средства и оценивать их скорость с помощью модели YOLOv8.
В этом примере используется видео с автомобилями на дороге, загруженное из Интернета. Вы можете использовать то же видео или любое другое подходящее видео. Модель YOLOv8 определяет центр каждого транспортного средства и вычисляет его скорость на основе того, как быстро этот центр пересекает горизонтальную линию в видеокадре.
Прежде чем мы углубимся, важно отметить, что в данном случае расчет расстояния является приблизительным и основан на евклидовом расстоянии. Калибровка камеры не учитывается, поэтому оценка скорости может быть не совсем точной. Кроме того, расчетная скорость может варьироваться в зависимости от скорости вашего графического процессора.
Шаг 1: Начнем с установки пакета Ultralytics. Откройте командную строку или терминал и выполните команду, показанную ниже.
Шаг 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: Здесь мы инициализируем модуль записи видео, чтобы сохранить окончательные результаты оценки скорости. Выходной видеофайл будет сохранен как “speed_estimation.avi”.
Шаг 6: Далее мы можем определить точки линии для оценки скорости. Для нашего входного видео эта линия будет размещена горизонтально посередине кадра. Не стесняйтесь экспериментировать со значениями, чтобы разместить линию в наиболее подходящем месте, в зависимости от вашего входного видео.
line_pts = [(0, 360), (1280, 360)]
Шаг 7: Теперь мы можем инициализировать объект оценки скорости, используя определенные точки линии и названия классов.
Шаг 8: Ядро скрипта обрабатывает видео кадр за кадром. Мы считываем каждый кадр, обнаруживаем и отслеживаем объекты. Оценивается скорость отслеживаемых объектов, и аннотированный кадр записывается в выходное видео.
while cap.isOpened():
success, im0 = cap.read()
ifnot 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.
Шаг 10: Сохраните свой скрипт. Если вы работаете из терминала или командной строки, запустите скрипт, используя следующую команду:
python your_script_name.py
Проблемы оценки скорости на основе машинного зрения
Также важно понимать проблемы, связанные с реализацией оценки скорости с использованием компьютерного зрения. Неблагоприятные погодные условия, такие как дождь, туман или снег, могут создавать проблемы для системы, поскольку они могут ухудшить видимость дороги. Аналогично, окклюзии, вызванные другими транспортными средствами или объектами, могут затруднить для этих систем точное отслеживание и оценку скорости целевого транспортного средства. Плохие условия освещения, вызывающие тени или блики от солнца, также могут усложнить задачу оценки скорости.
Еще одна проблема касается вычислительной мощности. Чтобы оценивать скорость в реальном времени, мы должны обрабатывать большой объем визуальных данных с камер дорожного движения высокого качества. Ваше решение может потребовать дорогостоящего оборудования для обработки всего этого и обеспечения быстрой работы без задержек.
Затем возникает вопрос конфиденциальности. Данные, собираемые этими системами, могут включать в себя детали транспортного средства, такие как марка, модель и информация о номерном знаке, которые собираются без их согласия. Некоторые современные HD-камеры могут даже захватывать изображения находящихся в машине людей. Такой сбор данных может вызвать серьезные этические и юридические вопросы, которые необходимо решать с особой осторожностью.
Стремительное движение в будущее
Использование модели Ultralytics YOLOv8 для оценки скорости предоставляет гибкое и эффективное решение для многих применений. Несмотря на наличие проблем, таких как точность в сложных условиях и решение вопросов конфиденциальности, преимуществ много. Оценка скорости с использованием компьютерного зрения является более экономичной, адаптируемой и точной по сравнению со старыми способами. Она полезна в различных секторах, таких как транспорт, спорт, наблюдение и самоуправляемые автомобили. Со всеми преимуществами и приложениями ей суждено стать ключевой частью будущих интеллектуальных систем.
Интересуетесь ИИ? Присоединяйтесь к нашему сообществу! Изучите наш репозиторий GitHub, чтобы узнать больше о том, как мы используем ИИ для создания инновационных решений в различных отраслях, таких как здравоохранение и сельское хозяйство. Сотрудничайте, внедряйте инновации и учитесь вместе с нами! 🚀