Файл: Техническое зрение для системы управления сортировочного робота.pdf
Добавлен: 25.10.2023
Просмотров: 999
Скачиваний: 17
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
38 координатах представляется расширенным вектором
(????????
????
, ????????
????
, ????????
????
)
????
.Физические координаты связаны с однородными следующим образом:
????
????
=
????????
????
????
, ????
????
=
????????
????
????
, ????
????
=
????????
????
????
Представление трехмерного вектора положения в однородных координатах не единственно. Например, ????
1
= (????
1
????
????
, ????
1
????
????
, ????
1
????
????
)
????
и
????
2
=
(????
2
????
????
, ????
2
????
????
, ????
2
????
????
)
????
являются различными однородными представлениями одного и того же вектора положения ???? = (????
????
, ????
????
, ????
????
)
????
. Таким образом, четвертую компоненту w вектора однородных координат можно рассматривать как масштабирующий множитель. Если эта компонента равна
1 (w=1), то однородные координаты вектора положения совпадают с его физическими координатами. В робототехнике масштабирующий множитель всегда выбирают равным 1, а в задачах машинной графики он принимает любое положительное значение.
3.1.5 Внешняя система координат
Мы также выбираем систему отсчета координат в реальном мире для описания положения камеры и объекта, который называется мировой системой координат. Связь между системой координат камеры и мировой системой координат может быть описана матрицей вращения R и вектором трансляции t. Таким образом, однородные координаты (X
w
, Y
w
, Z
w,1
)
T
пространственной точки M в мировой системе координат и системе координат камеры связаны с (X
c
, Y
c
, Z
c,1
)
T
:
[
????
????
????
????
????
????
1
] = [
????
????
0
????
1
] = ???? [
????
????
????
????
????
????
1
]
R - матрица вращения 3 × 3, t - трехмерный вектор трансляции
,0=(0,0,0)
T
, P - матрица преобразования между двумя системами координат.
39
3.2 Размещение камер
Камеру можно закрепить разными способами. Самый простой это закрепить неподвижно на специальное основание рядом с возможным движением полезных объектов в рабочей области. На рисунке 3.3 показан пример такого крепления.
Рисунок 3.3-
Пример крепления камеры на неподвижное основание
Если камера находится в рабочей области движения манипулятора, то в программе управления роботом необходимо дополнительно наложить ограничения, чтобы не допустить возможность столкновения подвижных элементов с датчиком. Кроме того, желательно обеспечить внешнюю механическую защиту. Нельзя забывать, что при работе манипуляционный робот будет своими частями закрывать различные области рабочей зоны, поэтому для камеры либо необходимо обеспечить максимально возможный обзор поверхности, либо программно исключать из обработки кадры, когда видимость недостаточная. При жестком креплении камеры, координаты ее установки должны быть известны и привязаны к системе координат основания манипулятора для корректного определения положения полезных объектов относительно робота и успешного выполнения алгоритма управления.
Другим вариантом установки СТЗ является крепления на схват манипулятора (рисунок 3.4). Конструкция многих камер предусматривает
40 установку на специальный фланец, который позволяет схвату полноценно функционировать с работающей камерой.
Рисунок 3.4 – Пример крепления камеры на схват манипулятора
В данном случае, элементы манипуляционного робота не будут мешать при работе обзору СТЗ. Для определения положения полезных объектов в рабочем пространстве необходимо связать координаты, полученные от камеры, с положением схвата в пространстве относительно основания манипулятора. Для этого необходимо для каждой итерации считать прямую задачу кинематики. Кроме того, если стоит задача по камере определить скорость движения объектов, то необходимо учитывать и скорость движения схвата в том числе. Для предотвращения удара камеры о части манипуляционного робота, необходимо для последнего программно наложить ограничения на возможные движения.
Также важным свойством будет отсутствие или возможность отключения системы автоматической фокусировки. Из-за данной системы затруднительно использование многих современных камер, так как они рассчитаны на съемку неподвижного объекта, а в случае с постоянно перемещающимися манипуляционными роботами и полезным грузом будет часто теряться фокусировка изображения. Объектив закрепляется над рабочей поверхностью и охватывает углом обзора все рабочее пространство. Точка закрепления камеры должна быть известна.
Исходя из положения конвейера, манипулятора и отсутствия подходящей камеры для расположения её на манипуляторе, самым практичным и удобным способом в данном случае было размещение двух
41 камер статически, сбоку и в конце конвейера. Камера, которая находится в конце конвейера будет в дальнейшем нумероваться как №1, а та что сбоку №2
(рисунок 3.5)
Рисунок 3.5 – Размещение камер на конвейере
Для более быстрого выполнения программы и отсечения ненужной информации кадры. Кадр каждой камеры был обрезан до определенной априорной области, в которой и происходит поиск объекта. (рисунок 3.6 и 3.7)
Рисунок 3.6 – Исходный и обрезанный кадр с камеры №1
42
Рисунок 3.7 – Исходный и обрезанный кадр с камеры №2
Две камеры необходимы для получения трехмерных координат объекта изделия. Одна камера получает информацию об изделии с изображения в координатах (X, Z) вторая (Y, Z). При склеивании двух полученных изображений вычисляется трехмерная координата (X, Y, Z) положения центра изделия. В качестве изделий были использованы три вида кубиков: красный, зеленый и синий.
3.3 Калибровка камеры
Перед началом использования, камера должна быть откалибрована.
Калибровка позволяет учесть искажения, вносимые оптической системой.
Калибровка камеры сводится к получению внутренних и внешних параметров камеры по имеющимся фотографиям или видео, полученным с ее помощью. Калибровка камеры обычно производится на начальном этапе решения многих задач компьютерного зрения. Кроме того, данная процедура позволяет исправить дисторсию на фотографиях и видео.
Как правило, для представления 2D-координат точки на плоскости используется вектор-столбец вида [???? ???? 1]
????
, а для задания положения 3D-
43 точки во внешних координатах – [????
????
????
????
????
????
1]
????
. Следует отметить, что эти выражения записаны в расширенной нотации однородных координат. В частности, в модели камеры-обскуры матрица камеры используется для проецирования точек трёхмерного пространства на плоскость изображения[15]
????
????
[
????
????
1
] = ????[???? ????] [
????
????
????
????
????
????
1
] где Z
c
- произвольный масштабный коэффициент
Параметры внутренней калибровки[15]
???? = [
????
????
????
????
0 0
????
????
????
0 0
0 1
]
Матрица внутренней калибровки A содержит 5 значимых параметров.
Эти параметры соответствуют фокусному расстоянию, углу наклона пикселей и принципиальной точке. В частности, ????
????
и ????
????
соответствуют фокусному расстоянию, измеренному в ширине и высоте пикселя, ????
0
и ????
0
− координатам принципиальной точки, а, ???? =????
????
∙ ???????????????? где ???? - угол наклона пикселя.
Нелинейные параметры внутренней калибровки, такие как коэффициенты дисторсии, также имеют важное значение, хотя и не могут быть включены в линейную модель, описываемую матрицей внутренней калибровки.
Большинство современных алгоритмов калибровки камеры определяет их вместе с параметрами линейной части модели. Параметры внутренней калибровки относятся только к камере, но не к сцене, поэтому они изменяются только в том случае, когда меняются соответствующие настройки камеры.
Параметры внешней калибровки ????, ???? (где ???? - вектор 3 × 1 или матрица
3 × 3 поворота, ???? - вектор 3 × 1 переноса) определяют преобразование координат точек сцены из мировой в систему координат камеры. Параметры внешней калибровки связаны непосредственно с фотографируемой сценой, поэтому (в отличие от параметров внутренней калибровки) каждой
44 фотографии соответствует свой набор этих параметров. В данной работе будет реализована только калибровка внутренних параметров камеры.
При съемке свет со сцены фокусируется и захватывается камерой. Этот процесс уменьшает число измерений у данных, получаемых камерой, с трёх до двух (свет из трёхмерной сцены преобразуется в двухмерное изображение).
Поэтому каждый пиксель на полученном изображении соответствует лучу света исходной сцены, соответственно во время калибровки камеры происходит поиск соответствия между трёхмерными точками сцены и пикселями изображения.
В случае идеальной камеры-обскуры для задания такого соответствия достаточно одной матрицы проекции. Однако в случае более сложных камер искажения, вносимые линзами, могут сильно повлиять на результат. Таким образом, функция проецирования принимает более сложный вид и часто записывается как последовательность преобразований, например:
???? = ???? ∙ ????????????????(???? ∙ ????), где ???? = [????
????
????
????
????
????
1]
????
– координаты исходной точки сцены;
???? = [???? ???? 1] – координаты пикселя на изображении;
???? = [
????
????
0 3
????
1
] – матрица внешней калибровки (где R –матрица поворота 3х3, Т-вектор переноса 3х1;
Dist – функция применения дисторсии;
???? = [
????
????
????
????
0 0
????
????
????
0 0
0 1
] – матрица внутренней калибровки.
Существует несколько различных подходов к решению задачи калибровки.
1. Классический подход —алгоритм Roger Y. Tsai[16], состоящий из двух этапов, на первом определяются параметры внешней калибровки, на втором —внутренней калибровки и дисторсии.
2. «Гибкая калибровка», предложена в работе [17] и основана на использовании плоского калибровочного объекта в виде шахматной доски
(рисунок 3.8).
45 3. Автоматическая калибровка —получение калибровочных данных непосредственно по изображениям, без использования специальных калибровочных объектов[18].
Рисунок 3.8 – Калибровка на основе шахматной доски
В данной работе используется «гибкая калибровка», в силу простоты реализации.
Использование шахматной доски возможно благодаря тому, что известно, какие именно у нее точки –можно посмотреть, в какие точки они перешли на изображении.
Если много раз показать этот шаблон камере, то можно увидеть, куда проецируются точки, следовательно, можно установить эти параметры.
В результате возникает задача оптимизации. Известны трехмерные координаты углов (можно измерить размеры квадрата и записать трехмерные координаты шахматной доски), можно продетектировать эти уголки на изображении – это стандартная задача. Таким образом, будет соответствие между трехмерной точкой и двухмерной точкой. И нужно будет найти такие параметры, чтобы трехмерные точки переходили именно в эти двухмерные точки. То есть нужно оптимизировать параметры камеры так, чтобы получалась правильная проекция. Для калибровки нужно показывать доску под разными углами (рисунок 3.9) ее можно поворачивать, ее нужно показать во всех частях камеры для того, чтобы надежно установить ее параметры.
46
Потому что если показывать шаблон в одной и той же позиции в одном углу, то хорошо будет известно, как камера проецирует этот угол, но во всей остальной части изображения все может быть очень плохо.
Рисунок 3.9 – Процесс калибровки камеры
Помимо шахматной доски можно использовать и другие шаблоны – например, шаблон из нарисованных кружков, он показывает более точные результаты, потому что центра круга можно найти с большей точностью, чем угол шахматной доски. Соответственно, калибрация получается более точной.
Можно использовать более сложные шаблоны, например, трехмерные.
В обычных условиях достаточно одной калибровки для одной камеры.
Производители камер предоставляют технические данные. Проблема в том, что для одной модели эти параметры будут немножко отличаться. Можно предоставить какие-то параметры по умолчанию и такие камеры существуют, для которых они посчитаны – для модели. Но для конкретной камеры данной модели они могут немного отличаться. Потому что если бы они не отличались, это означало бы, что матрица расположена абсолютно на одном и том же месте, абсолютно такие же линзы. На практике такое невозможно. Всегда будут небольшие отклонения, следовательно, параметры калибрации тоже будут немного другими. Поэтому для более точных параметров необходимо делать калибровку самому. Можно пытаться делать автокалибрацию – снимать камерой обычное изображение – без шаблонов шахматной доски, и при этом пытаться понять, какие у нее внутренние параметры. Автоматически,
47 без шаблонов, пытаться понять, как она искажает. Но на практике получается, что иногда это работает, иногда это не работает. В алгоритме автокалибрации есть несколько параметров – эти параметры нужно подбирать для того, чтобы запустить алгоритм, потому что при одних параметрах алгоритм сработает хорошо, при других сработает плохо. В ситуации же с использованием шаблонов с гораздо большей надежностью можно получить хорошую калибрацию камеры.
Как было сказано ранее камеры-обскуры приводят к большим искажениям изображений. Двумя основными искажениями являются радиальные искажения(a) и тангенциальные искажения(в) (рисунок 3.10).
Рисунок 3.10 – Изображение шахматной доски a) танценциальное искажение б) неискаженное в) радиальное искажение
Из-за радиального искажения прямые линии будут изогнутыми. Этот эффект будет увеличиваться с удалением от центра изображения. Например, на рисунке 3.11, где два края шахматной доски отмечены красными линиями.
Но можно увидеть, что граница не является прямой и не соответствует красной строке. Все ожидаемо прямые линии изогнуты. [19]
Это искажение решается следующим образом:
????
????????????????????????????????????
= ????(1 + ????
1
∙ ????
2
+ ????
2
∙ ????
4
+ ????
3
∙ ????
6
)
????
????????????????????????????????????
= ????(1 + ????
1
∙ ????
2
+ ????
2
∙ ????
4
+ ????
3
∙ ????
6
)
48
Рисунок 3.11 - Радиальное искажение на шахматной доске
Другим искажением является тангенциальное искажение, которое происходит, потому что съемка изображения не выравнивается идеально параллельно плоскости изображения. Поэтому некоторые области изображения могут выглядеть ближе, чем ожидалось. Оно решается следующим образом:
????
????????????????????????????????????
= ???? + [2????
1
∙ ???? ∙ ???? + ????
2
∙ (????
2
+ 2????
2
)]
????
????????????????????????????????????
= ???????? + [2????
2
∙ ???? ∙ ???? + ????
1
∙ (????
2
+ 2????
2
)]
В итоге, нужно найти пять параметров, известных как коэффициенты искажения, определяемые:
???????????????????????????????????????? ???????????????????????????????????????????????? = (????
1
????
2
, ????
1
, ????
2
, ????
3
)
В дополнение к этому нам нужно найти еще некоторую информацию, например, внутренние и внешние параметры камеры. Внутренние параметры специфичны для камеры. Они включает информацию, такую как фокусное расстояние ????
????
????
????
, оптические центры ????
????
????
????
и т. д. Их также называют матрицей камеры. Это зависит только от камеры, поэтому после вычисления она может храниться для будущих целей. Она выражается как матрица 3x3:
???? = [
????
????
????
????
0 0
????
????
????
0 0
0 1
]
Внешние параметры соответствуют векторам вращения и трансляции, которые переводят координаты трехмерной точки в систему координат.