![](https://habrastorage.org/getpro/habr/upload_files/754/b94/a3b/754b94a3b1ce9298131c29fe554847ac.png)
По этой ссылке приложение для поиска по датасету Open Images and Places 365 (3.5 миллиона картинок)
Загружаете свою картинку - получаете 18 похожих.
Вопросы:
А можно не сайт, а API?
А можно не 18, а 1000?
Мы очень трепетно относимся к приватности данных. Можно на нашем железе?
А можно не на Open Images, а на другом датасете?
А можно выдавать не только картинки, но и сегментационные маски, боксы и метки классов?
А будет работать на миллиарде картинок?
А можно делать поиск не картинкой, а текстом?
Ответ - твердое да.
Хотя непонятно с другими доменами. Текущий поиск работает на естественных картинках и для медицинских и спутниковых нужны новые модели. Их под рукой у меня нет, хотя было бы желание и такое можно сделать.
Если у кому-то такой image search нужен - пишите в комментариях или мне на LinkedIn - будем разбираться какую именно функциональность добавлять. Буду рад идеям любой степени дикости.
Пока в голову приходят:
На публичных данных: у компании есть модель, своих данных мало. Загрузили картинки на которых модель отрабатывает плохо, получили похожие, разметили, добавили к тренировочным данным. Качество модели улучшилось.
На своих данных: ровно то же, что и выше, но на неразмеченных данных компании.
На своих данных: можно использовать для более быстрой разметки. Для каждой картинки вывело кластер похожих картинок. Глазами посмотрел - все еноты. Поставил метку сразу для 20 картинок. 20x к скорости разметки.
На свои данных: проверка качества разметки. Оцениваем качество разметки сегментационных масок или боксов не на одной картинке, а на кластере похожих. По одной не всегда понятно что хорошо размечено, а что нет, а когда сраниваешь несколько то недостатки разметки бросаются в глаза.
Для логирования - логика, по которой я дошел до Image Search.
В свободное время я учвствую в проекте Albumentations.AI - это Open Source библиотека для аугментации данных.
Я писал про то, как она развивалась на хабре - Рождение Albumentations.
В лучшие времена в Core Team было 5 человек.
Пару лет назад работа над библиотекой превратилась из чего-то приятного и для себя в поддержку.
В этот момент от команды откололся Саша Буслаев, в честь которого, собственно, библиотека и была названа. Я тоже начал меньше участвовать в проекте - поддержкой и так все на работе занимаются за деньги, а тут в свободное время и за бесплатно.
И нас осталось четверо.
Когда в феврале началась война от команды отвалился Женя Хведщеня. Женя живет Одессе, в соседние дома начали прилетать ракеты и стало не до библиотеки.
И нас осталось трое.
Война - дело мерзкое, так что не только Женю, но и нас она выбило из колеи. Несколько месяцев к библиотеке не притрагивались.
Более того, мы сами модели давно не тренировали, а когда тренировали текущей функциональности хватало за глаза.
То есть к маю 2022 на GitHub
И 10,000 скачиваний в день.
То есть, с одной стороны, у библиотеки хорошая популярность, а, с другой, у проекта все шансы загнуться.
Нужно было найти кого-то кто взавалил бы на свои могучие плечи поддержку и дальнейшую разработку.
Идея первая: найти кого-то кто взял бы проект на себя. Там вылезала ровно та же проблема - пока глаза горят человек работает над проектом, но в определенный момент они угаснут.
Идея вторая: влить новую кровь в core team. Мы предложили одному крутому разработчику, который создавал качественные pull requests, влиться в Core Team. Он вежливо отказался - у него есть своя open source библиотека которую надо развивать.
Идея третья: найти $5000 в месяц, нанять одного человека для работы full time.
Я поспрашивал на LinkedIn, да у знакомых стартаперов, как вообще можно найти деньги в такой ситуации?
Есть два варианта:
Собирать пожертвования.
Построить компанию основе Albumentations в режиме Open Core, то есть библиотека бесплатная как и была, а вот сбоку от нее, чтобы SaaS, или функционал нужный компаниям: privacy, security и так далее.
Кстати, выяснилось, что я, и знакомые, про ценность библиотеки думают по разному.
Я:
Скорость.
Удобный функционал.
Широкий спектр преобразований под разные домены данных.
Стартаперы:
Брэнд.
Community.
То, что библиотека интегрирована в тысячах компаний.
Я несколько недель общался с теми, кто использует библиотеку.
Собирал feedback (блог пост на хабре: Albumentations: Feedback ) и пытался найти идеи для бизнеса. Так вот идеи для бизнеса я не нашел.
Думаю, что основная причина в том, что инструменты для разработчиков - это очень плохой бизнес.
Гораздо лучше - инструменты для колаборации разработчиков, а еще лучше для коллаборации нескольких команд.
Когда я задавал вопросы, старался смотреть шире.
Q: Зачем нам вообще нужны аугментации?
A: Потому что мало релевантных размеченных данных.
Q: Как еще можно решить эту проблему?
На практике, если есть возможность, все решают данную проблему доразметкой.
Часто есть море неразмеченных данных и надо понять какие из них использовать.
Доразмечать надо те картинки, которые "похожи" на проблемные.
Так вот слово "похоже" определено плохо.
Это может быть:
То, как работает модель. Картинки A и B похожи потому что модель XXX на них отрабатывает плохо или неуверенно. Причем модель может отрабатывать плохо на этих картинках по разным причинам.
Цветовое распределение. У меня был случай когда тренировочные данные собрали летом и модель хорошо работала, а потом наступила осень, все стало темнее и модель поплыла.
Семантика. тут енот, там енот.
Любая другая метрика расстояния.
Это все разные случаи и какой из них использовать зависит от специфики задачи.
Первый случай называется Active Learning, и, я думаю, его вручную делали примерно все ML инженеры. В нем, кстати, аугментации органично используются.
Прямо сейчас мне хочется понять куда бы этот поиск по картинкам прикрутить.
Поэтому для тех, кто до сюда дочитает призыва - потыкайте в приложение, подумайте куда это все можно прикрутить, да отпишитесь.
Руки тянутся что-то запилить, осталось понять что. :)
P.S. Писать лучше на LinkedIn
P.P.S. Пост на английском