42
Беспилотное транспортное средство: геолокация с использованием видео 27 октября 2015

Геолокация беспилотного транспортного средства с использованием видео

Embed Size (px)

Citation preview

Page 1: Геолокация беспилотного транспортного средства с использованием видео

Беспилотное транспортное средство:

геолокация с использованием видео

27 октября 2015

Page 2: Геолокация беспилотного транспортного средства с использованием видео

Контекст

Page 3: Геолокация беспилотного транспортного средства с использованием видео

● Проблема: переместить группу людей: ○ На короткое расстояние ( < 3 km) ○ В защищенной среде ○ Дешево

● Потенциальные клиенты: ○ Крупные производственные предприятия

○ Аэропорты ○ Парки, крупные выставки…

Цели проекта

Page 4: Геолокация беспилотного транспортного средства с использованием видео

Решение: Трамвай без инфраструктуры

● Плюсы в сравнении с классическим трамваем: ○ Нет затрат на инфраструктуру ○ Можно легко поменять маршрут

● Плюсы в сравнении с автобусом: ○ Не нужно платить зарплату водителю ○ Легко масштабируется ○ Функционирует 24/7

Решение

Page 5: Геолокация беспилотного транспортного средства с использованием видео

● Institut Pascal: ○ Находится в Клермон-Ферране, Франция

○ Большое количество направлений исследований: ■ От биологии до робототехники

● Ligiér: ○ Производитель автомобилей ○ Специалист по маленьким машинам

Основные партнёры

Page 6: Геолокация беспилотного транспортного средства с использованием видео

● около 2001: Начало первых исследований ● 2009: Началась разработка первого прототипа

● 2011: Первое крупномасштабное исследование

● 2015: Открытие стартапа EasyMile

Хронология проекта

Page 7: Геолокация беспилотного транспортного средства с использованием видео

Платформа

Page 8: Геолокация беспилотного транспортного средства с использованием видео

https://www.youtube.com/watch?v=u9Axo51ZJOY

Немного видео…

Page 9: Геолокация беспилотного транспортного средства с использованием видео

Эволюция прототипов

Page 10: Геолокация беспилотного транспортного средства с использованием видео

Полигон для тестов

Page 11: Геолокация беспилотного транспортного средства с использованием видео

● Основные характеристики: ○ Вместимость: 6 человек ○ Максимальная скорость: 25 км/ч ○ Автономия: 8 ч

● Оборудование: ○ 2 видео камеры ○ 4 Лидара ○ 1 oдометр

Характеристики

Page 12: Геолокация беспилотного транспортного средства с использованием видео

● Нижний уровень ● Верхний уровень

Система управления

Page 13: Геолокация беспилотного транспортного средства с использованием видео

● Специально спроектированное электронное устройство

● Ввод: ○ Высокоуровневые команды ○ Поступают по шине CAN

● Вывод: Управляющие сигналы для силовых приводов

Нижний уровень

Page 14: Геолокация беспилотного транспортного средства с использованием видео

● Стандартный ПК в индустриальном корпусе: ○ OS: Ubuntu Linux ○ Язык программирования: С++

● Ввод: ○ 2 видео потока ○ Пользовательский ввод

● Вывод: Команды для нижнего уровня

Верхний уровень

Page 15: Геолокация беспилотного транспортного средства с использованием видео

Архитектура верхнего уровня

КартаВидео

GPS

Лидар

Модули позиционирования

Модуль управления

UI

Page 16: Геолокация беспилотного транспортного средства с использованием видео

Позиционирование по видео:

Фаза обучения

Page 17: Геолокация беспилотного транспортного средства с использованием видео

● Оператор проводит машину по траектории ○ Видеопотоки записываются

● Запускается процесс обучения ○ Создаётся база данных ○ Определяется система координат ○ Определяется траектория движения

Фаза обучения

Page 18: Геолокация беспилотного транспортного средства с использованием видео

Для каждого кадра: ● Ищутся интересные точки ● Им ищутся соответствия в предидущем кадре

● Обновляется база данных: ○ Вычисляются 3Д координаты точек ○ Вычисляются 3Д координаты машины

Процесс обучения (одна камера)

Page 19: Геолокация беспилотного транспортного средства с использованием видео

Детектор углов Харриса:

Выявление интересных точек

http://sse.tongji.edu.cn/linzhang/CV14/Projects/panorama.htm

Page 20: Геолокация беспилотного транспортного средства с использованием видео

Детектор углов Харриса

3

Harris Detector: Basic Idea

“flat” region:no change in all directions

“edge”:no change along the edge direction

“corner”:significant change in all directions

Contents• Harris Corner Detector

– Description– Analysis

• Detectors– Rotation invariant– Scale invariant– Affine invariant

• Descriptors– Rotation invariant– Scale invariant– Affine invariant

Harris Detector: Mathematics

[ ]2,

( , ) ( , ) ( , ) ( , )x y

E u v w x y I x u y v I x y= + + −∑

Change of intensity for the shift [u,v]:

IntensityShifted intensity

Window function

orWindow function w(x,y) =

Gaussian1 in window, 0 outside

Harris Detector: Mathematics

[ ]( , ) ,u

E u v u v Mv

For small shifts [u,v] we have a bilinear approximation:

2

2,

( , ) x x y

x y x y y

I I IM w x y

I I I

=

where M is a 2×2 matrix computed from image derivatives:

Harris Detector: Mathematics

[ ]( , ) ,u

E u v u v Mv

Intensity change in shifting window: eigenvalue analysis

λ1, λ2 – eigenvalues of M

direction of the slowest change

