Я новичок в компьютерном зрении, и я хочу обнаруживать определенные плоские объекты на изображении (или кадре видео).
Что мне делать означает с конкретным и плоским?
Плоский
Ну, плоские объекты похожи на объекты, но, знаете ли, плоские ... Что это значит для меня:
- Объекты всегда будут рассматриваться примерно с одного и того же "фронтального" угол, то есть ось камеры соответствует (более или менее) нормали к их поверхности. (Но они могут вращаться вокруг этой оси.)
- Объекты, для которых угол освещения ничего не меняет (т. Е. Не имеет выпуклостей и складок, отбрасывающих тени).
Конкретные
- предметы, из которых я знаю точный внешний вид и форму. Все они абсолютно одинаковы, нет никаких вариаций.
- У меня есть (точная) фотография (или изображение) их.
Примеры таких предметов
- Аверс 1-долларовой купюры
- The Mona Лиза
- Передняя обложка последнего выпуска (здесь вашего любимого журнала)
- ...
Я считаю, что проблема достаточно проста, и я смогу найти функцию библиотеки компьютерного зрения, которая в основном работает так:
> findObjects("object.png", "image.png")
[object at x1, y1, rotated z1 degrees, size height1*width1,
object at x2, y2, rotated z2 degrees, size height2*width2,
...]
На самом деле меня даже не особо интересуют размеры и расположение объектов, мне просто нужен счетчик.
Но я не могу найти ничего подобного.
Все, что я могу найти, - это бесчисленные примеры распознавания лиц с помощью так называемого классификатора Хаара, который вообще не кажется подходящим для моей проблемы, потому что:
- Лица не плоские, и, следовательно, этот классификатор должен справляться с такими проблемами, как разные освещение, тени ...
- Он должен распознавать лица, то есть объекты, которые похожи, но не совсем идентичны.
- Он должен распознавать лица, с которыми его не учили, только потому, что они «похожи» на лица
- Доказательство того, что это не подходит: его нужно обучать сотням или тысячам положительных и отрицательных образцов. В моей задаче вся необходимая информация содержится в одном образце. Так что это не может быть правдой.
Итак, существует ли что-то подобное?
Я бы предпочел использовать OpenCV, поскольку это, кажется, стандартная библиотека компьютерного зрения, но я открыт для любого решения.