Добро пожаловать в наш еженедельный блог с советами и рекомендациями FiftyOne, где мы резюмируем интересные вопросы и ответы, недавно появившиеся на Slack, GitHub, Stack Overflow и Reddit.

Подождите, что такое FiftyOne?

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

Хорошо, давайте погрузимся в советы и рекомендации этой недели!

Просмотр приложения FiftyOne с интерактивными графиками

Участник сообщества Slack Патрик Роусом спросил:

Можно ли открыть приложение FiftyOne вместе с интерактивным графиком в JupyterLab?

Да! Есть несколько способов сделать это.

Щелкнув правой кнопкой мыши вывод ячейки в блокноте JupyterLab и выбрав Создать новое представление для вывода, вы можете просмотреть вывод, а именно графический интерфейс FiftyOne, на другой вкладке JupyterLab. Затем вы можете перетащить вкладку по горизонтали или вертикали, как показано здесь, чтобы создать разделенное представление.

Кроме того, вы можете просматривать приложение FiftyOne в отдельном окне или вкладке браузера. Для этого передайте опцию auto = False при создании сеанса:

session = fo.launch_app(…, auto=False)

Вы можете найти URL-адрес сеанса, запустив session.url, который затем скопируйте и вставьте в свой браузер.

Узнайте больше о InteractivePlot и интерактивном построении графиков в блокнотах Jupyter в FiftyOne Docs.

Импорт данных из CVAT

Член сообщества Slack Джой Тиммерманс спросила:

«У меня уже есть некоторые данные, загруженные в CVAT. можно ли подключить это напрямую к FiftyOne?»

FiftyOne имеет очень тесную интеграцию с CVAT, что упрощает как создание набора данных FiftyOne из списка задач CVAT, так и создание задач аннотации CVAT непосредственно из FiftyOne.

Если медиафайлы не загружаются на диск, то вы можете импортировать аннотации из CVAT, используя предоставленный нами метод import_annotations, как в примере ниже.

В качестве альтернативы, если носитель загружается на диск, вы можете указать аргумент data_path вместо download_media.

Узнайте больше об интеграции CVAT FiftyOne в Документах FiftyOne.

Выбор образцов с набором атрибутов

Джеффри Китинг, член сообщества Slack, спросил:

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

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

Узнайте больше о DatasetView и условиях соответствия в FiftyOne Docs.

Использование FiftyOne с изображениями из Интернета

Анонимный пользователь Stack Overflow спросил:

«Можно ли использовать FiftyOne с изображениями, доступными по внешним URL-адресам (например, в изображениях Google), без предварительной загрузки изображений?

Этот функционал доступен в FiftyOne Teams, с помощью которого вы можете наводить образцы непосредственно на https:// образ (а также на медиафайлы, хранящиеся в Amazon S3, Google Cloud Storage, Azure, MinIO и т. д.).

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

Отправка больших заданий аннотации в Label Studio

Член сообщества Slack Бретт Исраэльсен спросил:

"Я пытаюсь отправить задание по аннотации в Label Studio. Мой набор данных в настоящее время не помечен, поэтому я отправляю его целиком. Есть ли ограничение на количество файлов, которые можно отправить в одном пакете?»

Интеграция FiftyOne Label Studio загружает все медиафайлы сразу. Если у вас большой набор данных (большие изображения, много изображений или и то, и другое), то, вероятно, лучше всего объединить изображения, которые вы отправляете для аннотации, например:

Важно, чтобы ключ аннотации, переданный в view.annotate(), был уникальным для каждой партии. Узнайте больше об интеграции с Label Studio от FiftyOne в документации FiftyOne.

Кроме того, FiftyOne Teams поддерживает облачные наборы данных, что позволяет создавать задачи с минимальным перемещением медиафайлов.

Что дальше?