Skip to content

Для пользователей: Разметка данных для обучения

Georgy Perevozchikov edited this page Feb 10, 2020 · 3 revisions

Как разметить данные?

Что значит 'разметить данные'?

Разметка данных - это процесс выделения на данных нужных признаков. В нашем случае разметить данные это значит выделить на фотографиях всех людей, обведя их ограничивающей рамкой (bounding box-ом).

Зачем нужно размечать данные?

Размеченные данные нужны для обучения алгоритма распознования. Мы берем размеченые данные и подаем их на вход нейронной сети как бы говоря ей: стотри - на этой фотографии в этом квадратике есть человек! Запомни как он выглядит, и теперь находи похожих людей на других снимках.

Почему разметка данных это важно?

Для того чтобы нейронная сеть лучше находила объекты - ей нужно много данных, притом разнообразных. Показывая разные данные мы как бы адаптируем нейронную сеть к разным ситуациям, повышая точность распознования. Поэтому разметка данных это очень важный процесс. Также необходимо понимать что данные нужно размечать очень аккуратно и качественно, не допускать ошибок. Всегда лучше меньше но 'чистых' данных чем больше но 'грязных'. От качественного и 'чистого' набора данных зависит 70% успеха работы нейронной сети, размечая и предоставляя новые данные вы очень сильно помогаете проекту. От качества и колличиства данных практчески напрямую зависит точность алгоритма распознования.

Что значит 'чистые данные'?

Чистые данные предже всего это данные не содержащие ошибок в разметке. То есть для нас чистые данные это такие снимки где отмечены все люди которые отчетливо видны. Также к чистоте данных относится и их разнообразие: 100 одинаковых картинок для нейронной сети эквивалентны одной картинке.

Как с нами связаться?

Если вы хотите помочь проекту и уверены что можете предоставить нам размеченные фотографии, пожалуйста свяжитесь нами:

  • Викториейя Мартыновойа - администратор проекта ([email protected]).
  • Геогрий Перевозчиков - ведущий разработчик проекта ([email protected], @gosha20777 - в slack opendatascience, vk, telegram).

Какие критерии разметки?

Вот ряд требований которые нуужно соблюдать для того чтобы разметить данные.

  • каждый человек должен быть помещен в рамку
  • человек должен находиться внутри рамки полностью
  • границы рамки должны совпадать с границами человека (рамка должна быть наименьшей, чтобы вместить себя одного человека)
  • рамки могут перекрываться в случае близкого нахождения людей
  • важно выполнять работу аккуратно и не пропускать людей
  • человек выделяется только тогда, когда он отчетливо виден (!) то есть можно разглядеть более 70% силуэта. Например: Если у человека видна только одна нога (рука) - выделять его не стоит.
  • изображения на которых отсутствуют люди - пропускаются(!).

Инструкция по использованию программы для разметки

Разметка данных производится в VOC формате аннотирования. Для разметки рекомендуется использовать программу labelImg:

Интерфейс программы:

lablimg

Алгоритм использования

  1. нажать кнопку open dir и выбрать директорию с изображениями
  2. нажать кнопку change save dir и выбрать директорию с изображениями (ту же что и в п. 1)
  3. справа, в поле use default label написать Pedestrian (соблюдая регистр! (первая буква - большая)) и поставить флажок
  4. выделить всех людей на снимке

Примечание: для выделения необходимо нажать кнопку Create\nRectBox

  1. нажать кнопку Varify Image

  2. нажать кнопку Next Image для перехода к следующему изображению

  3. повторять пункты 4 - 7 до полного выполнения Примечание: для более эффективной работы удобнее пользоваться горячими клавишами.

Вот некоторые из них:

  • crtl + колесо мыши - для масштабирования

  • alt + колесо мыши - для горизонтальной прокрутки

  • колесо мыши - для вертикальной прокрутки

  • w - создать прямоугольник (аналогично кнопке Create\nRectBox)

Полный список горячих клавиш доступен в описании в официальном репозитории.

Clone this wiki locally