Нейрокалибровка бинокулярной системы с существенной дисторсией

УДК 621.8:681.5

О.С. КИРЕЕВ

НЕЙРОКАЛИБРОВКА БИНОКУЛЯРНОЙ СИСТЕМЫ С СУЩЕСТВЕННОЙ ДИСТОРСИЕЙ___________________________________________________________________________________________

Abstract: Neural networks applicability to the task of essentially distorted stereopair calibration is demonstrated. Neurocalibration robustness to the noise in calibration data is justified. Analytical calibration methods are compared with different neurocalibration ones, which differ in number of hidden layers, activation function, preprocessor usage and number of neural modules. Optimal neural networks architectures for the task of neurocalibration are obtained. Practical recommendations for binocular systems calibration procedure are formulated. Original software complex in Matlab language is developed for synthetic data generation and calibration results processing.

Key words: calibration, stereo, stereopair, distortion, neural networks.

Анотація: Показано застосовність нейронних мереж до задачі калібрування стереопари з істотною дисторсією. Підтверджено стійкість нейрокалібрування до зашумлення калібрувальних даних. Проведено порівняння аналітичних методів калібрування та різних методів нейрокалібрування, що відрізняються кількістю прихованих шарів, функцією активації, використанням препроцесора та кількістю нейромережевих модулей. Отримано оптимальні архітектури нейронних мереж для задачі нейрокалібрування. Сформульовано практичні рекомендації щодо процедури нейрокалібрування бінокулярних систем. Розроблено оригінальний програмний комплекс на мові Matlab для генерації синтетичних даних та обробки результатів калібрування.

Ключові слова: калібрування, стерео, стереопара, дисторсія, нейронні мережі.

Аннотация: Показана применимость нейронных сетей в задаче калибровки стереопары с существенной дисторсией. Подтверждена устойчивость нейрокалибровки к зашумлению калибровочных данных. Проведено сравнение аналитических методов калибровки и различных методов нейрокалибровки, отличающихся количеством скрытых слоев, функцией активации, использованием препроцессора и количеством нейросетевых модулей. Получены оптимальные архитектуры нейронных сетей для задачи нейрокалибровки. Сформулированы практические рекомендации по процедуре нейрокалибровки бинокулярных систем. Разработан оригинальный программный комплекс на языке Matlab для генерирования синтетических данных и обработки результатов калибровки.

Ключевые слова: калибровка, стерео, стереопара, дисторсия, нейронные сети.

1. Введение

В последнее время наблюдается повышенный интерес к системам стереозрения. По сравнению с монокулярными системами это означает переход от двумерных проекций окружающего пространства к его трехмерному представлению. Пространственные характеристики объектов важны в задачах автономной навигации роботов, автоматического управления манипуляторами, разнообразных системах наблюдения, системах контроля качества, а также во многих других областях. Одной из причин широкого применения систем стереозрения является дешевизна современных цифровых камер. Однако дешевые камеры страдают от разного рода оптических аберраций. Наиболее распространенная и существенная из них - это дисторсия, которая визуально проявляется в искривлении прямых линий и искажении перспективы. Часто под дисторсией подразумевают произвольные нелинейные искажения изображения. Кроме дороговизны хорошей оптики, есть другая причина использования камер с существенной дисторсией. Дисторсия позволяет значительно увеличить угловое поле зрения каждой из камер (на этом принципе, например, построены дверные глазки типа «рыбий глаз»). При этом существенно увеличивается область стереоэффекта, которая представляет собой пересечение полей зрения обеих камер. Это является серьезным преимуществом для стационарных стереосистем.

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

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

2. Постановка задачи

Цели данной работы состоят в следующем:

- исследование применимости нейронных сетей к задаче калибровки стереопары с существенной дисторсией;

- проверка устойчивости нейрокалибровки к зашумлению калибровочных данных;

- сравнение различных методов нейрокалибровки между собой и с аналитическими методами по точности калибровки;

- поиск лучшего метода нейрокалибровки и выработка практических рекомендаций по нейрокалибровке;

- определение оптимальной архитектуры нейронных сетей для случая камер с существенными нелинейными искажениями.

