2015-07-01 15 views
1

У меня есть 2000 изображений на плоскости, похожих на изображение ниже. Плоскость имеет разный угол на каждом изображении. Размер изображения равен 512x512, и в каждом изображении всегда находится одна и та же плоскость.Найти набор углов изображений

enter image description here

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

До сих пор я пытался:

  • Харрис обнаружения, но в каждом изображении Харрис дает мне различное количество очков, событие для изображений с очень аналогичной позицией.
  • Hough Линия Transform найти самую длинную линию и получить наклон к оси X.
  • Corelation - этот метод дает лучшие результаты, но это займет очень много времени, и ангелы только грубо.
  • нейронные сети
    • Назад porpagation тренировать изображение из точек Харрис и Hough линий преобразования, но без какого-либо успеха.

Я так 3D-объект в STP файл, но я понятия не имею, как использовать его, чтобы решить мою проблему. Было бы неплохо получить любой метод, статью или пример.

+0

Всегда в одной плоскости? –

+0

@MarkSetchell yes – Serafins

+0

Что вы подразумеваете под ** углом **? Изображения взяты с разных точек зрения? – dhanushka

ответ

2

По моему опыту, convolutional neural network (CNN) поможет вам здесь. Производительность будет отличной для обнаружения углов.

Но вот проблема, в зависимости от того, как вы определяете выход и количество слоев (не более трех должно быть достаточно), обучение может быть очень дорогостоящим. Например, вы могли бы have one single output, который мог бы дать вам реальное число, которое указывает угол. Обучение это должно быть дорогостоящим, но это нормально в CNN. Однако, если вы говорите, что хотите have 360 outputs (по одному для каждого угла в системе на 360 градусов), в этом случае обучение будет очень болезненным и неприятным долгой практикой; производительность может быть лучше, но не значительно.

(я хотел написать это в качестве комментария на ваш вопрос первым, но у меня нет достаточно репутации, чтобы сделать это еще, извините.)

+0

это звучит как большой шаг вперед для меня. Я попытаюсь его реализовать. Однако я могу использовать радианную шкалу, если вывод может быть десятичным. Должен ли я использовать каждый пиксель в качестве входных данных? Или e.i. На ваш взгляд, угловых точек будет достаточно? – Serafins

+0

Большой вопрос. Но это красота CNN: она сама изучит, являются ли углы хорошей функцией при обнаружении угла. :) Вы и я знаем, интуитивно, что края, углы и линии помогут в оценке угла, но CNN узнает, какая из них важнее другой, и какова связь между ними. CNN (и Deep Learning в целом) - захватывающее поле прямо сейчас из-за проблем, подобных тем, которые вы изучаете. Чтобы ускорить работу, я рекомендую вам реализацию на C++. –

Смежные вопросы