Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

Эффективное управление наборами данных в области компьютерного зрения с помощью Ultralytics

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

Масштабируйте свои проекты в области компьютерного зрения с Ultralytics

Начать

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

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

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

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

Чтобы устранить узкие места в области искусственного интеллекта для систем компьютерного зрения, такие как управление наборами данных и фрагментированные рабочие процессы, мы недавно запустили Ultralytics . Это комплексное рабочее пространство, которое объединяет управление наборами данных, аннотирование, обучение, развертывание и мониторинг в единый рабочий процесс. 

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

Рис. 1. Пример просмотра изображений из набора данных в Ultralytics (Источник)

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

Важность управления наборами данных в компьютерном зрении

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

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

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

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

Как качество набора данных влияет на надежность в реальных условиях

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

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

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

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

Основные аспекты управления наборами данных

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

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

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

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

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

Управление наборами данных с помощью Ultralytics

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

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

Далее давайте рассмотрим основные этапы этого процесса и то, как платформа поддерживает каждый из них.

Загрузка наборов данных на Ultralytics

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

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

Для загрузки платформа поддерживает отдельные изображения, видеофайлы и архивы наборов данных, такие как файлы ZIP, TAR или GZ. Она также поддерживает широко используемые форматы наборов данных, такие как YOLO COCO, что упрощает импорт существующих наборов данных и аннотаций без дополнительного преобразования. Кроме того, вы можете загрузить набор данных с помощью файла NDJSON, экспортированного с платформы, что позволяет легко воссоздавать или повторно использовать наборы данных в разных проектах.

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

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

Аннотирование данных на Ultralytics

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

Рис. 2. Использование Ultralytics для маркировки данных (Источник)

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

Анализ качества наборов данных с помощью Ultralytics

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

Ultralytics включает в себя встроенные функции, позволяющие более эффективно анализировать наборы данных. Эти аналитические данные доступны непосредственно в интерфейсе набора данных на таких вкладках, как «Изображения», «Классы» и «Диаграммы».

На вкладке «Графики» можно просматривать статистические данные на уровне набора данных, такие как распределение по подмножествам (обучающая, валидационная и тестовая), частота классов, а также тепловые карты аннотаций, которые показывают, где на изображениях появляются объекты. 

На вкладке «Классы» представлена разбивка количества аннотаций по классам, что упрощает выявление дисбаланса классов. В то же время на вкладке «Изображения» отображаются сведения на уровне отдельных изображений, такие как размеры, количество аннотаций и распределение меток по отдельным изображениям.

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

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

Экспорт наборов данных из Ultralytics

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

Ultralytics поддерживает несколько форматов экспорта, в том числе YOLO, COCO и NDJSON, что упрощает интеграцию наборов данных в различные рабочие процессы и инструменты для обучения.

Рис. 3. Экспорт набора данных из Ultralytics (Источник)

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

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

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

Повышение качества наборов данных посредством итераций на Ultralytics

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

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

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

В то же время обеспечение точности и согласованности аннотаций — например, правильной маркировки объектов и точного определения ограничительных рамок или масок — помогает модели выучить более надежные шаблоны.

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

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

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

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

Отслеживание изменений в наборах данных с помощью Ultralytics

В рамках процесса разработки модели мы кратко рассмотрели, как наборы данных меняются со временем. По мере добавления новых данных, уточнения аннотаций и обновления классов track этих изменений становится ключевым фактором для поддержания качества данных и обеспечения стабильной производительности модели.

Вот некоторые из ключевых функций Ultralytics , обеспечивающих отслеживание наборов данных и управление версиями:

  • Управление версиями наборов данных: Вы можете создавать фиксированные версии наборов данных в виде моментальных снимков NDJSON. Каждая версия фиксирует ключевые данные, такие как количество изображений, количество классов, количество аннотаций и размер набора данных на определенный момент времени. Эти версии сохраняются и могут быть загружены позже, что упрощает воспроизведение экспериментов и сравнение результатов для разных состояний набора данных.
  • Вкладка «Версии»: все версии набора данных собраны на вкладке «Версии», где можно просматривать историю версий, добавлять описания к изменениям и track набор данных меняется с течением времени.
  • Связь с моделями: на вкладке «Модели» отображаются все модели, обученные на наборе данных, включая такие показатели, как mAP сведения об обучении. Версии наборов данных привязаны к циклам обучения, что помогает понять, как изменения в данных влияют на эффективность модели.
  • Вкладка «Ошибки»: на вкладке «Ошибки» отображаются файлы, обработка которых завершилась сбоем, а также подробная информация об ошибках и рекомендации. Это позволяет выявить и устранить такие проблемы, как поврежденные файлы или неподдерживаемые форматы, до начала обучения.
  • Интерфейс набора данных (вкладки «Изображения» и «Классы»): эти окна позволяют просматривать изображения, проверять аннотации, управлять метками классов и анализировать распределение классов. Такие функции, как фильтрация, сортировка и выявление неанотированных изображений, упрощают отслеживание качества набора данных на протяжении времени.
  • Статистика и диаграммы: встроенные средства визуализации данных, такие как распределение по группам, гистограммы и тепловые карты аннотаций, помогают track в распределении данных и выявлять дисбалансы по мере изменения набора данных.
Рис. 4. Пример анализа распределения классов в наборе данных на Ultralytics (Источник)

Подключение наборов данных к процессам обучения и развертывания на Ultralytics

Ultralytics объединяет различные этапы разработки моделей искусственного интеллекта в единый конвейер. Это оптимизирует процесс превращения необработанных данных в готовые к внедрению приложения искусственного интеллекта для обработки изображений.

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

Рис. 5. Краткий обзор показателей обучения моделей на Ultralytics (Источник)

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

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

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

Передовой опыт управления наборами данных с помощью Ultralytics

Вот несколько ключевых факторов, о которых следует помнить при управлении наборами данных с помощью Ultralytics :

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

Чтобы узнать больше о Ultralytics , ознакомьтесь с официальной Ultralytics .

Основные выводы

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

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

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

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

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