Недавно мы выпустили FiftyOne 0.20, который содержит множество новых интересных функций, которые помогут вам организовывать, визуализировать, искать и исследовать наборы данных компьютерного зрения. Соучредитель Voxel51 и технический директор Брайан Мур рассказал нам о новых функциях на живом веб-семинаре с большим количеством живых демонстраций и примеров кода, чтобы вы могли увидеть все потрясающие возможности в действии.

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

Во-первых, спасибо за голосование за вашу любимую благотворительную организацию!

Вместо халявы мы дали участникам возможность помочь направить наши ежемесячные пожертвования на благотворительные цели. Благотворительная организация, набравшая наибольшее количество голосов, — Wildlife AI. Мы впервые познакомились с ИИ дикой природы через сообщество FiftyOne! Они используют FiftyOne, чтобы позволить своим пользователям легко анализировать данные камеры и создавать свои собственные модели. Мы отправляем благотворительное пожертвование в размере 200 долларов в фонд Wildlife AI от имени сообщества компьютерного зрения.

Что такое пятьдесят один?

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

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

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

  • Визуализируйте, запрашивайте и анализируйте наборы данных компьютерного зрения
  • Оптимизация рабочих процессов аннотирования данных
  • Выявление и исправление ошибок в маркировке
  • Анализ производительности модели как визуально, так и программно
  • И еще десятки рабочих процессов!

Вы можете получить полный обзор FiftyOne в первые пять минут презентации recap video.

Какие новые функции появились в FiftyOne 0.20?

Вот новые функции FiftyOne 0.20, которые Брайан продемонстрировал на вебинаре, и вы можете прочитать основные моменты в разделах ниже:

  • Поиск на естественном языке: теперь вы можете выполнять произвольные поисковые запросы по тексту непосредственно в приложении FiftyOne и Python SDK, используя мультимодальные векторные индексы для ваших наборов данных.
  • Интеграция с Qdrant и Pinecone: новые интеграции с Qdrant и Pinecone для поддержки запросов на сходство текста/изображения
  • API-интерфейс подобия: значительные обновления API-интерфейса подобия FiftyOne Brain, включая настраиваемые серверные части векторной базы данных и возможность изменять существующие индексы.
  • Наборы данных только для облаков точек: теперь вы можете создавать наборы данных, состоящие только из образцов облаков точек, и визуализировать их в представлении сетки приложения.

Предпосылки

Прежде чем углубиться в функции, Брайан сначала установил FiftyOne с pip install fiftyone, загрузил набор данных из зоопарка наборов данных с 200 изображениями, загрузил модель из зоопарка моделей, которая может генерировать вложения как для языка, так и для изображений, а затем вычислил вложения (в частности, сходство индекс, который лежит в основе демонстрируемых новых функций). Теперь, когда у нас есть набор данных и индекс, Брайан запускает приложение FiftyOne, чтобы показать нам новые функции в действии!

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

Поиск на естественном языке

Чтобы использовать поиск на естественном языке теперь, когда выполнены предварительные шаги, Брайан щелкает значок увеличительного стекла на панели сетки образцов приложения FiftyOne и сначала ищет щенки, но затем пытается найти строку, которая немного сложнее: воздушные змеи. высоко в воздухе». По умолчанию возвращаются 25 наиболее точно совпадающих изображений в наборе данных (поскольку 25 — это значение по умолчанию, но его можно настроить).

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

Вы можете увидеть демонстрацию функции поиска на естественном языке с ~ 08:37–17:42 в презентации, в том числе с использованием подмножества набора данных COCO (разделение проверки) с 5000 образцов. Брайан даже залезает под капот, чтобы объяснить, как все это работает: векторный поиск! Кроме того, вы можете выполнять поиск не только по естественному языку, но и выполнять поиск от изображения к изображению. Просто используйте значок сходства изображений в сетке образцов и найдите изображения, похожие на выбранное вами, в наборе данных.

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

Интеграция Quadrant и Pinecone

Начиная с версии 0.20, FiftyOne интегрируется с двумя векторными базами данных: Qdrant и Pinecone. Ранее в презентации Брайан использовал метод compute_similarity(). Метод теперь поддерживает параметр бэкенда, который можно либо настроить для использования встроенной базы данных, либо указать один из двух поддерживаемых бэкендов. Предполагая, что вы настроили векторную базу данных Qdrant или Pinecone, вы можете создавать индексы для своих наборов данных FiftyOne, где векторы хранятся в этой отдельной базе данных. Затем при выполнении поиска по сходству в приложении FiftyOne будет запрашиваться эта база данных, а не встроенная.

Брайан подробно рассматривает обе интеграции и демонстрирует несколько убедительных рабочих процессов компьютерного зрения. Все это можно посмотреть с ~17:42–36:28 в презентации, а узнать о них подробнее можно в документах по интеграции: Qdrant и Pinecone.

Расширенный API подобия

Брайан отмечает, что мы рассмотрели обновления API сходства FiftyOne Brain, потому что это то, что делает все это возможным из презентации:

  • Используйте серверную часть по умолчанию или настройте собственную (Qdrant, Pinecone или добавьте свою собственную)
  • Инициализировать пустой индекс
  • Добавить векторы в существующий индекс
  • Получить векторы из индекса
  • Удалить векторы из индекса

Раньше индексы подобия представляли собой статические объекты, которые нельзя было редактировать после создания. В FiftyOne 0.20 индексы сходства теперь изменяемы!

Краткий обзор обновлений API сходства с ~36:28–37:02 в презентации и здесь, в документации API сходства.

Обновления до поддержки облака точек

Ранее работа с наборами данных облаков точек в приложении заключалась в добавлении образцов облаков точек в виде срезов сгруппированных наборов данных, которые также содержат другие модальности мультимедиа (изображение, видео и т. д.). Однако в FiftyOne 0.20 теперь вы можете создавать наборы данных, содержащие только образцы облака точек, и работать с ними изначально в сетке и модальных представлениях приложения.

Брайан объясняет, как: «Вы можете запустить утилиту, которая существует в инструменте, для создания проекционных изображений. Итак, что он делает, так это берет каждое из облаков точек в наборе данных и генерирует то, что мы называем изображением ортогональной проекции, например, проекцию сверху вниз этого облака точек, а затем сохраняет их в новом поле набора данных. И причина, по которой это полезно, заключается в том, что когда вы открываете представление сетки, у вас есть быстрое представление рендеринга каждого из этих облаков точек, поэтому вы можете быстро просмотреть их, чтобы найти интересующее. И затем, если вы хотите щелкнуть его и работать с ним в трех измерениях, вы можете открыть модальное окно и работать с полной 3D-сценой».

Посмотрите демонстрацию Брайаном новых функций облака точек с ~37:02–45:18 в презентации. Также ознакомьтесь с документами для получения дополнительной информации о добавлении образцов облаков точек и ортогональных проекций в ваши наборы данных FiftyOne и их визуализации в приложении.

Другие примечания

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

Программное обеспечение с открытым исходным кодом, такое как FiftyOne, невозможно без замечательного сообщества, поддерживающего его. Брайан выражает благодарность членам сообщества, которые внесли свой вклад в FiftyOne 0.20.

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

Что дальше

  • Если вам нравится то, что вы видите на GitHub, дайте проекту звезду!
  • "Начать!" Мы упростили запуск и запуск за несколько минут.
  • Присоединяйтесь к сообществу Slack FiftyOne, мы всегда рады помочь!

Первоначально опубликовано на https://voxel51.com 24 апреля 2023 г.