Обнаружение заполненного стеклянного объекта

10

Я был послан здесь с этим вопросом в stackoverflow , пожалуйста, извините, если вопрос приходит слишком конкретно, и это не в манерах здесь :)

Задача - найти в ней стакан со специфической жидкостью. Позвольте мне показать вам фотографии, а затем опишите, чего я пытаюсь достичь и как я пытался достичь до сих пор, в описании под фотографиями.

Картинки : (кажется, мне нужно как минимум 10 репутаций, чтобы публиковать картинки и ссылки, поэтому ссылки придется делать :( в противном случае вы можете посмотреть на вопрос переполнения стека)

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Подробное описание : я пытался реализовать алгоритм, который обнаружил бы стекло определенной формы в opencv (стекло может быть преобразовано с другим углом / расстоянием съемки камеры). Будут и другие очки других форм. Стакан, который я ищу, будет также заполнен некоторой цветной жидкостью, которая отличит его от стаканов, содержащих другие цвета.

До сих пор я пытался использовать экстрактор функций SIFT, чтобы найти некоторые элементы в стекле, а затем сопоставить их с другими фотографиями со стеклом в нем.

Этот подход работал только в очень определенных условиях, когда у меня было бы стекло в очень определенной позиции, и фон был бы подобен обучающим изображениям. Проблема также в том, что стекло - это трехмерный объект, и я не знаю, как извлечь из него элементы (может быть, несколько фотографий с разных ракурсов связаны как-то?).

Теперь я не знаю, какой другой подход я мог бы использовать. Я нашел некоторые подсказки по этому поводу (здесь /programming/10168686/algorithm-improvement-for-coca-cola-can-shape-recognition#answer-10219338 ), но ссылки, похоже, не работают.

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

Каковы будут ваши рекомендации по подходу в этой задаче? Было бы лучше использовать другой способ, чтобы найти локальный объект 3D-объекта? Или лучше использовать другой подход? Я слышал об алгоритмах «обучения» объекта по множеству фотографий, но я никогда не видел этого на практике.

Любой совет будет очень признателен

user1916182
источник
любое окончательное решение с полным примером исходного кода в C #?
Kiquenet
вау, это довольно конкретный запрос. проблема еще не решена, и я не буду тратить больше времени на ее решение. Я полагаю, что, судя по упомянутой здесь статье, научное обоснование тоже не скоро будет найдено, поскольку предлагаемый алгоритм имеет очень низкие показатели точности. В любом случае, так как этот проект был для моей работы, я закончил спором о компромиссе с клиентом, поскольку задача нереальна в настоящее время. использовал некоторые обычные детекторы типа «хаар» для «всего, что похоже на чашку», а затем выбирал желтые оттенки для обнаружения пива. не оригинальное задание
user1916182

Ответы:

0

Может быть, этот документ поможет вам: http://ai.stanford.edu/~ang/papers/iros09-ScalableLearningObjectDetectionGPU.pdf

Хотя они используют активную стереосистему в дополнение к 2D-изображениям для получения изображений глубины, интересно, как они используют функции на основе патчей, создавая словарь объекта с множеством небольших фрагментов, а затем обучая классификатор. Может быть, вы можете добавить эту функцию, чтобы улучшить уровень обнаружения.

Джорджио Луиджи Моралес Луна
источник
я не думаю, что эта работа может быть очень хорошо использована в дикой практике. роботу, описанному в статье, требуется датчик глубины, чтобы обнаружить информацию о глубине ... не очень удобно носить с собой кинекект при съемке случайных изображений на мобильном телефоне или чем-то еще ... но да, функции на основе патчей - очень интересный подход!
user1916182
-1

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

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

Одной из проблем может быть количество фотографий, которые вы должны использовать в качестве обучающих данных, и их предварительная обработка (т. Е. Идентификация лиц самостоятельно). Если это невозможно сделать для достаточного количества изображений, чтобы обучить вашу сеть достаточно хорошо, вам придется искать некоторые ярлыки на этапе обучения. Этот документ имеет отношение к тому, что вы хотите сделать: http://www.ll.mit.edu/publications/journal/pdf/vol04_no2/4.2.5.neuralnetwork.pdf

К счастью, это очень активное поле, и большая часть кода, необходимого для решения этой проблемы, доступна в Интернете.

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

rwolst
источник
это совершенно не имеет значения
user1916182
Интересно, что вы должны это сказать. В любом случае, здесь есть ссылка на алгоритмы обнаружения, используемые Facebook на основе нейронных сетей. Удачи, github.com/facebookresearch/Detectron .
rwolst