Mask-rcnn: нужен совет по прогнозированию о корне / обработчике и ориентации воздушных шаров - PullRequest
0 голосов
/ 20 сентября 2018

Прочитав пример маски rcnn balloon (https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46),now:

Моя цель:

Подать данные моего аэростата с информацией об ориентации и корневой позиции аннотациик измененному mask_rcnn, а затем он может, наконец, узнать, как определить ориентацию (в градусах) и положение корня для каждого воздушного шара в наборе данных val.

Status :

ДляИспользуя наборы данных, я использовал VIA, чтобы нарисовать линию (от корня / обработчика до самого низа каждого шарика), которая может указывать ориентацию для каждого экземпляра шарика в изображении, потому что в VIA линия содержит 2 точки, то есть 1-ю точкув файле json будет корневая координата каждого экземпляра воздушного шара. На рисунке ниже показана моя идея: пример изображения

Я разработал несколько программ, которые могут:

  1. получить корневую координату (значение с плавающей точкой) для всего экземпляра воздушного шара в изображении из файла json

  2. вычислить ориентацию (угол в градусах, float value с 2 цифрами) по 2 точкам линии для всех всплывающих подсказок. Вопросы:

Я думаю отправить полученную информацию об угле и положении корня маске rcnn, в balloon.py,Мне нужно добавить их в `` `

class BalloonDataset(utils.Dataset):

   def load_balloon(self, dataset_dir, subset):
    .......
     self.add_image(
           "balloon",
           image_id=a['filename'],  # use file name as a unique image id
           path=image_path,
           width=width, height=height,
           polygons=polygons,
           angles=angles,
           roots=roots
            )

` ``, это правильно?

Я думаю, мне также нужно определить функцию потерь для корня и ориентации в model.py, но тип, который я думаю, я должен использовать apsame, как потерю маски или коробку, кто-то может дать мне несколько советов?

может кто-то дать мне представление, где я должен измениться в model.py или других?

Большое спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

Я не совсем уверен, что правильно понял вашу проблему (что вы имеете в виду под root / handler?), Но Mask-RCNN не предназначен для этого.Были некоторые дискуссии о том, как модифицировать этот репозиторий для проблем с ключевыми / ограничивающими рамками, но это сложно и не рекомендуется.Есть лучшие методы для этого, например, Faster-RCNN.

Matterports Mask-RCNN, тем не менее, превосходен, и, возможно, вы можете использовать его, не сильно модифицируя модель, только добавив немного opencv и простую геометрию воздушных шаров.

  1. Создание масок, как показано в руководстве.Никаких модификаций не требуется.
  2. Используйте cv2.minAreaRect () для масок, чтобы получить ограничивающие рамки и повороты.
  3. Конечные точки воздушных шаров могут быть приближены к центру более короткогостороны ограничительных рамок.

Надеюсь, что это может помочь вам в вашем проекте!

В ответ на редактирование:

Ваше изображение действительно помогло понять вашу проблему,Я думаю, что если вы хотите использовать Mask-RCNN для этого, вы можете сделать следующее:

  1. Создать маски для корней шаров.(Опять же; Mask-RCNN хорош для создания масок, а не для обнаружения ключевых точек или чего-либо еще. Найдите другие методы для ключевых точек, чтобы избежать необходимости создавать маски и сократить время обучения / вывода)
  2. Если все изображения простовоздушные шары и белый фон, подобный этому, вы можете использовать opencvs cv2.moments, чтобы получить центр масс для корневой маски и контура воздушного шара и провести линию между ними, чтобы (приблизительно) получить вращение.
...