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

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

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

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

Фильтрация ярлыков с помощью ViewField

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

«У меня есть функция, которая использует ограничивающую рамку и погрешность, чтобы определить, находится ли рамка на границе изображения; можно ли использовать это вместе с ViewFieldдля фильтрации меток?"

Сначала немного предыстории ViewField. Когда вы создаете ViewField с помощью строкового поля, такого как ViewField(“$embedded.field.name”), значение этого поля интерпретируется относительно контекста, в котором используется объект ViewField. Например, при передаче в метод ViewExpression.map() этот объект будет ссылаться на объект embedded.field.nameобрабатываемого элемента массива.

В других случаях вы можете создать ViewField, который всегда ссылается на корневой документ. Вы можете сделать это, добавив «$» к имени поля, как в ViewField(“$embedded.field.name”).

Вот два варианта, которые могут сработать. Первый использует относительные координаты:

А вот тот, который работает в пикселях:

Узнайте больше об использовании ViewFields and expressions (с примерами) в FiftyOne Docs.

Фильтрация путей к файлам для существующих подстрок

Адриан Лой, участник сообщества Slack, задал свой вопрос и ответил на него!

«Можно ли фильтровать пути к файлам по существующим подстрокам?»

Да! Используйте contains_str который определяет, содержит ли выражение, которое должно разрешаться в строку, заданную строку или строку(и).

Узнайте больше о contains_strв FiftyOne Docs.

Фильтрация ярлыков на основе идентификаторов обнаружения

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

"Можно ли фильтровать ярлыки на основе идентификаторов обнаружения?"

Да! Используйте select_labels():

Вероятность ошибки и значения IoU по умолчанию

Член сообщества Slack Лаура Лин спросила:

“Как подсчитываются отсутствующие объекты для fiftyone.brain.compute_mistakenness? Существует ли определенный порог вероятности, которого должен достичь прогноз? Кроме того, существует ли определенный порог IoU или IoA, которому должны соответствовать границы обнаружения и прогнозирования, прежде чем они будут помечены как отсутствующие/ложные?»

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

Узнайте больше о вычислительных ошибках в FiftyOne Docs.

Указание цветов для классов

Член сообщества Slack Бенджамин Фенкер спросил:

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

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

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

Что дальше?