Калибровка стереопары заключается в нахождении параметров модели стереопары, которые позволяют восстанавливать 30-координаты некоторой точки пространства по 2D-координатам ее изображений на двух снимках стереопары. В дальнейшем будем обозначать через (X,Y,Z) координаты точки в пространстве; через (x1,у1) и (x2,у2) - координаты ее изображения на первом и втором снимках стереопары. При этом в дальнейшем изложении предполагается, что ось Ох примерно параллельна сенсорам камер и отрезку, соединяющему их

оптические центры, ось Oy обозначает глубину и направлена перпендикулярно плоскости

сенсоров, а ось Oz определяет высоту точки над поверхностью.

Методы нейрокалибровки, которые рассматриваются в работе, можно классифицировать по следующим признакам [1]:

1. Препроцессинг входного вектора:

- отсутствует. На вход нейронной сети подаются четыре действительных числа: x1, у1,

x, у 2;

- на вход нейронной сети подаются три действительных числа. Два из них, как и в предыдущем случае, хг и y . Третье число представляет собой разность хг и х2.

2. Количество модулей в сети:

- один с тремя действительными выходами: X, Y и Z ;

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

3. Количество скрытых слоев в нейронных сетях:

- один;

- два;

- три.

4. Количество нейронов в скрытых слоях. Определяется линейным перебором для каждого варианта нейрокалибровки. Методика перебора приведена в работе [1].

5. Функция активации:

- сигмоида. При этом данные приводятся к диапазону от 0 до 1;

- гиперболический тангенс. Данные приводятся к диапазону от -1 до 1.

Все нейронные сети обучаются алгоритмом Extended Delta-Bar-Delta с параметрами, приведенными в работе [1]. При обучении нейронных сетей используется программная система для работы с модульными нейронными сетями MNN CAD [2].

Методы нейрокалибровки сравниваются со следующими аналитическими методами:

1. Линейный. Используется линейная (pin-hole) модель камеры [3], элементы проекционной матрицы ищутся методом псевдоинверсии [4].

2. Bouguet с кх. Используется модель камеры Bouguet [5, 6]. При этом в калибровке участвует только первый коэффициент радиальной дисторсии кх. Используется метод калибровки Bouguet, доступный в Интернет в виде модулей Matlab [6]. Его суть заключается в нахождении начального приближения с помощью прямого линейного преобразования (Direct Linear Transformation, DLT) с последующим градиентным спуском.

3. Bouguet с полной дисторсией. Здесь также используются модель камеры и метод калибровки Bouguet, но с учетом всех пяти коэффициентов дисторсии (три радиальных и два тангенциальных).

3. Массивы данных

Исследование проводится на трех массивах синтетических данных, соответствующих камерам с разной степенью дисторсии. Данные генерируются при помощи модели камеры Bouguet [6] в масштабе, аналогичном массиву реальных данных в работе [1]. При этом абсолютные значения пространственных и 2D координат лежат в диапазоне, соответствующем рабочей области реальных камер, измеренному в миллиметрах. Так, первичная пространственная сетка калибровочных точек представляет собой куб со стороной 2000 и шагом сетки 25. Общее количество первичных калибровочных точек равно 17576.

Камеры располагаются на расстоянии 700 от передней грани куба примерно напротив центра грани. Координаты левой камеры в мировой системе координат равны (950, -700, 1200), правой камеры - (1050, -700, 1200). Камеры соосны (кроме массива данных № 3), расстояние между камерами стереопары равно 100. Первичная калибровочная сетка проектируется на плоскость изображения камер согласно заданным моделям камер. Координаты точек изображения принимают значения в диапазоне от 0 до 320 по х и от 0 до 240 по у, по аналогии с реальным сенсором. Точки первичной калибровочной сетки, не попавшие в область стереоэффекта, отбрасываются. Расположение камер и калибровочных точек в пространстве в системе координат левой камеры приведено на рис. 1 и 2.

Рис. 1. Расположение камер и калибровочных точек

Рис. 2. Расположение камер и калибровочных точек

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

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

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

Рис. 3. Проекция калибровочных точек для разных массивов данных: а) массив данных № 1

После проектирования к 3D и 2D координатам добавляется случайный шум. Шум генерируется согласно нормальному распределению с нулевым средним и добавляется независимо к каждой координате. Стандартное отклонение шума для 3D координат равно 3, для 2D координат - 0,5 во всех массивах данных. Полученная обучающая выборка случайным образом перемешивается и разбивается на три блока данных: train, test и valid. Блоки данных train и test используются для обучения нейронных сетей методом SaveBest, на блоке данных valid проводится проверка качества обучения. При калибровке аналитическими методами проверка качества калибровки также проводится на блоке данных valid, сама же калибровка осуществляется на объединенном массиве данных train+test. Характеристики синтетических массивов данных приведены в табл. 1.

