Должен ли я делать классификацию / распознавание материалов, используя гистограммы или какой-либо другой инструмент с более высоким уровнем математики, например, байесовские сети? - PullRequest
2 голосов
/ 10 августа 2011

Я изучаю основы OpenCV, и я подумал, что хороший проект поможет мне сделать обучение более увлекательным.Подумав несколько идей, я разработал проект по распознаванию материалов.Скажем, у меня есть конвейер, и он транспортирует материал для производства какого-то продукта (этот продукт, на самом деле, не имеет значения).Существует 3 материала, и условия освещения будут разными (использование естественного света утром и днем ​​и лампочки ночью).Это было бы описанием проблемы.

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

1 Ответ

5 голосов
/ 11 августа 2011

Довольно продвинутая идея для стартового проекта.Различия в освещении могут быть устранены с помощью HSV или других цветовых пространств, используя компонент Hue.Однако вопрос «текстуры» может быть решен двумя способами:

  1. Дескрипторы объектов : если вы работаете с изображением уровня серого, существует набор функцийдескрипторы, называемые матрицей уровней серого ( GLCM ), которые дают меру текстур различных областей изображения.Это присутствует в Matlab, для OpenCV есть следующий код: в C .

    Таким образом, вы можете сделать несколько стандартных снимков песка, дерева и камней и использовать их в качестве обучающих образцов на классификаторе - NN, SVM, OpenCV's Haar классификатор, что угодно.Тогда тренируйте это с отрицательными образцами.Вектор признаков для классификатора будет выходным GLCM для каждого изображения.Затем запустите его на реальных изображениях и посмотрите, насколько они точны.

  2. Шероховатость текстур : наткнулся на эту полезную бумагу, на которой изображен одиноценка шероховатости текстуры, называемая собственным преобразованием.Расчеты довольно просты, особенно если вы используете OpenCV SVD() для расчета собственных значений.Результат собственного преобразования дает значение, соответствующее шероховатости этой части.Это может быть использовано для выделения необходимых частей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...