Месяц назад я написал пост про то, как запили API + сайт Ternaus.com для поиска похожих картинок по тексту (Image Search) и по картинкам (Inverse Image Search).
Идея поиска по картинкам не нова и занимаются этим многие.
Сходу в голову приходят:
Поисковики
-
Yandex
-
Google
-
Bing
Поиск осуществляется на больших объемах картинок с интернета.
Лицензия, как правило, не известна.
Такие картинки активно используют для тренировки нейронных сетей. Время от времени поднимаются дискуссии о легальности процесса, но сразу же и затихают.
В США существует закон о Fair Use, который позволят использовать данные под копирайтом во благо человечества. Что-то он проясняет, но мало кто к нем разбирается.
У потенциальной реализации контроля изображений в интернете много технических сложностей:
-
Как определять авторство и права на конкретную картинку?
-
Если изображение изменено, также ли оно принадлежит исходному владельцу?
-
Как мониторить, если кто-то использует ваше изображение?
-
Как заставить владельца сайта убрать его или хотя бы поставить ссылку на исходное?
Задача со звездочкой — как определить, что ваше изображение было использовано при тренировки конкрентной нейронной сети.
Есть анекдотичные случаи типа того, что Stable Diffusion сгенерировала картинки с логотипом сайта iStock, что говорит о том, что данные с сайта были соскраплены и использованы в тренировке.
Но больше чем это технически сделать не реально.
Вопрос читателям: кто знает коммерческие приложения, не связянные с тренировкой сетей используют картиночный поиск в поисковиках?
Stock photos
Эстетические фото в высоком качестве и лицензией, которая позволяет любое, в том числе и коммерческое использование.
Также у них есть API, который позволяет использовать изображения и в других приложениях.
Используются для поиска фото для блог постов и сайтов.
Вопрос к читателям: кто знает где используются такие изображения?
Поиск по сгенерированным картинкам
С дивана, эти сайты похожи и на мой ternaus.com, только у ребят поиск идет по сгенерированным картинкам, а у меня по обыкновенным.
Визуально смотрится круто, более того, Lexica в сентябре подняла раунд на $5,000,000.
Что замечательно, эти сгенерированные картинки можно смело использовать в любых коммерческих целях.
Под какую историю они поднимали деньги и что у них дальше непонятно, но очень интересно.
Эти примеры я привел к тому, что нужно не просто хорошо искать, нужна какая-то ниша, какая-то специализация.
Я много лет тренировал модели машинного обучения, у меня была вечная боль с данными.
Хочется попробовать использовать ternaus для улучшения / ускорения разметки данных для нейронных сетей.
Идея вот в чем — если ваша модель плохо что-то определяет на картинке это может происходить по разным причинам:
-
Сложный объект, который модель еще не научилась находить.
-
Обьект простой, я фон сложный. Найти кота на фоне белой стены проще чем того же кота на фоне леса.
-
Нюансы освещения. Темного чебурашку сложнее находить на закате, чем при свете дня.
Как следствие, когда мы ищем фотографию “похожую” на исходную, хочется, чтобы выбор был не в режиме: “страус тут — страус там”, а с учетом фона, освещения и другого контекста.
Под эту идею, месяц назад я и создал сервис.
В машинном обучении — валидационный и тестовый сет должны быть размечены точно, а тренировочный лучше точно, но можно и как получится.
Чтобы сделать “как получится” достаточно взять хорошую натренированную модель и использовать ее предсказания, как разметку.
Более того, можно поднять точность автоматической разметки за счет применения аугментаций или агрегирования предсказаний различных моделей.
На маленьких датасетах я такое делал, а на 18 миллионах, что сейчас, рука не поднялась.
Я взял натренированную на COCO YOLO V7, сконвертировал в TensorRT, запустил, и вот наши метки готовы.
В СOCO всего 80 классов, что мало.
Скажем, чтобы проиллюстрировать качество разметки, я хотел добавить в пост картинку с девушкой, играющей на скрипке, но скрипки в COCO не оказалось, поэтому блог пост начался с девушкой на скейтборде. В COCO он есть.
Отсюда, конечно, напрашивается дофайнтюнить YOLO на 600 классах Open Images, но это надо, чтобы руки дошли, или чтобы пришел такой запрос от коллектива. Пока откаладывается.
Кому интересно — пользуйтесь:
Правила игры — первые 100 запросов в день бесплатные, потом по центу за заспрос, или ждать следующего дня.
Данный пост можно было бы сделать гораздо сильнее, если вместо: «А вот теперь есть новая фича» был рассказ о том, как на какой-то задаче, скажем соревновании на Kaggle, ее использование помогло уйти в топ.
Когда мы продвигали библиотеку Albumentations, именно так и делали — выигрываешь соревнование, описываешь решение, рассказываешь как помогла библиотека.
Понятные метрики, понятная ценность.
Здесь хорошо сделать что-то такое же, но сейчас не вижу под рукой релеватного соревнования. Как появится, скорее всего попробую.
Следущим шагом хочется добавить картинки, которые генерирует Stable Diffusion. Под рукой 10M таких картинок, работа в процессе.
Любопытно, что будет если тренировать или fine tune’ить сети на сгенерированных картинках. (Если есть академик, который хочет написать статью на эту тему — пишите, данных + меток сколько надо я отсыплю)
P.S. После прошлого поста кто-то начал использовать API, но не очень активно и скорее это единичные случаи. Так что текущий пост написан скорее для логирования прогресса и мыслительного процесса нежели как маркетинговый инструмент.
ссылка на оригинал статьи https://habr.com/ru/post/695736/
Добавить комментарий