direction of the fastest change

(λmax)-1/2

(λmin)-1/2

Ellipse E(u,v) = const

Harris Detector: Mathematics

λ1

λ2

“Corner”λ1 and λ2 are large,λ1 ~ λ2;E increases in all directions

λ1 and λ2 are small;E is almost constant in all directions

“Edge”λ1 >> λ2

“Edge”λ2 >> λ1

“Flat”region

Classification of image points using eigenvalues of M:

Плоский регион: нет изменений по всем направлениям

Грань: резкое изменение в одном направлении

Угол: резкое изменение во всех направлениях

Page 21: Геолокация беспилотного транспортного средства с использованием видео

Используя корреляцию ZNCC:

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

http://sse.tongji.edu.cn/linzhang/CV14/Projects/panorama.htm

Page 22: Геолокация беспилотного транспортного средства с использованием видео

Zero mean Normalized Cross-Correlation:

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

!!!"#" !$%&'('$)*+ ,)&-%)-&'./&0(.10)20$ !"

! "#$%&' &(' )'& *+ +'%&,-') !"#$%& %..*-$/01234 5 !"#$% /) % )'& *+ *..,--'0.')*+ % #%-&/.,2%- +'%&,-' /0 &(' ),..'))/6' /7%1')8 +*- '9%7#2' % )'-/') *+ :;#*/0&) /0 ),..'))/6' /7%1') .*--')#*0$/01 &* &(' )%7' <; #*/0& /0 )#%.'4

! ;'./$' /+ &(' #-'6/*,) /7%1' /) % %'( )#*' =)'' ),>)'.&/*0 ???4:4:@4

! ?+ &(' #-'6/*,) /7%1' /) % %'( )#*'8 #'-+*-7 &(' +*22*A/01 %$$/&/*0%2 )&'#)B

# C*7#,&' %0 %##-*9/7%&' #*)' *+ &(' %'( )#*' =)'' ),>)'.&/*0 ???4:4<@,)/01 % -*>,)& ')&/7%&/*0 7'&(*$ =D5EF5C@4

# D'G0' &(' #*)') *+ &(' Npose 2%)& H'3 +-%7') %0$ &(' <; #*/0&) 6/)/>2'+-*7 &(' Nobs 2%)& H'3 +-%7') >3 ,)/01 % +,-./' #.0,&!*'-! =)'' ),>)'.I&/*0 ???4:4J@4

! 5.K,/-' &(' 0'9& /7%1' %0$ 1* &* &(' >'1/00/014

?0 &(' +*22*A/01 ),>)'.&/*0)8 A' A/22 -'6/'A %22 &(')' )&'#) /0 7*-' %7#2' $'&%/2)4

!!!"#"3 !$)'&'4) 502$)4 6')'%)20$ *$6 (*)%72$8

L(' G-)& &%)H &* #'-+*-78 A('0 % 0'A +-%7' /) %.K,/-'$8 /) &* $'&'.& &(' /0&'-I')& #*/0&)4 M3 )#*' A' 7'%0 &(' .*0.%&'0%&/*0 *+ &(' n /7%1') %.K,/-'$ >3 &('.%7'-%) *+ &(' 7,2&/I.%7'-% )3)&'78 )'' G1,-' ???4N> +*- %0 '9%7#2'L(' #*/0&) *+ /0&'-')&) %-' $'&'.&'$ /0 '%.( *+ &(' /7%1') *+ &(' +-%7' ,)/01 &('

1#""2& /0&'-')& #*/0&) $'&'.&*- OP%--/)QQR4 L('3 %-' 7%/023 2*.%&'$ /0 ('%6/23 &'9I&,-'$ #%-&) *+ &(' /7%1' %0$ /0.2,$' &(' #-*S'.&/*0) *+ &(' .*-0'-) *+ &(' *>)'-6'$*>S'.&)4 L(/) 2%&'- #-*#'-&3 /) #%-&/.,2%-23 /0&'-')&/01 +*- &(' ),-+%.' -'.*0)&-,.I&/*0 #-*>2'74 L('1#""2& $'&'.&*- /) %2)* /06%-/%0& &* /22,7/0%&/*0 .*0$/&/*0)4 L('%.&,%2 /7#2'7'0&%&/*0 $'&%/2) A%) &%H'0 +-*7 OE/)&T-UVR4 W%.( $'&'.&'$ #*/0& (%)% .*0G$'0.' ).*-' =0,7'-/.%2 6%2,'@ %))*./%&'$ &* /& >3 &(' $'&'.&*-8 A' H''# *023Npoi #*/0&) A/&( &(' >')& .*0G$'0.' ).*-'45+&'- &(' +'%&,-') A'-' $'&'.&'$8 &('3 %-' 7%&.('$ A/&( &(' +'%&,-') +-*7 &('

#-'6/*,) +-%7'4 X/-)& *+ %228 A' .*0)/$'- &(%& % +'%&,-' )''0 >3 *0' *+ &(' .%7'-%)*+ &(' )3)&'7 .%0 *023 >' 7%&.('$ A/&( &(' +'%&,-' $'&'.&'$ /0 &(' )%7' .%7'-%4F'.*0$8 A' .*0)/$'- &(%& &(' 7*6'7'0& >'&A''0 &(' &A* /7%1') /) )7%228 )* A')'%-.( +*- % #*&'0&/%2 7%&.( /0 % Xroi >3 Yroi Y*0' .'0&'-'$ %& &(' .,--'0& #*/0&#*)/&/*04 5 3'"4 *'#- 54"*#/26'. 7"4&&874""'/#!24- =ZECC@ /0 % w >3 w 0'/1(>*-I(**$ /) .*7#,&'$ >'&A''0 &(' #*/0& %0$ %22 &(' #*&'0&/%2 .%0$/$%&')8 &('0 &(' >')&.%0$/$%&' /) H'#&4 X*- 7'7*-3 % ZECC .%0 >' A-/&&'0B

