Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Настройки cookie
Нажимая “Принять все файлы cookie”, вы соглашаетесь на сохранение файлов cookie на вашем устройстве с целью улучшения навигации по сайту, анализа использования сайта и помощи в наших маркетинговых усилиях. Подробнее
Узнайте, как модель Ultralytics YOLOv8 может быть использована для оценки скорости в ваших проектах по компьютерному зрению. Попробуйте сами на простом примере кодирования.
Мы, вероятно, все видели дорожные знаки ограничения скорости. Некоторые из нас, возможно, даже получали автоматическое уведомление о нарушении скоростного режима по почте или электронной почте. Системы управления дорожным движением на основе искусственного интеллекта (ИИ) могут автоматически отмечать нарушения скоростного режима благодаря компьютерному зрению. Видеоматериалы в реальном времени, снятые камерами на светофорах и автомагистралях, используются для оценки скорости и повышения безопасности дорожного движения.
Оценка скорости не ограничивается безопасностью на шоссе. Она может использоваться в спорте, автономных транспортных средствах и различных других приложениях. В этой статье мы расскажем, как вы можете использовать модельUltralytics YOLOv8 для оценки скорости в своих проектах по компьютерному зрению. Мы также шаг за шагом рассмотрим пример кодирования, чтобы вы могли попробовать это самостоятельно. Давайте начнем!
Оценка скорости упрощает управление дорожным движением
По данным Всемирной организации здравоохранения (ВОЗ), примерно 1,19 миллиона человек ежегодно погибают в результате дорожно-транспортных происшествий из-за превышения скорости. Кроме того, от 20 до 50 миллионов человек получают несмертельные травмы, многие из которых приводят к инвалидности. Важность безопасности дорожного движения невозможно переоценить, особенно когда оценка скорости помогает предотвратить несчастные случаи, спасает жизни и обеспечивает безопасность и эффективность наших дорог.
Оценка скорости с помощью компьютерного зрения включает в себя обнаружение и отслеживание объектов в видеокадрах, чтобы вычислить, насколько быстро они движутся. Алгоритмы, подобные YOLOv8 , могут идентифицировать и track объекты, такие как автомобили, в последовательных кадрах. Система измеряет расстояние, пройденное этими объектами, используя калиброванные камеры или опорные точки для определения реальных расстояний. Засекая время, которое требуется объектам для перемещения между двумя точками, система рассчитывает их скорость с помощью соотношения "расстояние - время".
Рис. 1. Оценка скорости с помощью модели Ultralytics YOLOv8
Помимо выявления нарушителей скоростного режима, системы оценки скорости, интегрированные с ИИ, могут собирать данные для прогнозирования дорожной ситуации. Эти прогнозы могут поддерживать задачи управления дорожным движением, такие как оптимизация времени работы светофоров и распределение ресурсов. Анализ структуры дорожного движения и причин заторов может быть использован для планирования новых дорог с целью уменьшения заторов.
Применение оценки скорости в других отраслях
Применение оценки скорости выходит за рамки мониторинга дорог. Она также может быть полезна для мониторинга производительности спортсменов, помогая автономным транспортным средствам понимать скорость движущихся вокруг них объектов, выявлять подозрительное поведение и т. д. Везде, где можно использовать камеру для измерения скорости объекта, можно использовать оценку скорости с помощью компьютерного зрения.
Вот несколько примеров того, где используется оценка скорости:
Автономные автомобили Tesla используют оценку скорости на основе компьютерного зрения, чтобы избежать столкновений.
Компьютерное зрение и оценка скорости будут использоваться на Олимпийских играх 2024 года для улучшения аналитики результатов в track атлетике.
Умные города изучают анализ походки пешеходов для мониторинга скорости ходьбы и повышения мобильности и безопасности в городах. Эти системы могут предупреждать водителей о присутствии пешеходов и предотвращать несчастные случаи.
Системы мониторинга поведения животных используют оценку скорости для track перемещения животных и detect признаков дистресса или болезни.
Рис. 2. Оценка скорости может измерять скорость ходьбы человека.
Преимущества оценки скорости с использованием компьютерного зрения
Системы оценки скорости на основе компьютерного зрения заменяют традиционные методы, основанные на датчиках, благодаря своей повышенной точности, экономической эффективности и гибкости. В отличие от систем, использующих дорогие датчики, такие как LiDAR, компьютерное зрение использует стандартные камеры для мониторинга и анализа скорости в режиме реального времени. Решения компьютерного зрения для оценки скорости могут быть легко интегрированы в существующую дорожную инфраструктуру. Кроме того, эти системы могут быть построены для выполнения ряда сложных задач, таких как идентификация типа транспортного средства и анализ структуры дорожного движения, для улучшения общей пропускной способности и безопасности дорожного движения.
Попробуйте сами: Оценка скорости с помощью YOLOv8
Теперь, когда мы имеем четкое представление об оценке скорости и ее применении, давайте рассмотрим, как можно интегрировать оценку скорости в проекты компьютерного зрения с помощью кода. Мы будем detect движущиеся автомобили и оценивать их скорость с помощью модели YOLOv8 .
В этом примере используется видео с машинами на дороге, загруженное из Интернета. Вы можете использовать то же самое видео или любое другое подходящее видео. Модель YOLOv8 определяет центр каждого автомобиля и рассчитывает его скорость в зависимости от того, как быстро этот центр пересекает горизонтальную линию в кадре видео.
Прежде чем мы погрузимся в процесс, важно отметить, что в данном случае расчет расстояния является приблизительным и основан на евклидовом расстоянии. Калибровка камеры не учитывается, поэтому оценка скорости может быть не совсем точной. Кроме того, расчетная скорость может меняться в зависимости от скорости вашего GPU.
Шаг 1: Начнем с установки пакета Ultralytics . Откройте командную строку или терминал и выполните команду, показанную ниже.
pip install ultralytics
Ознакомьтесь с нашим руководством по установкеUltralytics , в котором вы найдете пошаговые инструкции и лучшие практики по процессу установки. Если вы столкнулись с какими-либо проблемами при установке необходимых пакетов для YOLOv8, в нашем руководстве по общим проблемам вы найдете решения и полезные советы.
Шаг 2: Далее мы импортируем необходимые библиотеки. Библиотека OpenCV поможет нам справиться с обработкой видео.
import cv2
from ultralytics import YOLO, solutions
Шаг 3: Затем мы можем загрузить модель YOLOv8 и получить имена классов, которые модель может detect.
model = YOLO("yolov8n.pt")
names = model.model.names
Ознакомьтесь со всеми поддерживаемыми нами моделями, чтобы понять, какая модель лучше всего подходит для вашего проекта.
Шаг 4: На этом шаге мы откроем входной видеофайл с помощью модуля OpenCVVideoCapture. Мы также извлечем из видео ширину, высоту и количество кадров в секунду (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: Ядро сценария обрабатывает видео кадр за кадром. Мы читаем каждый кадр, detect и track объекты. Скорость отслеживаемых объектов оценивается, и аннотированный кадр записывается в выходное видео.
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
Проблемы оценки скорости на основе машинного зрения
Также важно понимать сложности, связанные с реализацией оценки скорости с помощью компьютерного зрения. Неблагоприятные погодные условия, такие как дождь, туман или снег, могут создать проблемы для системы, поскольку они могут препятствовать видимости дороги. Аналогичным образом, заслонения, вызванные другими транспортными средствами или объектами, могут затруднить для этих систем track и точную оценку скорости целевого транспортного средства. Плохие условия освещения, вызывающие тени или блики от солнца, также могут еще больше усложнить задачу оценки скорости.
Еще одна проблема касается вычислительной мощности. Чтобы оценивать скорость в реальном времени, мы должны обрабатывать большой объем визуальных данных с камер дорожного движения высокого качества. Ваше решение может потребовать дорогостоящего оборудования для обработки всего этого и обеспечения быстрой работы без задержек.
Затем возникает вопрос конфиденциальности. Данные, собираемые этими системами, могут включать в себя детали транспортного средства, такие как марка, модель и информация о номерном знаке, которые собираются без их согласия. Некоторые современные HD-камеры могут даже захватывать изображения находящихся в машине людей. Такой сбор данных может вызвать серьезные этические и юридические вопросы, которые необходимо решать с особой осторожностью.
Стремительное движение в будущее
Использование моделиUltralytics YOLOv8 для оценки скорости обеспечивает гибкое и эффективное решение для многих задач. Несмотря на сложности, такие как точность в сложных условиях и решение вопросов конфиденциальности, преимущества многообразны. Оценка скорости с помощью компьютерного зрения более экономична, адаптивна и точна по сравнению со старыми способами. Она полезна в различных отраслях, таких как транспорт, спорт, видеонаблюдение и самоуправляемые автомобили. Учитывая все преимущества и сферы применения, эта технология должна стать ключевой частью будущих интеллектуальных систем.
Интересуетесь ИИ? Присоединяйтесь к нашему сообществу! Изучите наш репозиторий GitHub, чтобы узнать больше о том, как мы используем ИИ для создания инновационных решений в различных отраслях, таких как здравоохранение и сельское хозяйство. Сотрудничайте, внедряйте инновации и учитесь вместе с нами! 🚀