Как обучить изображения Tensorflow Object Detection, которые не содержат объектов? - PullRequest
0 голосов
/ 09 ноября 2018

Я обучаю сеть обнаружения объектов, используя обнаружение объектов Tensorflow,

https://github.com/tensorflow/models/tree/master/research/object_detection

Я могу успешно обучать сеть на основе моих собственных изображений и меток. Однако у меня есть большой набор данных изображений, которые не содержат ни одного из моих помеченных объектов, и я хочу иметь возможность обучить сеть, чтобы ничего не обнаруживать на этих изображениях.

Из того, что я понимаю при обнаружении объектов Tensorflow, мне нужно дать ему набор изображений и соответствующие XML-файлы, которые помечают и маркируют объекты на изображении. Сценарии преобразуют XML в CSV, а затем в другой формат для обучения и не допускают файлы XML, не имеющие объектов.

Как передать изображение и XML-файлы без объектов?

Или, как сеть узнает, что не является объектом?

Например, если вы хотите обнаружить «хот-доги», вы можете обучить их с помощью набора изображений с хот-догами. Но как дрессировать это чем не хот-дог?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Возможно, вы захотите взглянуть на это решение .

Для того чтобы API обнаружения объектов tenorflow включал ваши отрицательные примеры, вам нужно добавить отрицательные примеры в файл CSV, созданный вами из XML, либо изменив скрипт, который генерирует файл CSV, либо добавив примеры впоследствии. .

Для создания xml-файлов без меток классов с использованием LabelImg вы можете сделать это, нажав «Verify Image».

0 голосов
/ 11 ноября 2018

Обнаружение объекта CNN может узнать, что не является объектом, просто позволяя ему видеть примеры изображений без каких-либо меток.

Существует два основных типа архитектуры:

  1. двухэтапный, с первым предложением объекта / региона (RPN), а второй - с точной настройкой классификации и ограничивающего прямоугольника;
  2. одноступенчатый, который непосредственно классифицирует и регрессирует BB на основе вектора объектов, соответствующего определенной ячейке в карте объектов.

В любом случае, есть часть, которая отвечает за решение, что является объектом, а что нет. В RPN у вас есть оценка «объектности», и в один этап есть уверенность в классификации, когда вы обычно используете фоновый класс (т.е. все, что не поддерживается классами).

Таким образом, в обоих случаях, если конкретный пример на изображении не имеет поддерживаемого класса, вы учите CNN уменьшать показатель объектности или соответственно увеличивать достоверность фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...