Содержание

О себе

  

Андрей Ануфриев.

Программист-алгоритмист в Itseez (ООО "Аргус" в Нижнем Новгороде). Пишу на С++. Область интересов: компьютерное зрение, машинное обучение. Ленив, необщителен, люблю рыбалку, охоту и тихую охоту.

  • Впервые познакомился с Григорием Александровичем, когда он читал нам курс по программированию на Си. Слишком часто присылал ему свой код с выполненным заданием, что в итоге привело к получению зачёта.

Так оно и было, вы были тогда на третьем курсе 135 группа, и я подготовил список из девяти заданий. Вы с Таней выбрали двоичные деревья, кажется, и ты проявил невиданное упорство в атаке на задачу. Потом была курсовая работа по численному решению дифференциальных уравнений; если я правильно помню, мы реализовывали метод Рунге — Кутты — Кеша — Карпа. Потом был осциллограф с интерфейсом на SDL, а дипломная работа была по обнаружению движения на «живом» видео. -- СиткаревГригорий

Образование

  • В 2012 году закончил обучение по специальности «Прикладная математика и информатика» СыктГУ
  • С 2012 и по настоящее время — аспирант кафедры прикладной математики и информационных технологий в образовании Института точных наук и информационных технологий СыктГУ; специальность: 05.13.18 «Математическое моделирование, численные методы и комплексы программ»; научный руководитель — профессор, д. т. н., заведующий кафедрой ПМИТО ИТНИТ СыктГУ, НикитенковВладимирЛеонидович.

Опыт работы

  • 2000 — 2007: разнорабочий;
  • март 2011 — май 2015: ООО «СиТех», программист.
  • май 2015 — настоящее время: Itseez, программист-алгоритмист.

Литература

  1. Cash, J. R. A variable order Runge-Kutta method for initial value problems with rapidly varying right-hand sides / J. R. Cash, A. H. Karp // ACM Transactions on Mathematical Software. — 1990. — № 16. — p. 201-222. — URL: http://www.elegio.it/mc2/rk/doc/p201-cash-karp.pdf


КатегорияЛюди

Введение в компьтерное зрение.

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

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

Рассмотрим систему координат в трёхмерном пространсве, в начало которой поместим центр проекции камеры (фокус) так, чтобы оптическая ось камеры совпадала с осью Z. Расположим плоскость изображения (матрицу камеры) в плоскость Z=1 и обозначим её буквой \\\[*R\]. Данная плоскость \\\[*R\] называется идельной плоскостью изображения.

Вычислим проекцию точки пространства M=\[\[X, Y, Z\]\] sup roman T на плоскость изображения, для этого проведём прямую через начало координат и точкой M и найдём её пересечение с плоскостью \\\[*R\]. Так как для данной плоскости координата Z = 1 = Z ~ / ~ Z, то пропорционально так же: lpile {
x =
X ~ / ~ Z
above
y =
Y ~ / ~ Z
}

В матричной форме данное соотношение в однородных координатах можно записать так: left \[
pile { x above y above 1}
right \] 
= 
left \[
matrix {
ccol {1 above 0 above 0}
ccol {0 above 1 above 0}
ccol {0 above 0 above 1}
ccol {0 above 0 above 0}
}
right \]
~
left \[
pile { X above Y above Z above 1}
right \]

Замечание:

Однородные координаты -- координаты, обладающие тем свойством, что определяемый ими объект не меняется при умножении всех координат на одно и то же ненулевое число, то есть для плоскости, кроме привычных нам координат x и y, вводится третья "координата" w~!=~0 и точки (wx, wy, w) и (x, y, 1) считаются равными. При w~=~0 считается, что точка находится в бесконечности.

Внутренняя калибровка камеры

Простейший случай перспективной проекции практически всегда не соответствует реальной камере. Расстояние от центра проекции до плоскости изображения, т.е. фокусное расстояние, обозначаемое f, обычно не равно 1. Также координаты точки в плоскости изображения могут не совпадать с абсолютными координатами. При использовании цифровой камеры, соотношение между координатами точки в изображении и абсолютными координатами точки на идеальной плоскости, определяется формой и размерами пикселов матрицы, то есть оси координат изображения могут иметь разный масштаб если высота и ширина пикселов на матрице не равны между собой.

