ТОЧНОЕ определение границ объекта

#neural-network #object-detection #conv-neural-network #yolo #faster-rcnn

#нейронная сеть #обнаружение объекта #conv-нейронная сеть #yolo #быстрее -rcnn

Вопрос:

Мне нужно обнаружить объект (монету) на фотографии, то есть нарисовать вокруг него прямоугольник. Я попробовал Mark-RCNN, Retina, Yolo, SSD — тот же результат. Прямоугольники не идеальны. Если вы посмотрите на примеры, доступные в Интернете, вы поймете, что именно я имею в виду: посмотрите на изображение на картинке, представленной в этой статье, вы можете видеть, что предлагаемый прямоугольник «обрезает» объект, оставляя его часть снаружи, в то время как в некоторых других местах между объектом и прямоугольником остается слишком много места.

Мой вопрос: как я могу получить ТОЧНЫЙ прямоугольник, при условии, что мои данные обучения точны? Любые приемы тонкой настройки, разные подходы, ссылки — все будет оценено по достоинству. Спасибо.

Ответ №1:

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

По сути, обратитесь к классическим методам в качестве шага постобработки после вашего шага NN.

  • Получите приблизительное местоположение монет из сети.
  • Обрезайте ограничивающие рамки — просто увеличьте ширину и высоту всех ограничивающих рамок на фиксированную величину, чтобы полная монета, вероятно, всегда находилась в пределах BB. Очевидно, что вы столкнетесь с примерами, когда вы будете делать это, делайте это, даже если вам не нужно было обрезать. Но это может быть нормально, в зависимости от вашего приложения. Идея состоит в том, чтобы всегда иметь BB, покрывающий всю монету, даже с риском чрезмерной обрезки некоторых изображений.
  • Создайте новые изображения меньшего размера из ограничивающих рамок. Надеюсь, это будет содержать изображения только отдельных монет.
  • Создайте маску пикселей, которые, вероятно, содержат монету, используя простой цветовой порог (или, альтернативно, также используйте что-то вроде сравнения с описанием монеты HOG). Поскольку изображения уже были обрезаны с помощью NN, это может быть относительно легко сделать и не будет иметь много ложных прогнозов.
  • Выполните обнаружение круга Хафа на замаскированном изображении.

Этот метод, скорее всего, может завершиться неудачей, если у вас есть перекрывающиеся монеты и монеты, загроможденные способом закрытия на одном изображении. Но с помощью обнаружения круга Хафа он должен быть устойчив к некоторому количеству помех. Вы также можете выполнить некоторую фильтрацию по окружностям после последнего шага.

Комментарии:

1. Итак, по сути, вы предлагаете использовать результат HOG в качестве маски? Это может сработать, спасибо. Монеты не перекрываются, но могут быть загромождены «шестиугольным» способом… Но с помощью HOG я, вероятно, смогу избавиться от фона, верно? Тогда более простого детектора круга может быть достаточно, чтобы различать отдельные монеты. Я попробовал это с U-net, но он предоставляет маски с отверстиями (нарисованные монетами, но не полностью). Может быть, у ХОГА получится лучше.