Есть поговорка, я думаю, все согласятся
Каким бы хорошим ни был алгоритм нейронной сети, он не будет более точным, чем ваши целевые данные.
Данные маркировки имеют большое значение для самого алгоритма и его применения, и они очень информативны; к счастью,Правила маркировки для Pascal VOCОн открыт для публики.Прочитав его сам, я могу поделиться с вами некоторыми знаниями.
Пошаговый анализ Pascal VOC Annotation Guideline
What to Label / Segment
(рамка обнаружения) Помечает все объекты, принадлежащие к указанному классу, если
- вы думаете, что объект слишком мал
- Видно только менее 10-20% объекта
- Если на картинке слишком много объектов и их нельзя пометить, откажитесь
Я лично считаю, что (2) не очень разумно или имеет плохую масштабируемость, потому что вМы можем легко изменить определение объектов в различных ситуациях, если логическое значение (True/False) задано в соответствии с фиксированным стандартом, это сделает нашу аннотацию привязанной к текущему проекту или даже привязанной к алгоритму, что, очевидно, нерентабельно.
Простая идея состоит в том, чтобы позволить аннотатору оценить процент видимых объектов, что приведет к очень высокой стоимости аннотации, в сочетании с тем, что Человек не подходит для оценки абсолютной числовой шкалы, что также будет источником ошибки.
относительно разумный компромисс, Его можно разделить на 3-5 уровней для обозначения видимости объектов.
(Граница сегментации) Необходимо удалить внешние объекты, такие как сумки, но не пропустить вырастающие части, такие как ножки стула.
Viewpoint
Угол объекта на фотографии относительно камеры
Теоретически это полезно, но на самом деле объекты тоже будут деформироваться и вращаться сами по себе, а смысл смысла ограничен.
Bounding Box / Segmentation Accuracy
Поле (обнаружения) должно содержать все пиксели объекта, за исключением случаев, когда у объекта слишком тонкие плечи (протяженность
(Сегментация) Точность обводки имеет 5 пикселей свободы, чтобы убедиться, что внешняя сторона определенно является фоном.
Эти двое противоположны друг другу;
При обнаружении мы используем рамку, чтобы содержать основную область объекта.В некоторых случаях основное тело может быть только частью объекта, или они могут перекрываться друг с другом.При сегментации мы точно описываем все пиксели, принадлежащие объекту.
Truncation
Если более 15-20% объекта находится за пределами ограничивающей рамки, он будет помечен как Truncated.
Подобно Visibility в начале, лично мне кажется, что Boolean значения неудобно расширять, как и следующую Occlusion.
Occlusion / Segmentation Mixed Pixels, Objects on Object
(Обнаружение) Если более 5% объекта в кадре закрыто, он будет помечен как закрытый.
(Сегментация) Для смешанных пикселей (из-за движения, прозрачности и т. д.), если можно подтвердить, что они принадлежат объектам, они все равно помечаются.
Image Quality (illumination)
Для плохого качества изображения, такого как чрезмерное размытие движения, чрезмерное освещение
В дополнение к фильтрации плохих образцов вы также можете рассмотреть возможность идентификации сцен, таких как ночь или яркий солнечный свет (должна быть возможность автоматического разделения программой).
Clothing, mud, Snow
Объект не закрыт, если он частично закрыт носимым объектом, например одеждой, грязью или снегом.
Transparency
Находится ли объект за стеклом, если да, то считается, что он закрыт.
Mirrors
Появляется ли объект в зеркале
Pictures
Если объект находится только в Т-сдвиге, на чертеже, а не в реальном объекте, он не считается объектом.
Некоторые места, возможно, необходимо пометить как объекты, возможно, можно установить логическое поле
Difficult Label
(Сегментация) Объекты слишком сложно маркировать, например, стопку велосипедов.
Требования к категории
Например:
- Стулья: За исключением скамеек, инвалидных колясок, автомобильных сидений, скамеек, которые не обозначены как стулья.
- Телевизор/монитор: Ноутбуки не в счет, электронные билборды не в счет
«Почему табуретка не стул?» Неопределенность самого вопроса заслуживает нашего внимания:Под разные задачи определение объекта будет меняться, и мы хотим, чтобы аннотация данных использовалась максимально повторно.
С другой стороны, обозначая их как «пригодные для сидения», «цифровой дисплей» кажется более близким к свойствам объектов и отношениям между различными классами, чем «стул» или «дисплей». (см. Языки программирования вDuckType) Но это не бесплатно, это даже дорого, и это не решает проблему повторного использования.
Краткое содержание
Прочитав приведенные выше стандарты Pascal, мы узнали некоторый базовый здравый смысл маркировки данных и даже можем начать маркировку, но в то же время обнаружили новые проблемы:
- Из-за нечеткости реального мира и людей, а также диверсификации задач часто возникают разные требования к аннотациям для схожих объектов, и мы надеемся реализовать повторное использование аннотаций данных
- Сегментация на уровне пикселей против обнаружения: кажется, что первое включает в себя второе, и как нам выбрать
- Можно ли реализовать полуавтоматическую маркировку?
Ниже по этим вопросам я записал некоторые размышления и выводы.
согласованность правил
Я думаю, что непротиворечивость правил является необходимым условием повторного использования данных.Другими словами, правила маркировки могут быть сложными, но только один из них.!
- Правила могут развиваться, и пока обеспечивается единообразие, легко обеспечить прямую и обратную совместимость; прямым успешным примером является NoSQL, который не требует предопределенных форматов данных, а форматы данных могут динамически обновляться с хранением различных данные (такие как Mongodb, CouchDB), конечно, предпосылка не в том, чтобы хранить их случайным образом)
- При наличии нескольких правил они должны быть несовместимыми и, очевидно, не могут использоваться повторно.
Чтобы обеспечить согласованность правил, нам нужна помощь строго типизированных языков, а GoogleProtocol BufferИменно для этого (ниже я написал пример box.proto);
message Box {
required int32 xmin = 1;
required int32 ymin = 2;
required int32 xmax = 3;
required int32 ymax = 4;
required string class_name = 5;
enum OcclusionLevelType {
V33 = 0;
V66 = 1;
V100 = 2;
}
optional OcclusionLevelType occlusion_level = 6;
}
С гарантией системы типов можно компилировать и читать различные правила, и даже правила можно повторять и управлять версиями путем наследования и комбинирования.
средний слой
«Любая проблема в информатике может быть решена путем добавления непрямого среднего слоя, за исключением проблем со слишком большим количеством средних слоев».
--- Beautiful Code
Единообразие правил является лишь необходимым условием для повторного использования данных.Чтобы справиться с изменяющимися требованиями к задачам, я думаю, что для разделения сложности необходима модель «Запрос-Правила».
- Базовые правила (Rules) настолько атомарны, что их легко комбинировать, чтобы удовлетворить «запросные» требования верхнего уровня.
- Следует также должным образом учитывать расширяемость правил, например, расширяемость логических полей хуже, чем у перечисления.
- Используйте Query для удовлетворения различных потребностей
- Цена в том, что нагрузка на маркировку увеличится (учитывая улучшение возможности повторного использования, нагрузка может и не увеличиться)
И правила, очевидно, могут развиваться независимо от Query, на самом деле они очень похожи.CSSЭтот язык веб-страниц (используемый для объявления формата веб-интерфейса) описывает базовый внешний вид веб-страниц, определяя правила.
body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
}
p {
font-family: verdana;
font-size: 20px;
}
Известный недостаток CSS — отсутствие модульности, любые правила действуют глобально, что делает повторное использование кода CSS чрезвычайно сложным и требует строгих спецификаций разработки (поскольку правила CSS двух людей будут влиять друг на друга, когда они будут объединены).
То же самое относится и к правилам маркировки: старайтесь быть низкоуровневыми, атомарными и составными, а также хорошо разделяйте сложность.
Сегментация на уровне пикселей и кадр
«Люди должны четко знать границы, информацию о переднем и заднем планах объектов. Поэтому переход от уровня ограничивающей рамки к уровню пикселей должен быть в правильном направлении».
--- [5]
Сегментация пикселей более разумна в постановке задачи, то же самое и с точки зрения алгоритма.Первая является задачей классификации, которая проста и понятна, а обнаружение включает регрессию, а также включает в себя NMS, преобразование координат, Anchor и другие трюки и модули, которые не могут быть получены.
Но я не думаю, что сегментация может заменить обнаружение на данный момент.
Потому что в задаче обнаружения сеть учится игнорировать некоторые области изображения и эффективно и быстро выполняет локализацию нескольких типов объектов.
И если вы хотите, чтобы сеть достигла той же цели с сегментацией пикселей, вам нужно решить крупномасштабную проблему инвариантности и эквивалентности (Panoptic Segmentation), что сильно увеличивает сложность обучения сети, даже если самой задаче нужно только найти положение объекта.
Сегментация экземпляра — хороший компромисс между ними.
полуавтоматическая маркировка
Кроме того, в ImageNet, Техническом отчете COCO, все они упомянули
Разделите задачи маркировки на конвейеры, чтобы каждый этикетировщик отвечал только за одну задачу, повысьте эффективность и дайте возможность более точно контролировать процесс маркировки.
Вероятность того, что машины полностью заменят людей, кажется относительно низкой, и если часть конвейера можно заменить машинами, то также можно повысить эффективность маркировки.
Время ТВ
Знаний у меня мало и знания короткие, сейчас учусь и продаю, надеюсь все посмеются.
Многие требования к маркировке сложнее, чем вышеперечисленные, и есть даже задачи, которые нельзя маркировать, например Optical Flow; я надеюсь, что однажды мы сможем найти полное решение проблемы маркировки данных с помощью искусственного интеллекта, и заставить ИИ работать дальше.
материал
- VOC2011 Annotation Guidelines
- Human-Centered Design: an IntroductionЧасть этого говорит об опросе пользователей и обсуждает, что человек не умеет оценивать абсолютную числовую шкалу.
- Microsoft COCO: Common Objects in Context
- ImageNet Large Scale Visual Recognition Challenge
- Нью-Йоркский университет и Google Brain предлагают набор данных COG, который может улучшить способность системы к «визуальному мышлению».
- Запись: Ю Кай, Ян Шуичэн, Мэй Тао, Чжан Чжаосян, Шань Шигуан обсуждают «Возможность и невозможность глубокого обучения».
- Время ТВ: Это телевизор, вы можете настроить время и место, с этого телевизора, чтобы увидеть что-нибудь в прошлом и будущем времени!
- [1801.00868] Panoptic Segmentation[1801.00868] Паноптическая сегментацияarxiv.org [1801.00868] Panoptic Segmentation
- Invariance vs. Equivariance (Mask RCNN Tutorial)
- CSS: Cascading Style Sheets
- ShadowRootНачало модуляризации веб-страницы (или веб-компонента), стандарта, предложенного в последние годы, чтобы решить совместную работу программирования пользовательского интерфейса и устранить глобальные зависимости.