Узнай, как модель Ultralytics YOLOv8 можно использовать для оценки скорости в твоих проектах по компьютерному зрению. Попробуй сам на простом примере кодирования.
Наверное, все мы видели дорожные знаки, ограничивающие скорость. Некоторые из нас, возможно, даже получали автоматическое уведомление о нарушении скоростного режима по почте или электронной почте. Системы управления дорожным движением с искусственным интеллектом (ИИ) могут автоматически отмечать нарушения скоростного режима благодаря компьютерному зрению. Видеозаписи, сделанные в реальном времени камерами на светофорах и магистралях, используются для оценки скорости и повышения безопасности дорожного движения.
Оценка скорости не ограничивается только безопасностью на шоссе. Она может использоваться в спорте, автономных транспортных средствах и различных других приложениях. В этой статье мы расскажем, как ты можешь использовать модельUltralytics YOLOv8 для оценки скорости в своих проектах по компьютерному зрению. Также мы пошагово разберем пример кодирования, чтобы ты мог попробовать сам. Давай начнем!
По данным Всемирной организации здравоохранения (ВОЗ), ежегодно в результате дорожно-транспортных происшествий из-за превышения скорости погибает около 1,19 миллиона человек. Кроме того, еще от 20 до 50 миллионов получают несмертельные травмы, многие из которых приводят к инвалидности. Важность безопасности дорожного движения невозможно переоценить, особенно когда оценка скорости помогает предотвратить аварии, спасает жизни и сохраняет наши дороги безопасными и эффективными.
Оценка скорости с помощью компьютерного зрения подразумевает обнаружение и отслеживание объектов в видеокадрах, чтобы вычислить, насколько быстро они движутся. Такие алгоритмы, как YOLOv8 , могут определять и отслеживать объекты, например автомобили, по последовательным кадрам. Система измеряет расстояние, которое проходят эти объекты, используя калиброванные камеры или опорные точки для определения реальных расстояний. Засекая время, которое требуется объектам для перемещения между двумя точками, система вычисляет их скорость, используя соотношение "расстояние-время".
Помимо поимки превышающих скорость, интегрированные в ИИ системы оценки скорости могут собирать данные для составления прогнозов о дорожном движении. Эти прогнозы могут помочь в решении таких задач управления дорожным движением, как оптимизация тайминга сигналов и распределение ресурсов. Понимание закономерностей движения и причин заторов может быть использовано для планирования новых дорог, чтобы уменьшить заторы.
Применение оценки скорости выходит за рамки мониторинга дорог. Она также может пригодиться для мониторинга результатов спортсменов, помощи автономным транспортным средствам в понимании скорости движущихся вокруг них объектов, обнаружения подозрительного поведения и так далее. Везде, где можно использовать камеру для измерения скорости объекта, можно применить оценку скорости с помощью компьютерного зрения.
Вот несколько примеров того, где используется оценка скорости:
Системы оценки скорости на основе компьютерного зрения вытесняют традиционные методы, основанные на использовании датчиков, благодаря своей повышенной точности, экономичности и гибкости. В отличие от систем, которые полагаются на дорогостоящие датчики вроде LiDAR, компьютерное зрение использует стандартные камеры для мониторинга и анализа скорости в режиме реального времени. Решения на основе компьютерного зрения для оценки скорости могут быть легко интегрированы в существующую дорожную инфраструктуру. Кроме того, эти системы могут быть созданы для выполнения ряда сложных задач, таких как идентификация типа транспортного средства и анализ схемы движения, чтобы улучшить общий транспортный поток и повысить безопасность.
Теперь, когда у нас есть четкое понимание оценки скорости и ее применения, давай подробнее рассмотрим, как ты можешь интегрировать оценку скорости в свои проекты компьютерного зрения с помощью кода. Мы будем обнаруживать движущиеся автомобили и оценивать их скорость с помощью модели YOLOv8 .
В этом примере используется видео с машинами на дороге, загруженное из интернета. Ты можешь использовать то же самое видео или любое другое подходящее. Модель YOLOv8 определяет центр каждого автомобиля и вычисляет его скорость, основываясь на том, как быстро этот центр пересекает горизонтальную линию в кадре видео.
Прежде чем мы погрузимся в процесс, важно отметить, что в данном случае расчет расстояния является приблизительным и основан на евклидовом расстоянии. Калибровка камеры не учитывается, поэтому оценка скорости может быть не совсем точной. Кроме того, расчетная скорость может меняться в зависимости от скорости твоего GPU.
Шаг 1: Начнем с установки пакета Ultralytics . Открой командную строку или терминал и выполни команду, показанную ниже.
Ознакомься с нашим руководством по установкеUltralytics , в котором ты найдешь пошаговые инструкции и лучшие практики по процессу установки. Если у тебя возникнут проблемы с установкой необходимых пакетов для YOLOv8, в нашем руководстве "Общие проблемы" есть решения и полезные советы.
Шаг 2: Далее мы импортируем необходимые библиотеки. Библиотека OpenCV поможет нам справиться с обработкой видео.
Шаг 3: Затем мы можем загрузить модель YOLOv8 и получить имена классов, которые модель может обнаружить.
Ознакомься со всеми моделями, которые мы поддерживаем, чтобы понять, какая модель подходит твоему проекту больше всего.
Шаг 4: На этом шаге мы откроем входной видеофайл с помощью модуля OpenCV VideoCapture. Также мы извлечем из видео ширину, высоту и количество кадров в секунду (fps).
Шаг 5: Здесь мы инициализируем видеописатель, чтобы сохранить наши окончательные результаты оценки скорости. Выходной видеофайл будет сохранен под именем "speed_estimation.avi".
Шаг6: Далее мы можем определить точки линии для оценки скорости. Для нашего входного видео эта линия будет располагаться горизонтально в середине кадра. Не стесняйся играть со значениями, чтобы расположить линию в наиболее подходящих местах, в зависимости от твоего входного видео.
Шаг 7: Теперь мы можем инициализировать объект оценки скорости, используя заданные точки линий и имена классов.
Шаг 8: Ядро скрипта обрабатывает видео кадр за кадром. Мы читаем каждый кадр, обнаруживаем и отслеживаем объекты. Скорость отслеживаемых объектов оценивается, и аннотированный кадр записывается в выходное видео.
Шаг 9: Наконец, мы освобождаем объекты захвата и записи видео и закрываем все окна OpenCV.
Шаг 10: Сохрани свой скрипт. Если ты работаешь из терминала или командной строки, запусти скрипт, используя следующую команду:
Если твой код выполнится успешно, то твой выходной видеофайл будет выглядеть так.
Также важно понимать сложности, связанные с реализацией оценки скорости с помощью компьютерного зрения. Неблагоприятные погодные условия, такие как дождь, туман или снег, могут создать проблемы для системы, так как они могут препятствовать видимости дороги. Аналогичным образом, окклюзии, вызванные другими транспортными средствами или объектами, могут затруднить для этих систем отслеживание и точную оценку скорости целевого транспортного средства. Плохие условия освещения, вызывающие тени или блики от солнца, также могут еще больше усложнить задачу оценки скорости.
Еще одна проблема связана с вычислительными мощностями. Чтобы оценить скорость в реальном времени, нам нужно обработать множество визуальных данных с высококачественных дорожных камер. Твоему решению может потребоваться дорогостоящее оборудование, чтобы справиться со всем этим и обеспечить быструю работу без задержек.
Кроме того, существует проблема конфиденциальности. Данные, собираемые этими системами, могут включать в себя такие сведения о транспортном средстве человека, как марка, модель и номерной знак, которые собираются без его согласия. Некоторые современные HD-камеры могут даже захватывать изображения пассажиров, находящихся в машине. Такой сбор данных может вызвать серьезные этические и юридические проблемы, к которым нужно подходить с особой тщательностью.
Интересуешься искусственным интеллектом? Подключайся к нашему сообществу! Изучи наш репозиторий на GitHub, чтобы узнать больше о том, как мы используем ИИ для создания инновационных решений в различных отраслях, таких как здравоохранение и сельское хозяйство. Сотрудничай, внедряй инновации и учись вместе с нами! 🚀
Начни свое путешествие с будущим машинного обучения