ZNCCw×w($%,$!) =Σ&∈νw(I($% + &)− I($%))(I($! + &)− I($!))!

Σ&∈νw(I($% + &)− I($%))2!

Σ&∈νw(I($! + &)− I($!))2=???4J@

A/&(I($') =

1

w2

"

&∈νw

I($' + &) =???4Q@

A('-' $% %0$ $! %-' &(' &A* #*/0&) &* >' .*7#%-'$8 I($) /) &(' 2,7/0%0.' 6%2,' *+&(' #*/0& $ %0$ νw /) &(' w × w 0'/1(>*-(**$4?+ &(' .-*))I.*--'2%&/*0 6%2,' *+ &(' >')& .%0$/$%&' /) 2')) &(%0 &(-')(*2$Sm8 &('

7%&.( /) -'S'.&'$4 ?+ &(' 7%&.( /) H'#&8 A' .('.H /+ &(' #*/0& A' (%6' )'2'.&'$ (%)

Page 23: Геолокация беспилотного транспортного средства с использованием видео

На выходе получаем дорожки:

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

!" !!!" #$ %&'() *+&,- *&.%,)/)'&(

Iki−1 Iki

!Ij−1 Ij

#$%−& #$% #'−& #%#′$%−&

#′$% #′'−&

"#$%&' ((()*+ "',-%&'. -&,/0#1$ 12-,-#21.) Ij #. ,1 #3,$' 24 -5' .'6%'1/' 7#-5 j,. #18'9) ki ,&' -5' #18'9'. 24 -5' 0': 4&,3'.) #ki #. ,1 2;.'&<,-#21 24 -5' =2#1-# #1 -5' 4&,3' Iki ) >5' &'$%?,& ?#1'. ,&' -&%' 3,-/5'. ,18 -5' 8,.5'8 ?#1'. ,&'/21.#8'&'8 , 4,?.' 3,-/5'.)

,?&',8: ;''1 3,-/5'8 7#-5 ,12-5'& =2#1-) (4 #- 7,. 12- ;''1 3,-/5'8 2& -5' /&2..@/2&&'?,-#21 <,?%' 24 -5' =&'<#2%. 3,-/5 #. #14'&#2& -2 -5' 1'7 21'A -5' 1'7 3,-/5#. 0'=- ,18 -5' =&'<#2%. 3,-/5 #. &'32<'8) >5#. -'/51#6%' 5,<' -5' ,8<,1-,$' -2,<2#8 , $&',- 1%3;'& 24 4,?.' 3,-/5'.)

!!!"0"0 !()1213) %&'()3 )2/*4'(5 /(- 416 72/.1 31+1*)'&(

B' 5,<' .''1 527 -5' =2#1-. 24 #1-'&'.- ,&' 8'-'/-'8 ,18 3,-/5'8 7#-5 -5' =&'@<#2%. #3,$') (1 -5' =&'.'1- .%;.'/-#21 7' 7#?? '9=?,#1 527 -5' =2#1-. ,&' -&,/0'8-5&2%$52%- -5' .'6%'1/') C2&'2<'&A 7' ,?.2 #1-&28%/' -5' /21/'=- 24 !"# $%&")>5' =&2;?'3 7#-5 ,1 %.%,? <#8'2 .'6%'1/' #. -5,- -5' /21.'/%-#<' #3,$'. ,&'

<'&: /?2.' -2 ',/5 2-5'&) (4 7' -&: -2 /23=%-' -5' /,3'&, =2.#-#21. ,..2/#,-'8-2 ',/5 #3,$' 24 -5' .'6%'1/'A 1%3'&#/,? .-,;#?#-: =&2;?'3. 2//%&) >2 ,<2#8 -5#.=&2;?'3A 7' /522.' -2 ='&42&3 -5'.' /23=%-,-#21. 21?: 21 , .%;.'- 24 #3,$'.'<'1?: 8#.-&#;%-'8 ,/&2.. -5' .'6%'1/' #1 , 7,: -2 ;' 12- -22 /?2.' ,18 12- -2 4,& -2',/5 2-5'&) >5'.' #3,$'. ,&' /,??'8 !"# $%&"') >5#. -'/51#6%' ,?.2 5'?=. -2 8'-'/--5' 4,?.' 3,-/5'. ,. 7#?? ;' '9=?,#1'8 ?,-'&)"#&.- 24 ,??A 7' 1''8 -2 8'D1' -5' /21/'=- 24 EF ()%*!) G'- n ;' -5' 1%3;'&

24 -5' /%&&'1- #3,$'A .2 Ij 7#-5 j ∈ {0, . . . , n} ,&' -5' /%&&'1-?: =&2/'..'8 #3,$'.24 -5' <#8'2 .'6%'1/') C2&'2<'&A ?'- m ;' -5' 1%3;'& 24 /%&&'1-?: .'?'/-'8 0':4&,3'.) >5%.A -5'#& #18'9'. H.'' D$%&' ((()*I ,&' ki 7#-5 i ∈ {0, . . . ,m} ,18 0 ≤ki ≤ n − 1) G'- # ∈ R3 ;' , =2#1- #1 JF .=,/') (4 #- 7,. 2;.'&<'8 #1 -5' #3,$'Ij -5' /2&&'.=218#1$ =#9'? #. 1,3'8 #j ) K ()%*! Tq ,..2/#,-'8 -2 -5' JF =2#1- ##. , .'- 24 =,#&. Tq = {{ki,#ki}, . . . , {km,#km}, {n− 1,#n−1}, {n,#n}}A ',/5 =,#&/2&&'.=218 -2 ,1 2;.'&<,-#21 24 #)B' ;'$#1 ;: /21.#8'&#1$ -5' 3,-/5'. ;'-7''1 -5' /%&&'1- #3,$' In ,18 -5'

=&'<#2%. #3,$' In−1) (4 #n ,18 #n−1 ,&' -72 3,-/5'8 =2#1-. ,18 -5'&' #. Tq .%/5,. {n− 1,#n−1} ∈ Tq A -5'1 -5' 1'7 2;.'&<,-#21 {n,#n} #. ,88'8 -2 Tq A 2-5'&7#.', 1'7 -&,/0 #. 42&3'8 ;: {n− 1,#n−1} ,18 {n,#n})>5'1 7' 1''8 -2 8'/#8' #4 -5' =&'<#2%. #3,$' In−1 #. , !"# $%&") "#&.-A #4 -5'

=&'<#2%. #3,$' #. -5' D&.- #3,$' 24 -5' .'6%'1/' -5'1 #- #. ,?7,:. , !"# $%&") L'/@218A 7' /23=%-' -72 <,?%'.) >5' <,?%'N2 #. -5' 1%3;'& 24 3,-/5'. ;'-7''1 In−1

,18 In) >5' <,?%' N3 #. -5' 1%3;'& 24 -&,/0. 7#-5 -5' ?,.- 2;.'&<,-#21 ,- n ,18/21-,#1#1$ ,- ?,.- -5&'' 2;.'&<,-#21.) M27A #4 N2 ≤ M2 2& N3 ≤ M3 -5'1 In−1 #., !"# $%&") >5' <,?%'.M2 ,18M3 ,&' %.'& 8'D1'8 -5&'.52?8.)(4 -5' =&'<#2%. #3,$' 7,.()* , 0': 4&,3'A -5'1 7' .%==&'.. ,?? -5' 2;.'&<,-#21.

,- n− 1 4&23 ,?? -5' /%&&'1-?: 3,#1-,#1'8 -&,/0.) >5#. 7,:A -5' =2#1-. ,&' /21-#$%@2%.?: -&,/0'8 ;'-7''1 -72 0': 4&,3'. Iki−1 ,18 Iki ) (4 -5'&' #. '12%$5 #3,$'.

Page 24: Геолокация беспилотного транспортного средства с использованием видео

Каждая 2Д точка в изображении: ● Определяет луч в 3Д пространстве ● Берущий начало в оптическом центре камеры

● Соответствующая 3Д точка находится где-то на этом луче

Соотношение 2Д - 3Д

!!!"#" $%&'( )*+,-* ./.',+ +01,&(23 !"

xw

yw

zw

c

c′

q

q′

xy

c′y

c′x

f

q′y

q′x

!"#$%& '''()* +",-./& 012&%1 2.3&/( # "4 5-& 012&%1 .65"01/ 0&,5&%7 #′ "4 "5 6%.8&095"., 5. 5-& "21#& 6/1,&( $ "4 1, 1%:"5%1%; 6.",5 ", <= 4610&7 $′ "4 "54 6%.8&05"., 5.5-& "21#& 6/1,&( f "4 5-& 012&%1 >.01/ /&,#5-(

.,& .> 5-& 012&%14 1,3 3"%&05&3 5. $( ?-& >$,05"., p−1 "4 01//&3 !"#$%&'()*#+,(- 1,35-& 5-"4 -1/>9/",& "4 01//&3 1 '". 144.0"15&3 5. $′(@&01$4& 5-& >$,05"., p >.% 1 0.26/&5& 2$/5"9012&%1 4;45&2 "4 0.26/&A7 "5 "4

:$"/3 $6 ",0%&2&,51//;( B& :&#", :; 3&C,",# 5-& &'()*#+,(- >.% 1 4"26/& &,-/(0*012&%1 6/10&3 15 5-& 0&,5&% .> 5-& D.%/3 ", 5-& 4$:4&05"., '''(E(E7 5-&, D& #%13$1//;133 0.26/&A"5; 5. C,1//; 3&C,& 5-& 0.26/&5& &'()*#+,(- ", 5-& 4$:4&05"., '''(E(F(

!!!"#"# 4(250&, )*+,-* &0)*',1 *' '5, ),2',- 06 '5, 70-&1

G5 C%457 D& D"// 0.,4"3&% 5-& 2.3&/ .> 5-& &,-/(0* 012&%1 D"5- 5-& (&+,#"0 #*-+*' /.9015&3 15 5-& 0&,5&% .> 5-& D.%/3 0..%3",15& 4;45&2 H4&& C#$%& '''()I( J. D& 3&C,&5-& D.%/3 0..%3",15& 4;45&2 :; 5-& 5%"6/&5 .> 3"%&05"., K&05.%4 {%w, &w, 'w} 0&,95&%&3 15 5-& 6.",5 # 01//&3 5-& (&+,#"0 #*-+*'( ?-& 3"451,0& :&5D&&, 5-& (&+,#"0 #*-+*'1,3 5-& ,1"2* &0"-* "4 01//&3 5-& 3(#"0 4,5+"-#* 1,3 &L$1/4 5. f ( ?-& ,1"2* &0"-* "4 5-&6/1,& ",4"3& D-"0- 5-& C,1/ 012&%1 "21#& "4 /.015&3( ?-"4 6/1,& -14 "5 .D, 0..%3"9,15& 4;45&2 3&C,&3 :; 1 61"% .> K&05.%4 {%, &} 0&,5&%&3 15 5-& 5.6 /&>5 0.%,&% .> 5-&"21#&( ?-& .%5-.#.,1/ 6%.8&05"., .> 5-& (&+,#"0 #*-+*' # 5. 5-& ,1"2* &0"-* "4 01//&3#′ 1,3 "4 /.015&3 15 (c′x, c′y)T ", 5-& 012&%1 "21#&(M"K&, 1 6.",5 $ ∈ R3 /.015&3 15 (qx, qy, qz)T D& D1,5 5. 0.26$5& 5-& 6.",5

$′ ∈ R2 /.015&3 15 (q′x, q′y)T 4$0- 14 $′ "4 5-& ",5&%4&05"., :&5D&&, 5-& 4&#2&,5 #$1,3 5-& ,1"2* &0"-*( ?-& 6.",5 $′ "4 3&C,&3 :; 5-& >.//.D",# &A6%&44".,*

⎣q′xq′y1

⎦ ≡ K

⎣qxqyqz

⎦ D-&%&K =

⎣fx s c′x0 fy c′y0 0 1

⎦ H'''(EI

Page 25: Геолокация беспилотного транспортного средства с использованием видео

● Мы знаем 3Д координаты некоторых точек в предыдущем кадре

● Мы знаем их 2Д координаты в текущем кадре

● 3 таких точки достаточно что-бы рассчитать позицию и ориентацию камеры

Обновление БД (фаза 1)!!!"#" $%&'( )*+,-* ./.',+ +01,&(23 !"

!!!"#"4 56, )*+,-* *' *2 *-7('-*-/ 80.('(02 (2 .8*),

!" #$% &'%()*+, ,+-,%.#)*",/ 0% $1(% 0')##%" #$% !"#$%&'(#) 2+".#)*" 2*' 1 .13%'1&41.%5 1# #$% .%"#%' *2 #$% 0*'45 .**'5)"1#% ,6,#%37 8$), 0*+45 -% 9"% )2 0% $1(%#* 0*': 0)#$ 1 ,)";4% )31;%7 !" &'1.#).% 0% ,$*+45 -% 1-4% #* 0')#% 1 &'*<%.#)*"2+".#)*" 2*' 1 3*()"; .13%'17=, )" #$% ,+-,%.#)*" !!!7>7>/ #$%0*'45 .**'5)"1#% ,6,#%3 ), 5%9"%5 -6 #$% #')&4%#

*2 (%.#*', {#w, $w, %w} 1"5 "*0 ), .%"#%'%5 1# ,*3% 1'-)#'1'6 &*)"# )" ,&1.% .144%5&w7 ?% 5%9"% #$% .13%'1 .**'5)"1#% ,6,#%3 -6 #$% #')&4%# *2 5)'%.#)*" (%.#*',{#c, $c, %c} .%"#%'%5 1# #$% .13%'1 #!'(&*+ &%)'%" &7 ?% 5%9"% #$% #'1",41#)*" -%@#0%%" & 1"5 &w -6 1 (%.#*' 'wc 1"5 #$% '*#1#)*" -%#0%%" {#c, $c, %c} 1"5 {#w, $w, %w}-6 1 '*#1#)*" 31#')A Rw

c 7 8$% &1)' {Rwc , 'wc } ), .144%5 #$% .13%'1 !#,%7

B)(%" 1" 1'-)#'1'6 (%.#*' (w ∈ R3 %A&'%,,%5 )" #$% 0*'45 .**'5)"1#% ,6,#%3/0% .144 (c ∈ R3 #$% ,13% (%.#*' %A&'%,,%5 )" #$% .13%'1 .**'5)"1#% ,6,#%37 !# .1"-% .*3&+#%5 -6 (c = RwT

c ((w − 'wc )7 ="5 )"(%',%46 (w = Rwc (c + 'wc 7 C,)"; #$),

%A&'%,,)*", 1"5 #$% .13%'1 !"#$%&'(#) %D+1#)*" E!!!7>F/ 0% .1" 0')#% #$% !"#$%&'(#)%D+1#)*" 2*' 1" 1'-)#'1'6 &41.%5 .13%'1 1, 2*44*0,G

⎣q′xq′y1

⎦ ≡ KRwTc [I3|− 'wc ]

⎢⎢⎣

qxqyqz1

⎥⎥⎦ E!!!7HF

8$% -*&./!"#$%&'(#) ), ,)3&46 .*3&+#%5 -6 1&&46)"; #$% %D+1#)*" E!!!7IF/ #$%" -63+4#)&46)"; #$% '%,+4#)"; 5)'%.#)*" -6 Rw

c 7 8$% .13%'1 '*#1#)*" ), %"*+;$ -%.1+,%#$% -*&./!"#$%&'(#) '%#+'", #$% 0("%&'(#) *2 #$% '16 1,,*.)1#%5 #* #$% &)A%4 E#$% '16*');)" ), 14016, #$% .13%'1 *&#).14 .%"#%' &F7

!!!"#"9 :(3(1 +%&'(;)*+,-* ./.',+ +01,&(23

J".% 0% $1(% 0')##%" #$% !"#$%&'(#) 1"5 #$% -*&./!"#$%&'(#) 2+".#)*", 2*' 1" 1'-)@#'1'6 &*,)#)*"%5 .13%'1/ 0% .1" 5%9"% #$%,% 2+".#)*", 2*' 1 .*3&4%#% ');)5 3+4#)@.13%'1 ,6,#%37 ?% -%;)" -6 1,,*.)1#)"; 1 .**'5)"1#% ,6,#%3 #* %1.$ )"5)()5+14.13%'17 8* 1 .13%'1 Cn 0% 1,,*.)1#% 1 .**'5)"1#% ,6,#%3 .%"#%'%5 1# #$% .13@%'1 #!'(&*+ &%)'%" 1"5 5%9"%5 -6 #$% #')&4%# {#Cn , $Cn , %Cn} E,%% 9;+'% !!!7K 2*'1" %A13&4%F7 ?% 14,* 5%9"% 112+'(/3*4%"* 56,'%4 ELMNF .**'5)"1#% ,6,#%3 .%"@#%'%5 1# #$% -1'6.%"#%' *2 #$% .13%'1, *&#).14 .%"#%', 1"5 5%9"%5 -6 #$% #')&4%#{#MCS , $MCS , %MCS}7 8$% #'1",2*'31#)*", -%#0%%" #$% .13%'1, .**'5)"1#% ,6,@#%3, 1"5 #$%3+4#)@.13%'1 ,6,#%3 .**'5)"1#% ,6,#%3 {RMCS

Cn, 'MCS

Cn} 1'% ,+&&*,%5

#* -% :"*0"7O1()"; 144 #$), )"2*'31#)*"/ 0% .1" "*0 5%9"% #$% -*&./!"#$%&'(#) 2+".#)*"7

P"*0)"; #$% &)A%4 .**'5)"1#%, (qdx, qdy)T / 0% .1" 9"5 #$% "+3-%' n *2 #$% .13%'1*2 #$% 3+4#)@.13%'1 ,6,#%3 )" 0$).$ )# 01, ,%%" E0% ,+&&*,% #$1# #$% .**'5)"1#%,*2 #$% #*& 4%2# .*'"%' *2 %1.$ .13%'1, )31;%, 1'% :"*0"F7 ?% .*3&+#% #$%" #$%2)0(,'#"'%0 &)A%4 .**'5)"1#%, +,)"; d()d)/ #$%" 0% .*3&+#% #$% 5)'%.#)*" *2 #$% '16)" #$% .13%'1 .**'5)"1#% ,6,#%3 +,)"; #$% %D+1#)*" E!!!7IF7 Q)"1446/ #$% 5)'%.#)*"*2 #$% '16 )" #$% 0*'45 .**'5)"1#% ,6,#%3 ), .*3&+#%5 -6 ,+..%,,)(%46 3+4#)&46)";#$% 5)'%.#)*" *2 #$% '16 )" #$% .13%'1 .**'5)"1#% ,6,#%3 -6 RMCS

Cn1"5 Rw

MCS 78$% !"#$%&'(#) 2+".#)*" ), 3*'% 5)R.+4# #* 0')#% -%.1+,% 0% "%%5 #* -% ,+'%

#$1# #$% KS &*)"# ), 1.#+1446 (),)-4% -6 *"% *2 #$% .13%'1, 1"5 #* 9"5 )" 0$).$ *2#$% .13%'1, *2 #$% 3+4#)@.13%'1 ,6,#%3 )# ), (),)-4%/ -+# 2*'#+"1#%46/ 0% "%(%' "%%5

Page 26: Геолокация беспилотного транспортного средства с использованием видео

Разница между теоретическим и реальным результатом

Вводим понятие ошибки

!" !!!" #$ %&'() *+&,- *&.%,)/)'&(

#

$′

$

%′q %q

αq

!"#$%& '''()* +,#$-.% &%%/%( # "0 12& 3.4&%. /51"3.- 3&,1&%( $ "0 ., .%6"1%.%7 895/",1( $′ "0 12& :&1&31&: "4.#& /; $ ", 12& 3.4&%. "4.#& 5-.,&( %q "0 12& :"%&31"/,/; 12& 0&#4&,1 #$( %′q "0 12& :"%&31"/, /; 12& 0&#4&,1 #$′( αq "0 12& .,#-& 6&1<&&,#$ .,: #$′(

=2& 0.4& &>$.1"/, 3., .-0/ 6& <%"11&, $0",# 12& </%-: 3//%:",.1& 0701&4( ';12& 3.4&%. !"#$ "0 {Rw

c , &wc } 12&, 12& &>$.1"/, 6&3/4&*

'q = π2(Rq′RwTc [I3|− &wc ]

!$1

") ?'''(@AB

!/% ., /60&%C.1"/, 1/ 6& 3/,0":&%&: 1%$&D 12& .,#$-.% &%%/% .00/3".1&: 1/ 12"0/60&%C.1"/, 4$01 6& -&00 12., . #"C&, 12%&02/-:( =2& $0$.- 12%&02/-: "0 ., .,#$-.%&%%/% 3/%%&05/,:",# 1/ . 02";1 /; 1</ 5"E&-0 ", 12& "4.#& 5-.,&( '1 "0 :&F,&: 67 12&3.4&%. %&'(%&#%) 5.%.4&1&%0( +, /60&%C.1"/, <"12 12& &%%/% -&00 12., 12& 12%&02/-:"0 3.--&: %&*%$( .,: ., /60&%C.1"/, <"12 12& &%%/% #%&.1&% 12., 12& 12%&02/-: "0 3.--&:"+'*%$(( + 895/",1 "0 3/,0":&%&: :$%",# 12& %&4.",",# /; 12& %&3/,01%$31"/, 5%/3&00/,-7 "; 12& .00/3".1&: '(,)- 3/,1.", .1 -.01 12%&& %&*%$(#(

!!!"0"1 2&3,4) 54)'./)'&(

=2& 4&12/:0 /; &01"4.1"/, /; 12& 3.4&%. !"#$ .,: 12& 5/0"1"/,0 /; 89 5/",10 &EG5-.",&: ", 12& 0$60&31"/, '''(H(8 .,: '''(H(A .%& <&-- 0$"1&: ;/% 12& 3.0& <2&, .--12& 4.132&0 6&1<&&, 3/,0&3$1"C& "4.#&0 .%& 1%$&D $,;/%1$,.1&-7D ", 12& %&.- </%-:12&7 .%& ,/1( I/%&/C&%D 12& ;.-0& 4.132&0 .%& >$"1& ,$4&%/$0( J/ <& ,&&: 0/4&0/%1 /; . 4&32.,"04 1/ &-"4",.1& 12& ;.-0& /60&%C.1"/,0 ?"+'*%$(#B :$%",# /$% %&3/,G01%$31"/, 5%/3&00( =2& 4&12/: <& $0& 1/ %/6$01-7 &01"4.1& 12& 89 3//%:",.1&0 /;. 5/",1 /% 3.4&%. !"#$ "0 3.--&: K.,:/4 J+45-& L/,0&,0$0 /% ./01/2 ;/% 02/%1(=2"0 1&32,">$& <.0 F%01-7 5%&0&,1&: ", M!"032-&%N@O(P& <"-- 6&#", 67 12& 3/45$1.1"/, /; 12& 89 3//%:",.1&0 /; . 5/",1 $ ?0&& 0$6G

0&31"/, '''(H(AB( J$55/0& 12.1 12& '(,)- Tq .00/3".1&: 1/ 12& 5/",1 $ 3/,1.",0 Nobs

/60&%C.1"/,0( Q,-7 1</ /60&%C.1"/,0 .%& ,&&:&: 1/ &01"4.1& . 5/",1 5/0"1"/,( =/

Page 27: Геолокация беспилотного транспортного средства с использованием видео

● Используем RANSAC: ○ Выбираем 3 случайных точки ○ Рассчитываем позицию камеры ○ Рассчитываем ошибку для всех 3Д точек

○ Их сумма в квадрате это очки этого результата

● Повторяем N раз ● Оставляем резултат с наименьшим количеством очков

Добавим надёжность

Page 28: Геолокация беспилотного транспортного средства с использованием видео

● Некоторые точки ещё не имеют 3Д координат

● Но видимы как минимум в 3 кадрах ● Мы используем 2 кадра что-бы рассчитать координаты

● Третий нужен что-бы проверить результат

Обновление БД (фаза 2)

!!!"#" !$%&'('$)*+ ,)&-%)-&'./&0(.10)20$ !!

"#I1

"$

I2

%#

%$

%

&# &$

!"#$%& '''()* +",,-& ./"01 1%"20#$-21"/0 3&14/,( "1 20, "2 2%& 14& 523&%26 /.1"52-5&01&%6( I1 20, I2 2%& 14& "32#& .-20&6 /7 14& 523&%26( % "6 14& /86&%9&, :; ./"01(&1 "6 14& ,"%&51"/0 /7 14& 6&#3&01 8&1<&&0 "1 20, 14& ,&1&51&, "32#& /7 % "0 I1(&2 "6 14& ,"%&51"/0 /7 14& 6&#3&01 8&1<&&0 "2 20, 14& ,&1&51&, "32#& /7 % "0 I2(

!!!"#"3 4*5.6*7'8 '&&0& /-$%)20$

=4& 5/3.$121"/06 /7 14& 6$86&51"/06 '''(>(: 20, '''(>(? </$-, 8& &0/$#4 "7 <&<&%& 6$%& 1421 14& 1%25@"0# .%/5&66 /7 14& >; 7&21$%&6 <26 .&%7&51A "(&( 2-- 14& /8B6&%921"/06 /7 14& 623& 1%25@ 2%& /7 14& 623& :; ./"01( C07/%1$021&-DA 14& .%/5&66,&65%"8&, "0 6$86&51"/06 '''(>(E 20, '''(>(> "6 0/1A 6/ <& 0&&, 2 <2D 1/ ,&1&51 14216/3& /86&%921"/06 /7 14& 1%25@ /% &9&0 14& &01"%& 1%25@ "6 &%%/0&/$6( =/ 254"&9&14"6 #/2- <& $6& 14& 623& 20#$-2% &%%/% 26 "0 F+/$%2#0/0GHI(=/ 8& 28-& 1/ %&5/061%$51 2 :; ./"01 J6&& 6$86&51"/0 '''(>(?K "0 2 %/8$61 320B

0&%A 21 -261 14%&& >; /86&%921"/06 /7 14& ./"01 2%& 0&&,&,( =4& L%61 1</ 2%& $6&,1/ &61"321& 14& :; ./6"1"/0 /7 14& ./"01 20, 2-- 14& /14&%6 2%& 0&&,&, 1/ 9&%"7D 14"6&61"321"/0( M&1 6&& 14& 6"1$21"/0 /0 14& L#$%& '''(N( O& 2%& "0 14& 523&%2 5//%,"B021& 6D61&3A % "6 14& :; ./6"1"/0 /7 14& /86&%9&, ./"01 20, " "6 14& 523&%2 !"#$%&'%()#(*( O& 52-- &q 14& ,"%&51"/0 /7 14& 42-7B-"0& "% J14& .%/P&51"/0 %2DK( '7 %′ "6 14&>; /86&%921"/0 /7 14& ./"01 % "0 14& 523&%2 "32#& .-20&A <& 52-- &′q 14& ,"%&51"/0/7 14& 42-7B-"0& "%′ J14& /86&%921"/0 %2DK( O& 520 ,&L0& 14& 20#$-2% &%%/% 26 14&20#-& αq 8&1<&&0 &q 20, &′q ('0 .%251"5&A "061&2, /7 5/3.$1"0# 14& 20#-& αq ,"%&51-DA <& .%&7&% 1/ 5/3.$1& 2

>; 9&51/% 'q 6$54 26*||'q||2 = tan2(αq) J'''(EEK

O& $6& 2 7$051"/0 π2 : R3 → R2 26 π2((x, y, z)T ) = (xz ,yz )

T 20, 2 %/121"/0 321%"QRq′ 6$54 26 Rq′&′q = (0, 0, 1)T (=4&0*

tan2(αq) = tan2(angle(&′q,&q))= tan2(angle(Rq′&′q, Rq′&q)) J'''(E>K= tan2(angle((0, 0, 1)T , Rq′&q))

R0, 8&52$6& ||π2((x, y, z)T )||2 = x2+y2

z2 = tan2(angle((0, 0, 1)T , (x, y, z)T ))14& 9&51/% 'q 520 8& <%"11&0*

'q = π2(Rq′&q) J'''(E:K

Page 29: Геолокация беспилотного транспортного средства с использованием видео

● Мы улучшаем результат оптимизируя систему с помощью метода Левенберга-Марквардта: ○ Мы улучшаем позицию 3 последних кадров

○ Мы улучшаем 3Д позицию точек видимых в 10 последних камерах

Обновление БД (фаза 3)

Page 30: Геолокация беспилотного транспортного средства с использованием видео

● Мы работаем с 3 первыми кадрами ● Если мы знаем соответствия между 3 точками в двух кадрах: ○ Мы можем рассчитать позиции камер ○ И 3Д координаты этих точек

● Мы рассчитываем координаты первой и третьей камеры

● Потом мы рассчитываем координаты второй

● Мы используем RANSAC для надёжности

Инициализация процесса

Page 31: Геолокация беспилотного транспортного средства с использованием видео

● Зрительная база данных: ○ Набор позиций камер (платформы) ○ Набор соответствующих изображений ○ Набор 3Д точек ○ И их координаты внутри изображений

● Карта: ● Система координат ● Траектория машины

Вывод фазы обучения

Page 32: Геолокация беспилотного транспортного средства с использованием видео

Вывод фазы обучения

!"!"

#$%&

'()&*

+,-.+/0

1

!"#$%&'()*+,&-./0"&1.2-,&34.$5.2/."6-7865-,&389&%8/.7&7/%.5$3&5:;

!"#84#.%"-,92%.9%&841.%4558-87&-"6$%&'()&</&%"9&6-843.6=#$%8-".6(

Page 33: Геолокация беспилотного транспортного средства с использованием видео

● Сначала потоки обрабатываются независимо

● Когда мы можем найти соответствия между двумя камерами: ○ Мы рассчитываем разницу в масштабе между двумя БД

○ Мы переводим их в одну систему координат

От одной к двум камерам

Page 34: Геолокация беспилотного транспортного средства с использованием видео

● Рассчитанная траектория отдаляется от реальности со временем: ○ Аккумуляция ошибок ○ Дрейф масштаба

● Результат: Два прохода по одному и тому-же месту не сойдутся на карте

Замыкание петель

Page 35: Геолокация беспилотного транспортного средства с использованием видео

● Находим кадры одного и того-же места ● Находим соответствия между ними: ○ Две соответствующие 2Д точки соответствуют одной 3Д точке

● Мы объединяем их дорожки ● И проводим глобальную оптимизацию

Замыкание петель

Page 36: Геолокация беспилотного транспортного средства с использованием видео

Позиционирование по видео:

Фаза позиционирования

Page 37: Геолокация беспилотного транспортного средства с использованием видео

● Мы хотим знать местоположение машины на карте: ○ Используя два изображения на карте ○ И визуальную БД ○ И предыдущую позицию (если есть)

Фаза позиционирования

Page 38: Геолокация беспилотного транспортного средства с использованием видео

● Выявление интересных точек в текущем кадре

● Ищем в базе набор изображений близких к текущей позиции ○ Или используем всё

● Ищем соответствия между точками в текущем кадре и в изображениях из базы

● Оставляем изображение с наибольшим количеством соответствий

Поиск эталонного изображения

Page 39: Геолокация беспилотного транспортного средства с использованием видео

● Каждая 2Д точка в эталоне соответствует 3Д точке в базе

● Значит мы имеем соответствия между 2Д точками в текущем изображении и 3Д точками из базы

● 3 3Д точек достаточно что-бы рассчитать позицию

● Добавляем RANSAC поверх этого ● И улучшаем резултат с помощью Левенберга-Марквардта

Расчёт текущей позиции

Page 40: Геолокация беспилотного транспортного средства с использованием видео

Заключение

Page 41: Геолокация беспилотного транспортного средства с использованием видео

● Точность: 2 см

Прототип был проектирован в реальных условиях: ● Во время «Challenge Bibendum» в Берлине: ○ 5 дней ○ Инциденты: 1 баг, 1 велосипедист, 1 интерблокировка машин

● В госпитале в Клермон-Ферране: ○ 6 месяцев

Результаты

Page 42: Геолокация беспилотного транспортного средства с использованием видео

EasyMile: http://easymile.com

Стартап EasyMile

Video: https://vimeo.com/137217228