Главная > Разное > Распознавание образов и анализ сцен
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

12.4.3. МОНОКУЛЯРНОЕ ОПРЕДЕЛЕНИЕ ТРЕХМЕРНОЙ СТРУКТУРЫ

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

Рис. 12.17. Многогранник.

Наша первая цель сводится к тому, чтобы разработать общий метод определения трехмерной структуры по информации, поставляемой единственной картинкой, и по «небольшому числу» дополнительных фактов. Затем мы усовершенствуем этот метод, приняв дополнительное ограничение, что многогранные объекты имеют степень 3.

Для начала обратимся вновь к некоторым основным свойствам перспективных преобразований. Для конкретности мы свяжем эти свойства с простым многогранником, показанным на рис. 12.17. Каждая точка этой сцены, и в особенности каждое изображение вершины, определяет положение луча в пространстве. Каждая вершина реального трехмерного тела должна лежать на луче, который исходит из центра объектива камеры, проходит через образ вершины и продолжается в пространстве; точное положение вершины фиксировано, если мы знаем ее расстояние от центра объектива. Таким образом, если дана картинка (монокулярная), задача определения трехмерной структуры многогранника эквивалентна задаче определения расстояний от центра объектива до каждой из его семи вершин. Должно быть ясно, что картинка вместе с тем дополнительным фактом, что показанный объект есть многогранник, не дает достаточно информации для решения этой задачи. Предположим, однако, что мы также знаем положение в трехмерном пространстве

вершин 1, 2, 3 и 7. Поскольку три точки задают положение плоскости, мы можем использовать трехмерные координаты вершин 1,

2 и 7, чтобы определить положение в пространстве плоскости А. Заметим теперь, что вершина 6 лежит на плоскости А; следовательно, ее положение фиксировано на пересечении соответствующего ей луча с этой плоскостью. Подобным же образом положение в пространстве вершины 4 можно определить, зная положения вершин 2,

3 и 7. В этой ситуации известны положения в пространстве вершин 4, 6 и 7, поэтому плоскость С фиксирована, и можно найти положение вершины 5. То есть в этом примере и для данной картинки достаточно иметь информацию о том, что показанный на картинке объект есть многогранник, и знать положение в пространстве вершин 1, 2, 3 и 7, чтобы определить положение в пространстве остальных вершин и, следовательно, трехмерную структуру видимой части многогранника.

В связи с предыдущим примером естественно задать вопрос, достаточно ли в общем случае четырех любых «известных» вершин для определения трехмерной структуры. Ответ на этот вопрос отрицательный: если четыре точки не являются независимыми, т. е. если любые три из них лежат на одном ребре или если все они лежат на одной грани, то, как легко показать, этих точек недостаточно. Предположим, однако, что мы знаем четыре независимые точки многогранника, но допустим, что невозможно сцепить их вместе, как в предыдущем случае. Например, для рис. 12.17 мы можем знать пары противоположных вершин, таких, как 1, 2, 4 и 5; будет ли их достаточно, чтобы определить структуру? Для этого примера ответ положителен. Обозначив символом d неизвестное расстояние от объектива до вершины 7, можно задать вершину 6 через d и затем задать Вершину 5 через d; но положение вершины 5 уже известно, поэтому можно найти величину d и определить положение всех вершин.

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

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

где u — единичный трехмерный вектор, направленный по лучу, и а — расстояние от точки до начала координат. Тогда условие того, что точка Р лежит на луче, заданном ее образом, и одновременно на плоскости, определяемой вектором v, может быть записано в виде

или

Применим этот простой анализ к сцене рис. 12.17. Мы будем индексировать переменные буквами или цифрами, чтобы указать плоскость или точку, к которой они относятся. Поскольку вершины I, 2, 6 и 7 находятся на плоскости А, мы напишем

Подобным же образом для плоскостей В и С мы напишем

и

Эта система линейных уравнений отображает тот факт, что различные характерные точки (в этом примере — все вершины) лежат на определенных плоскостях многогранника. Векторы определяются прямо по картинке и, следовательно, известны. Каждая из трех плоскостей определяется одним трехмерным вектором, а каждая из семи точек — скаляром. Следовательно, мы имеем систему из 12 уравнений с 16 неизвестными. Если уравнения линейно независимы, можно найти единственное решение, зафиксировав любую четверку неизвестных переменных, при условии, как мы видели выше, что фиксированные переменные независимы.

Поучительно найти для случая произвольной картинки (с многогранником) число уравнений и переменных, используемых для выражения

инцидентности точек и плоскостей. Для задания каждой плоскости необходимы три числа, а для каждой характерной точки — еще одно число, поэтому

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

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

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

Теперь нам хотелось бы дать другую интерпретацию описанной выше процедуры. Интерпретация ограничена картинками трехгранных тел, но представляет интерес, поскольку она уточняет расплывчатое понятие «сцепления» одной грани многогранника с другой. Интерпретация основана на использовании определенного вида дуального графа изображения многогранника. Узлы дуального графа соответствуют видимым плоскостям многогранника; два узла дуального графа связаны дугой, если у их граней имеется общее (и видимое) ребро 2). Однако, если две плоскости связаны более чем одним ребром (которые все обязательно коллинеарны), между соответствующими узлами помещается только одна дуга. Рис. 12.18, а показывает ступенчатое трехгранное тело; соответствующий дуальный граф показан на рис. 12.18, б. Чтобы показать, как можно

использовать дуальный граф для интерпретации последовательного процесса сцепления одной грани многогранника с другой, предположим, что положения вершин А, С, D и Е известны; тогда известны положения граней 1 и 5.

Рис. 12.18. Слияние дуального графа трехгранного тела.

Чтобы показать, что эти грани известны, мы сольем вместе соответствующие узлы, как это видно на рис. 12.18, е; другие дуги, связанные с узлами 1 и 5, остаются связанными и после слияния, гак же как и в процессе слияния узлов, обсуждавшемся выше. Чтобы поддержать соответствие с последующими шагами, рис. 12.18, в показывает предварительную дугу, введенную между узлами 1 и 5. Мы будем следовать правилу, что узлы могут быть слиты, если они связаны по крайней мере двумя дугами. Продолжение показано на рис. 12.18, г, где слитный узел «1,5» означает, что положение граней 1 и 5 в трехмерном пространстве известно. Теперь узел «1,5» связан двумя дугами с узлом 2. Это означает, что грань 2 имеет два общих неколлинеарных ребра с гранями, положение которых известно; поскольку известны положения граней, положения ребер также известны. Поскольку плоскость определяется двумя лежащими на ней произвольными неколлинеарными линиями, положение грани 2 также известно. Чтобы отобразить этот факт, узел 2 сливается с узлом «1,5», образуя узел «1, 5, 2», как показано

на рис. 12.18, д. Этот процесс в нашем примере может повторяться, пока все первоначальные узлы не сольются в один.

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

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

<< Предыдущий параграф Следующий параграф >>
Оглавление