Вы правы, но лишь отчасти. Мануальная разметка -- очевидное зло. Синтетические наборы -- лишь приближение к реальности, с кучей своих заметных и незаметных особенностей, которые могут быть интерпретированы как важные (аналогично для наборов, полученных с одной камеры) но не имеющих ничего общего с реальностью и желаемым результатом. Да чего уж там, многие сложные случаи синтетикой за разумные деньги не заменить.
Еще один способ, к которому пришли после после анализа рынка и результатов -- работа с реальными данными, но в автоматическом или полуавтоматическом режиме.
Финальные маски очень очень далеки от сколь-нибудь точного результата. Вы уверены, что есть смысл размечать руками (полуавтоматический результат мягко говоря не далеко ушел)? Быстрый тест используя color-based сегментацию (потратил 5 минут, игнорируйте «выход за границы»):
Кстати, внутренние детали легко скрыть, если действительно нужно «упростить» результат:
Ну и уж точно руками вы не получите достаточно качественную семантику, например:
Уровень доступных деталей (маски сгенерировал как в векторе так и в растре):
Заявки на тестирование, четкое планированине, четкие сроки и т.д. это не похоже на дополнительную бюрократию и возвращение к старому доброму waterfall? И реализуемо ли вообще, поскольку turnaround cycle скорее всего огромен?
Если перефразировать ответ — все на самом деле хуже чем кажется :)
На самом деле, на фоне очень неидеальных результатов Mask RCNN даже на хороших датасетах, использование посредственных наборов в принципе смысла не имеет.
Был опыт создание своих датасетов (пример ) и это еще то приключение, хотя можно и быстро :)
Для сегментации или детекции разметка хоть и требует немало времени, для нее уже есть много инструментов, процесс более или менее понятен и отлажен, да и существующих датасетов полно
Арсений, а действительно датасетов полно? Хороших и именно для сегментации? С точными масками (не как в Open Images Dataset)? И даже набор объектов не сильно базовый? :)
Сами инструменты разметки оптимизируются у нас по количеству кликов. Например, если ты размечаешь дорогу, то тебе не нужно оконтуривать все элементы на ней. Мы, используя геометрию дорожной сцены, сделали такой инструмент, что разметка элементов дороги производится быстро, в один клик. Автоматически (полуавтоматически) все делится на отдельные объекты с небольшой корректировкой.
Любопытно узнать нюансы связанные с инструментарием. Это всегда геометрия? Не используете цветовую сегментацию или что-то более экзотическое?
Датасеты действительно очень критичны. Серьезно продвинуться без «своих» данных в принципе нереально. Решал аналогичную проблему для, скажем так, более редких случаев. В итоге 4К видео вместо отдельных изображений, полуавтоматическая сегментация и т.д.
Это действительно очень хорошее начало разговора :) Давайте по существу.
почему нельзя оператор Собеля, например, использовать для поиска границ, а по ним выборку делать
Можно, с оговорками и в некоторых случаях. Уверен, вы сами знаете насколько сложным будет результат для достаточно сложного объекта? Например для такого:
Или такого:
хабр для желающих более глубоко разобраться… а это демонстрация технологии
На самом деле я как раз и стараюсь последовательно и с большим количеством поясняющих иллюстраций рассказать о не самом сложном, но достаточно интересном подходе. Это только вторая статья из цикла и даже такой объем информации для многих уже TL;DR.
Я даже больше скажу, это действительно простые случаи. Точнее, контролируемо простые. Основная идея подхода — уйти от ручной разметки фотографий и использовать видео, получив лучшую «вариативность».
Первый шаг, вполне ожидаемо, потребует выполнения некоторых условий (контраст, цвет и т.д.). Кроме того, губы это только первый результат :) Действительно проще, чем все остальное, но даже с «простыми» случаями есть масса нюансов, которые касаются стабильности, деталей и т.д. Например:
Кораблик уже интересней, хотя совсем не понятно откуда такая плохая сегментация мачты.
Узка мачта слишком. Кстати, это именно та проблема, которая сильно мешает с насекомыми :) Все примеры в статье и вообще — исключительно алгоритмическая сегментация. Функция принадлежности реализована как усложненная delta E. Тем не менее, чем «проще» цвет — тем лучше результат. Собственно, это и объясняет «артефакты» с близкими по цвету предметами. Если сцена позволяет, можно и так:
Следовательно, для получения полного контура сначала необходимо использовать алгоритм «поиска дырок», определяющий отверстия в заданном паттерне, а затем применить к каждому отверстию алгоритм обнаружения контуров.
Такой подход для реальной задачи, а не для тестовых «сеточек», мягко говоря окажется не самым эффективным. На всякий случай, это не критика перевода, а информация для читателей. Тестируйте на чем-то реальном, например:
Разметка данных для машинного обучения: обзор рынка, методики и компании
Вы правы, но лишь отчасти. Мануальная разметка -- очевидное зло. Синтетические наборы -- лишь приближение к реальности, с кучей своих заметных и незаметных особенностей, которые могут быть интерпретированы как важные (аналогично для наборов, полученных с одной камеры) но не имеющих ничего общего с реальностью и желаемым результатом. Да чего уж там, многие сложные случаи синтетикой за разумные деньги не заменить.
Еще один способ, к которому пришли после после анализа рынка и результатов -- работа с реальными данными, но в автоматическом или полуавтоматическом режиме.
Не буду оставлять линк на сайт проекта, посмотрите на следующий датасет: https://www.kaggle.com/metavision/accurate-drone-shapessegmentation
Создаем точные датасеты для сегментации (доступны на kaggle)
И вертолеты:
Создаем точные датасеты для сегментации (доступны на kaggle)
На всякий случай добавил другие "воздушные суда":
Продажная многопоточность
Боюсь даже представить, как будет выглядеть в вашем исполнении статья посвященная, например, deep packet inspection
Многопоточность без иллюстраций...
Разметка медицинских данных (DICOM) в Computer Vision Annotation Tool
Кстати, внутренние детали легко скрыть, если действительно нужно «упростить» результат:
Ну и уж точно руками вы не получите достаточно качественную семантику, например:
Уровень доступных деталей (маски сгенерировал как в векторе так и в растре):
Использовал вот этот исходник: www.youtube.com/watch?v=EHdyoYXo3bw
Кто такой кросс-системный тестировщик и почему он не должен быть «agile»?
Шесть степеней свободы: 3D object detection и не только
На самом деле, на фоне очень неидеальных результатов Mask RCNN даже на хороших датасетах, использование посредственных наборов в принципе смысла не имеет.
Был опыт создание своих датасетов (пример ) и это еще то приключение, хотя можно и быстро :)
Шесть степеней свободы: 3D object detection и не только
Арсений, а действительно датасетов полно? Хороших и именно для сегментации? С точными масками (не как в Open Images Dataset)? И даже набор объектов не сильно базовый? :)
Взгляд на ADAS изнутри: когда поедет робот?
Любопытно узнать нюансы связанные с инструментарием. Это всегда геометрия? Не используете цветовую сегментацию или что-то более экзотическое?
Датасеты действительно очень критичны. Серьезно продвинуться без «своих» данных в принципе нереально. Решал аналогичную проблему для, скажем так, более редких случаев. В итоге 4К видео вместо отдельных изображений, полуавтоматическая сегментация и т.д.
Интерактивная сегментация: выделяем кошек, собак и людей
Быстрое обнаружение контуров в 4К видео: цвет и сложные формы
Быстрое обнаружение контуров в 4К видео: цвет и сложные формы
Это действительно очень хорошее начало разговора :) Давайте по существу.
Можно, с оговорками и в некоторых случаях. Уверен, вы сами знаете насколько сложным будет результат для достаточно сложного объекта? Например для такого:
Или такого:
На самом деле я как раз и стараюсь последовательно и с большим количеством поясняющих иллюстраций рассказать о не самом сложном, но достаточно интересном подходе. Это только вторая статья из цикла и даже такой объем информации для многих уже TL;DR.
Быстрое обнаружение контуров в 4К видео: цвет и сложные формы
И еще много всего другого:
Тренировочные наборы из видео — быстро и качественно
1. Алгоритмическая сегментация -> 2. Тренировочный набор -> 3. Универсальная модель.
Первый шаг, вполне ожидаемо, потребует выполнения некоторых условий (контраст, цвет и т.д.). Кроме того, губы это только первый результат :) Действительно проще, чем все остальное, но даже с «простыми» случаями есть масса нюансов, которые касаются стабильности, деталей и т.д. Например:
Тренировочные наборы из видео — быстро и качественно
Узка мачта слишком. Кстати, это именно та проблема, которая сильно мешает с насекомыми :) Все примеры в статье и вообще — исключительно алгоритмическая сегментация. Функция принадлежности реализована как усложненная delta E. Тем не менее, чем «проще» цвет — тем лучше результат. Собственно, это и объясняет «артефакты» с близкими по цвету предметами. Если сцена позволяет, можно и так:
Тренировочные наборы из видео — быстро и качественно
Тренировочные наборы из видео — быстро и качественно
На самом деле не всегда халява, поскольку цвет десны и языка часто оказывается близок.
Пример сложнее:
Тренировочные наборы из видео — быстро и качественно
Содержит исключительно живые фотографии, отображая всю сложность реального мира :)
Финальный набор будет в свободном доступе.
Алгоритмы обнаружения контуров изображения
Такой подход для реальной задачи, а не для тестовых «сеточек», мягко говоря окажется не самым эффективным. На всякий случай, это не критика перевода, а информация для читателей. Тестируйте на чем-то реальном, например:
или вот
Первый релиз открытого инструмента для тестирования поиска по продуктам