Как разработать алгоритм приближенного решения - PullRequest
0 голосов
/ 09 марта 2009

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

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

Конечным использованием этого алгоритма будет приложение, которое, например, с изображением чьего-либо лица может определить, были ли они в толпе людей. Этот алгоритм в конечном итоге будет применяться к видеопотокам.

edit: Я не ожидаю реального решения этой проблемы, так как не надеюсь решить ее в ближайшее время. Реальный вопрос заключался в том, как определить что-то подобное для компьютера, чтобы можно было создать алгоритм для этого.

Спасибо

Ответы [ 4 ]

2 голосов
/ 09 марта 2009

Бывший мой учитель написал докторскую диссертацию по аналогичной проблеме, за исключением того, что его вкладом была детальная трехмерная модель чего-либо, которую он использовал бы, чтобы найти этот объект в 2D-изображениях. Это ОЧЕНЬ нетривиальная проблема, нет единого «ответа», конечно, ничего такого, что соответствовало бы формату переполнения стека.

Мой лучший ответ: собери кучу денег и найми очень опытного программиста.

Удачи вам.

1 голос
/ 09 марта 2009

Первая проблема, которую вы описываете, и вторая - совершенно разные.

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

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

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

1 голос
/ 09 марта 2009

Простой ответ - найти математический способ описания граней, который может учитывать углы и частично отсутствующие данные, а затем уточнить и обучить этому.

Очевидно, что яблоко сделало что-то подобное, однако оно по-прежнему допускает ошибки, и его нужно учить по мере продвижения вперед.

Я ожидаю, что это будет больше о математике, чем о программировании.

0 голосов
/ 09 марта 2009

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

Вы можете попробовать прочитать здесь . Удачи!

...