Таблица 1. Характеристики данных

Характеристика Массив данных №1 Массив данных №2 Массив данных №3

Коэффициент дисторсии левой камеры 0 -0,5 -1,1

Коэффициент дисторсии правой камеры 0 -0,4 -1,0

Смещение оптического центра 10 5 5

Поворот камер нет нет есть

Фокусные расстояния камер равны разные разные

Стандартное отклонение 3D шума 3 3 3

Стандартное отклонение 2D шума 0,5 0,5 0,5

Всего точек 2145

Точек в массиве Train 1287

Точек в массиве Test 429

Точек в массиве Train+Test 1716

Точек в массиве Valid 429

Для подготовки синтетических данных и обработки результатов калибровки был разработан оригинальный программный комплекс на языке Matlab. Для нахождения проекций калибровочных точек и аналитической калибровки использовалась реализация Bouguet [6].

4. Результаты эксперимента

Ошибка триангуляции систем, откалиброванных нейросетевыми и аналитическими методами, представлена в табл. 2 - 4. Для нейронной сети (НС) конфигурация сети указана в виде Nj -N2 -...-

Nk, где k - количество слоев (включая входной); Nk - количество нейронов в слое. В случае

многомодульных сетей указаны конфигурации всех модулей в следующем порядке: X, Y и Z. Использование описанного выше препроцессора обозначено через “prepr”. Использование гиперболического тангенса в качестве функции активации обозначено как «th». «Mean» означает среднюю ошибку триангуляции, «STD» - стандартное отклонение и «Max» - максимальную ошибку.

Таблица 2. Ошибка триангуляции на массиве данных №1

Метод Train Test Valid

Mean STD Max Mean STD Max Mean STD Max

Линейный 44,0 39,9 460 45,0 43,3 214

Bouguet с kj 44,3 40,5 469 45,1 43,9 217

Bouguet с полной дисторсией 44,2 40,6 469 45,4 44,6 228

НС, 1 модуль, 4-21-3 50,0 33,2 183 51,0 34,2 222 51,6 35,5 198

НС, 1 модуль, 4-19-13-3 41,7 32,6 196 42,2 33,2 246 45,4 37,2 240

НС, 1 модуль, 4-19-13-7-3 42,1 32,9 203 42,8 33,1 236 45,1 37,3 230

Метод Train Test Valid

Mean STD Max Mean STD Max Mean STD Max

Линейный 50,3 42,8 295 53,7 45,1 288

Bouguet с кх 44,1 40,2 240 48,8 42,8 255

Bouguet с полной дисторсией 44,6 40,1 238 49,0 42,8 253

НС, 1 модуль, 4-21-3 53,7 37,4 202 52,6 36,1 174 53,0 37,4 195

НС, 1 модуль, 4-19-13-3 43,9 35,7 220 44,4 35,0 180 45,6 36,8 196

НС, 1 модуль, 4-19-13-7-3 43,7 35,8 221 43,9 34,4 176 45,6 36,5 190

Таблица 4. Ошибка триангуляции на массиве данных № 3

Метод Train Test Valid

Mean STD Max Mean STD Max Mean STD Max

Линейный 118 112 977 106 88,2 536

Bouguet с kj 42,1 39,6 253 45,2 39,6 224

Bouguet с полной дисторсией 42,2 39,6 255 45,3 39,9 228

НС, 1 модуль, 4-17-3 61,0 41,6 262 60,1 41,8 260 65,7 43,2 210

НС, 1 модуль, 4-19-13-3 41,7 34,4 256 41,1 32,3 253 45,2 36,7 226

НС, 1 модуль, 4-19-15-7-3 41,7 34,6 246 40,9 32,6 241 45,2 37,0 202

НС, 1 модуль, 4-19-3, th 52,8 36,9 246 53,1 35,1 215 56,4 40,7 254

НС, 1 модуль, 4-19-13-3, th 43,3 34,1 260 44,2 33,5 269 47,7 37,7 213

НС, 1 модуль, 4-19-13-7-3, th 43,7 34,3 283 45,3 32,7 230 47,2 37,0 223