Обозначим размеры пиксела матрицы цифровой камеры за p sub x и p sub y угол наклона пиксела за  alpha принципиальную точку (точку пересечения оптической оси с плоскостью изображения) за  (c sub x, c sub y ) . Тогда координаты точки  (x,y) в изображении, соответствующей точке  (x sub r, y sub r ) на идеальной плоскости, определяются выражением: left \[
pile { x above y above 1}
right \] 
= 
left \[
matrix {
ccol {{f} over {p sub x} above 0 above 0}
ccol {{f tan alpha} over {p sub y} above {f} over {p sub y} above 0}
ccol {c sub x above c sub x above 1}
}
right \]
~
left \[
pile { x sub r above y sub r above 1}
right \]

Если рассматривать проекцию точки трёхмерной сцены, то предыдущее уравнение можно записать в следующем виде: left \[
pile { x above y above 1}
right \] 
= 
left \[
matrix {
ccol {{f} over {p sub x} above 0 above 0}
ccol {{f tan alpha} over {p sub y} above {f} over {p sub y} above 0}
ccol {c sub x above c sub x above 1}
}
right \]
~
left \[
matrix {
ccol {1 above 0 above 0}
ccol {0 above 1 above 0}
ccol {0 above 0 above 1}
ccol {0 above 0 above 0}
}
right \]
~
left \[
pile { X above Y above Z above 1}
right \]
= 
left \[
matrix {
ccol {{f} over {p sub x} above 0 above 0}
ccol {{f tan alpha} over {p sub y} above {f} over {p sub y} above 0}
ccol {c sub x above c sub x above 1}
}
right \]
~
left \[
matrix {
ccol {I| bold 0}
}
right \]
~
left \[
pile { X above Y above Z above 1}
right \]

, где  I - единичная матрица размера 3x3,  bold 0 - нулевой вектор размера 3x1.

Так как зачастую пренебрегают углом наклона пикселов из-за его малости и считают, что пикселы имеют равную высоту и ширину, но формулу проекции можно представить в следующем виде: left \[
pile { x above y above 1}
right \]
= 
left \[
matrix {
ccol {{f} over {p sub x} above 0 above 0}
ccol {0 above {f} over {p sub x} above 0}
ccol {c sub x above c sub x above 1}
}
right \]
~
left \[
matrix {
ccol {I| bold 0}
}
right \]
~
left \[
pile { X above Y above Z above 1}
right \]

Для дальнейших рассуждений обозначим матрицу внутренних параметров буквой  K : K
=
left \[
matrix {
ccol {{f} over {p sub x} above 0 above 0}
ccol {0 above {f} over {p sub x} above 0}
ccol {c sub x above c sub x above 1}
}
right \]

Внешняя калибровка камеры

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

Если  X tilde неоднородные координаты точки пространства (то есть имеем только 3 координаты), то преобразование из мировой системы координат в систему координат камеры можно представить в следующем виде:  X tilde sub cam = R ( X tilde - C tilde ) , где  C tilde координаты центра камеры в мировой системе координат и  R матрица поворота размера 3x3. Матричная формула данной записи имеет вид: X tilde sub cam
=
left \[
matrix {
ccol {R above 0}
ccol {-R~C tilde above 1}
}
right \]
X

А координата точки на изображении имеет вид: x
=
KR\[\[I | -~C tilde \]\]X
=
PX

Матрицу  P называют матрицей проекции камеры. Матрица  P имеет 9 степеней свободы: 3 степени  left ( {f} over {p sub x}, p sub x, p sub y right ) для внутренних параметров камеры (internal camera parameters) и 6 степеней для описания поворота и трансляции для внешних параметров камеры (external parameters).

 -- Искажения объектива.

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

Рассмотрим математическое описание радиальной дисторсии. Пусть  (u, v) - сиcтема координат точек изображения в случае линзы без искажений и  ( u tilde , v tilde ) - реально наблюдаемая система координаты. Тогда эти координаты связаны следующей формулой: 
x tilde 
= 
x + x \[\[k sub 1 (x sup 2 + y sup 2 ) + k sub 2 (x sup 2 + y sup 2 ) sup 2 \]\]

y tilde 
= 
y + y \[\[k sub 1 (x sup 2 + y sup 2 ) + k sub 2 (x sup 2 + y sup 2 ) sup 2 \]\]