Как распознать два разных объекта с одинаковой формой, но разным размером - PullRequest
0 голосов
/ 03 октября 2019

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

Иногда автомобили имеют колеса разных размеров, как показано на изображении ниже. Передние колеса намного меньше задних. Я хочу определить передние как "передние колеса", а задние как "задние колеса". Если на фотографии только одно колесо (вызванное плохой обрезкой), я хочу определить это колесо как «колесо».

Что мне нужно сделать, чтобы замаскировать 2 колеса (и нанести соответствующие метки наих) если изображение содержит два колеса, что выглядит как?

Изображение автомобиля

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

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

# Run detection
results = model.detect([image])

# Visualize results
r = results[0]
visualize.display_instances(image, r['rois'], r['masks'], r['class_ids'],
                            class_names, r['scores'])

. Вы можете использовать r['rois'] для расчета площадей шин следующим образом:

y1, x1, y2, x2 = rois[i]

area[i] = (y2-y1)**2 + (x2-x1)**2

Тогда остается только решить, какая область больше.

0 голосов
/ 11 октября 2019

Маска-RCNN может сегментировать каждый экземпляр объекта отдельно, независимо от размера объекта. Он не классифицирует объект на основе перспективы, он классифицирует оба колеса как колеса.

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

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

...