НС, 1 модуль, 3-21-3, th, prepr 49,1 36,9 263 47,6 32,9 175 52,6 36,2 228

НС, 1 модуль, 3-17-13-3, th, prepr 41,2 33,0 264 41,6 32,5 169 45,8 37,9 205

НС, 1 модуль, 3-17-13-7-3, th, prepr 42,3 32,3 267 44,4 30,8 175 47,1 37,3 235

НС, 1 модуль, 3-21-3, prepr 50,4 38,8 328 48,7 34,0 181 54,5 40,4 227

НС, 1 модуль, 3-17-13-3, prepr 40,4 34,2 264 40,3 31,8 166 44,1 37,0 211

НС, 1 модуль, 3-19-13-7-3, prepr 41,6 34,1 273 40,6 31,5 159 44,0 36,8 214

НС, 3 модуля, 3-6-1, 3-7-1, 3-9-1, prepr 54,0 40,7 297 51,6 36,9 186 58,7 41,1 215

НС, 3 модуля, 3-9-5-1, 3-7-5-1, 3-7-5-1, prepr 42,0 34,4 254 41,4 31,4 170 44,5 36,8 217

НС, 3 модуля, 3-9-7-3-1, 3-9-7-3-1, 3-9-7-3-1, prepr 40,9 34,3 260 40,8 31,6 170 45,0 37,1 223

Результаты калибровки на массиве данных № 1 показывают, что нейронная сеть в состоянии отфильтровать наложенный шум не хуже аналитических методов. Это также подтверждается на остальных массивах данных.

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

Использование препроцессора, гиперболического тангенса в качестве функции активации и трехмодульных нейронных сетей было исследовано на массиве данных №3 как на наиболее сложном и наиболее приближенном к реальным данным. На рис. 5 показано влияние препроцессора и гиперболического тангенса в качестве функции активации на среднюю ошибку на наборе данных valid. Через “prepr” обозначено использование только препроцессора, через “th()” -использование только гиперболического тангенса, через “prepr+th()” - использование обоих. Результат калибровки без использования как препроцессора, так и гиперболического тангенса, обозначен как «базовый». Для сравнения приведены результаты калибровки методом Bouguet с учетом только первого и всех коэффициентов дисторсии. Среди нейросетевых методов рассматривались только одномодульные.

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

Зависимость ош ибки от ст 120 -| епени нелинейных искажений

эре valid 8 0 О О 1  Массив №1

* 60 'Ш1-11 1 2 3 Метод кс \  Массив №2 —I \  Массив №3 :1 И 4 5 6 либровки

Рис. 4. Средняя ошибка триангуляции на наборе valid для всех массивов данных: 1 - линейный метод; 2 -Bouguet с кх; 3 - Bouguet с полной дисторсией; 4 - НС, 1 модуль, 1 скрытый слой; 5 - НС, 1 модуль, 2 скрытых

слоя; 6 - НС, 1 модуль, 3 скрытых слоя

Использование препроцессора и функции активации th

70

60

тз

! 50 ер

! 40

ан

нан 30

I 20 о

10

0

Базовый

th

prepr

prepr+th

1 2 3 4 5

Метод калибровки

Рис. 5. Средняя ошибка триангуляции на наборе valid для массива данных №3 с использованием

препроцессора и гиперболического тангенса в качестве функции активации: 1 - Bouguet с кх; 2 - Bouguet с

полной дисторсией; 3 - НС, 1 модуль, 1 скрытый слой; 4 - НС, 1 модуль, 2 скрытых слоя; 5 - НС, 1 модуль, 3

скрытых слоя

Результаты использования трехмодульных сетей приведены на рис. 6. Все трехмодульные сети обучались с использованием препроцессора. Показаны ошибки обоих методов Bouguet, одномодульных сетей без препроцессора («базовый»), одномодульных сетей с препроцессором и трехмодульных сетей с препроцессором.

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

1 2 3 4 5

Метод калибровки

Базовый

1 модуль, prepr

3 модуля, prepr

Рис. 6. Средняя ошибка триангуляции на наборе valid для массива данных № 3 с использованием трехмодульных сетей: 1 - Bouguet с кх; 2 - Bouguet с полной дисторсией; 3 - НС, 1 скрытый слой; 4 - НС, 2

скрытых слоя; 5 - НС, 3 скрытых слоя

