OpenCV-Python понимает функции | 36

глубокое обучение

Цель

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

объяснять

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

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

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

Таким образом, один из наших основных вопросов расширяется, но становится более конкретным. Каковы эти характеристики? (Ответ также должен быть понятен компьютеру.)

Трудно сказать, как люди обнаружили эти черты. Это уже закодировано в нашем мозгу. Однако, если мы покопаемся в некоторых изображениях и поищем разные шаблоны, мы найдем кое-что интересное. Например, смотрите следующую картинку:

Образ очень простой. В верхней части изображения даны шесть небольших фрагментов изображения. Ваша задача — найти точное расположение этих заплаток на исходном изображении. Сколько правильных результатов вы можете найти?

A и B — плоские поверхности, которые распределены по многим областям. Трудно найти точное местонахождение этих патчей.

C и D проще. Это края зданий. Вы можете найти примерное местоположение, но точное местоположение все еще сложно. Это потому, что узор везде одинаков по краю. Однако на краю дела обстоят иначе. Таким образом, ребра являются лучшими характеристиками, чем плоские области, но недостаточно хорошими (хорошо сравнивать непрерывность ребер в головоломках).

Наконец, E и F — определенные углы здания. И найти их несложно. Потому что за углом этот патч будет выглядеть по-разному, куда бы вы его ни переместили. Поэтому их можно считать хорошими качествами. Итак, теперь мы переходим к более простым (и широко используемым изображениям) для лучшего понимания.

Как и выше, синие пятна представляют собой плоские области, которые трудно найти и отследить. Он выглядит одинаково независимо от того, куда вы переместите синюю заплатку. У черного пятна есть край. Он меняется, если вы перемещаете его по вертикали (т.е. по градиенту). Двигайтесь вдоль края (параллельно краю), и он будет выглядеть так же. Для красного пятна это угол. Он выглядит по-разному независимо от того, куда вы перемещаете патч, а это значит, что он уникален. Таким образом, точка перегиба считается хорошей чертой изображения. (Не только углы, но и капли в некоторых случаях также считаются хорошими чертами).

Итак, теперь мы отвечаем на наш вопрос: «Что это за функции?». Но возникает следующая проблема. Как мы их находим? Или как найти углы? Мы отвечаем на этот вопрос интуитивно, находя область изображения, которая перемещается (на небольшую величину) больше всего среди всех областей вокруг нее. В следующих главах это будет спроецировано на компьютерные языки. Следовательно, поиск этих особенностей изображения называется обнаружением признаков.

Мы нашли особенности на изображении. Найдя его, вы сможете найти такое же изображение на других изображениях. Как это сделать? Мы берем область вокруг этой особенности, интерпретируем ее своими словами, например, «верхняя часть — это голубое небо, нижняя часть — это площадь здания, на здании есть стекло и т. д.», и вы найдите ту же область на другом изображении здания. По сути, вы описываете характеристики. Точно так же компьютер должен также описать область вокруг объекта, чтобы его можно было найти на других изображениях. Так называемое описание называетсяОписание функции. Когда у вас есть функции и их описания, вы можете найти одинаковые функции на всех изображениях и выровнять их, сшить вместе или сделать все, что захотите.

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

Сводная станция блога о технологиях искусственного интеллекта Panchuang: http://docs.panchuang.net/PyTorch, официальная китайская учебная станция: http://pytorch.panchuang.net/OpenCV, официальный китайский документ: http://woshicver.com/