В целом, лучшие результаты показывают одномодульные нейронные сети с двумя или тремя скрытыми слоями и использованием препроцессора. Немного (около 2%) худшие результаты показывают аналитические методы с полным или частичным (только кх) учетом дисторсии. Причем аналитические методы проигрывают нейросетевым с двумя и тремя скрытыми слоями на всех массивах данных даже без использования препроцессора. Линейный аналитический метод и нейросетевой с одним скрытым слоем метод калибровки показывают значительно худшие результаты. Использование трехмодульных сетей и функции активации в виде гиперболического тангенса не дает выигрыша. Сводные результаты лучших методов калибровки на обучающей (train) и проверочной (valid) выборках массива данных № 3 приведены на рис. 7.

Ошибка лучших методов калибровки на массиве данных №3

46 45 44 43 3 42

би

J 41 40

39 38 37

train valid

Bouguet c k1

Боидив! с полной дисторсией

НС, 1 мод., 2 скр. слоя

НС, 1 мод., 3 скр. слоя

НС, 1 мод., 2 скр. слоя, препроцессор

НС, 1 мод., 3 скр. слоя, препроцессор

Рис. 7. Средняя ошибка триангуляции лучших методов калибровки на выборках train и valid массива данных № 3

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

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

5. Выводы

В данной работе показана принципиальная применимость нейронных сетей в задаче калибровки стереопары с существенной дисторсией. Подтверждена устойчивость нейрокалибровки к зашумлению калибровочных данных. Проведено сравнение аналитических методов калибровки и различных методов нейрокалибровки, отличающихся количеством скрытых слоев, функцией активации, использованием препроцессора и количеством нейросетевых модулей. Одномодульные нейронные сети с двумя или тремя скрытыми слоями показывают лучшие результаты на всех массивах данных среди всех рассмотренных методов калибровки, в том числе аналитических. Использование препроцессора еще улучшает результаты - при этом нейросетевые методы дают примерно на 2% меньшую ошибку триангуляции, чем аналитические методы с полным (пять коэффициентов дисторсии) или частичным (только первый радиальный коэффициент дисторсии) учетом дисторсии. Нейронные сети с одним скрытым слоем показывают значительно худшие результаты. Использование трехмодульных сетей и функции активации в виде гиперболического тангенса не дает выигрыша. Оптимальное количество нейронов в скрытых слоях не зависит от степени нелинейных искажений (в рассмотренных пределах) и совпадает с результатами, полученными в работе [1]. Это позволяет считать полученные архитектуры оптимальными для широкого класса задач нейрокалибровки и рекомендовать их для применения в реальных задачах калибровки. Для сетей с двумя скрытыми слоями оптимальна архитектура с 19 нейронами в первом ІБвИ 1028-9763. Математичні машини і системи, 2005, № 2 43

скрытом слое и 13 нейронами во втором. Для сетей с тремя скрытыми слоями оптимальна архитектура с 19 нейронами в первом скрытом слое, 13 - во втором и 7 - в третьем. Нейронные сети с тремя скрытыми слоями более сложны в обучении и не дают серьезного преимущества по сравнению с сетями с двумя скрытыми слоями, поэтому в практических задачах рекомендуется использовать нейронные сети с двумя скрытыми слоями (и препроцессором). В ходе исследования был разработан оригинальный программный комплекс на языке МаАаЬ для генерирования синтетических данных и обработки результатов калибровки.

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

СПИСОК ЛИТЕРАТУРЫ

1. Киреев О.С. Нейрокалибровка стереопары // Математичні машини і системи. - 2005. - № 1. - С.

2. Резник А.М., Куссуль М.Э., Сычев А.С., Садовая Е.Г., Калина Е.А. Система автоматизированного проектирования модульных нейронных сетей CAD MNN // Математические машины и системы. - 2002. - № 3.

- С. 28-36.

3. Armangue X., Salvi J., Battle J. A comparative review of camera calibrating methods with accuracy evaluation // Pattern Recognition. - 2002. - Vol. 35 (7). - P. 1617-1635.

4. Алберт А. Регрессия, псевдоинверсия и рекуррентное оценивание. - М.: Наука, 1977. - 224 с.

5. Heikkila J., Silven O. A Four-step Camera Calibration Procedure with Implicit Image Correction // CVPR97. -1997. - P. 1106-1112.

6. Bouguet J.-Y. Camera Calibration Toolbox for Matlab // http://www.vision.caltech.edu/bouguetj/calib doc.