Ліні́йне сте́ження — спосіб визначення зміщення об'єктів на кадрах з відеокамери.
Нехай ми маємо два суміжні кадри з відеокамери, які являють собою дві однакової ширини та висоти. Якщо в полі зору відеокамери були лише нерухомі об'єкти, то (з деякою точністю) ці дві бітмапи (картинки) будуть збігатися попіксельно.
По-піксельне порівняння картинок є дуже простим алгоритмом, проте воно лише може служити індикатором, чи є рухомі об'єкти в полі зору відеокамери, і не може відповісти на такі прості і важливі питання: як і куди об'єкти рухаються. Якщо ускладнити по-піксельне підхід, і порівнювати один піксель одного кадру з різними пікселями наступного кадру (з різними координатами), то теоретично ми можемо розпізнати зміщення об'єкта на цілу кількість пікселів. Проте якщо об'єкт змістився на дробову кількість пікселів, скажімо на пів-пікселя — то такий ускладнений підхід не спрацює зовсім.
Пояснення принципу на прикладі ідеалізованого зображення
Є другий, аналітичний підхід для обчислення зміщення об'єктів. Як модель, розглянемо спочатку бітмапу, в якій величина пікселя (інтенсивність ) лінійно наростає по координаті абсцис (вісь ):
Якщо на другій бітмапі це саме зображення буде зміщено на величину , то інтенсивність змінюється за законом:
Маючи ці дві картинки, ми легко можемо обчислити зміщення об'єкта:
навіть якщо це зміщення відбулося на дробову кількість пікселів.
Коефіцієнт в формулі (1) є проєкцією градієнта інтенсивності на вісь абсцис:
Очевидно, за формулою (3) ми можемо обчислити зміщення тільки вздовж градієнта , в ортогональному напрямку ми в принципі не можемо помітити переміщення нашого ідеалізованого об'єкта, оскільки при такому переміщенні бітмапа не змінюється. Така невизначеність існує при будь-якій орієнтації градієнта, оскільки ми маємо одне лінійне рівняння відносно двох невідомих переміщень і :
Підготовка рельного зображення для застосування лінійного стеження
Цей метод добре працює для ідеальної модельної картинки, але як бути з реальними зображеннями об'єктів з чіткими контурами? На думку приходить така ідея: ми можемо згладити оригінальне зображення (розфокусувати програмно, усереднюючи сусідні пікселі). В результаті ми одержимо досить гладку функцію інтенсивності, яку методами математичного аналізу можна розкладати в степеневий ряд:
У цій формулі для простоти запису суми, координати позначено через .
Розглянемо неперервну модель. Функція інтенсивності змінюється неперервно всередині протяжних об'єктів, і скачком змінюється (розриви першого роду) на межі двох об'єктів. Нас цікавить згладжування саме таких скачків. Сума по сусідніх пікселях у неперервній моделі стає інтегралом згортки:
Якщо функція згладжування матиме неперервні перші похідні, то і результат згладжування буде неперервною функцією і теж матиме перші похідні (скрізь, бо розривів ми позбулись):
Функція , окрім неперервності і диференційовності, повинна бути додатньою в деякому невеликому околі нуля, і дорівнювти нулю за межами цього околу (інакше ми при усередненні можемо домішати пікселі сторонніх об'єктів, і взагалі вийти за рамки картинки). Одним із кандидатів є наступна функція, яку образно можна назвати «біквадратним капелюхом»:
Вона додатня всередині еліпса з півосями , , і її перші похідні неперервно перетворюються в нуль на межі. Ясно, що при згладжуванні функцією (9) чіткої вертикальної межі ми одержимо приблизно лінійну ділянку на інтервалі, що є часткою півосі , на більших відстанях ми не можемо користуватися лінійним наближенням. Як показують обчислення, при похибка при обчисленні за формулою (3) буде близько 23%.
Оптимальне використання кольору
Нехай наша відеокамера видає кольорову RGB-картинку. Тоді зміщення записується трьома формулами (по одній на кожен колір):
Якщо розглядати згладжену межу між двома кольоровими об'єктами, то очевидно при зміщенні об'єктів усі три формули повинні дати один і той же результат . Проте було б нераціонально обчислювати усі три формули (10), проводячи усереднення (7) за кожним із трьох кольорів (марнування процесорного часу). Краще вибрати в ролі інтенсивності деяку лінійну комбінацію кольорів:
і вже для неї проводити всі усереднення та обчислення. Але як підібрати коефіцієнти найкращим чином? Нехай ми маємо протяжний кольоровий об'єкт, колір якого задається числами , на кольоровому ж фоні . Кольори можна розглядати як вектори в просторі RGB. Тоді очевидно, найбільш інформативною зміною кольору на межі об'єкта буде проєкція вектора різниці:
В аналітичній геометрії проєкція вектора на вектор буде відношенням скалярного добутку до довжини вектора :
Повертаючись до формули (11), можна за аналогією з формулою (13) обчислити коефіцієнти:
Використання ітерації для підвищення точності лінійного стеження
Розглянемо застосування ітерації на прикладі задачі бінокулярного зору. Нехай ми сфотографували один вертикальний об'єкт (наприклад стовп) двома відеокамерами, які рознесені на деяку відстань по горизонталі. Ясно, що зображення цього стовпа буде зміщене по горизонталі на деяке зміщення при порівнянні двох фотографій. Зміщення по вертикалі не очікується: , тому ця задача трохи простіша аніж стеження за рухомими об'єктами. Оскільки нам потрібний тільки градієнт по осі , то функція згладжування (9) має бути сплюснутою. Коефіцієнт повинен щонайменше вдвічі перевищувати сподіване зміщення по іксу: . На коефіцієнт не накладено ніяких математичних умов; але якщо ми візьмемо його поменшим, то зменшимо кількість обчислень, з другого боку, краще щоб деяке згладжування по осі відбувалося, щоб позбутися шороховатостей. Тому припустимо, що дорівнює малому цілому числу (в пікселях), наприклад .
Тепер ми використаємо формули (3), (4) підставляючи в них згладжену інтенсивність (бажано також з врахуванням кольору за формулою 11). Одержимо результат першої ітерації:
Тут ми явно вказали, в яких точках по іксу беруться інтенсивності. Точність цієї формули зменшується зі зростанням зміщення . Але у випадку великого , по модулю більшого одиниці, ми можемо провести ще одну ітерацію, змістивши другу картинку на ціле число пікселів що є округленням:
Маємо приблизно:
а тому наступна формула буде точнішою:
оскільки другий доданок в цій сумі є малою поправкою.
Інші методи стеження
Лінійне стеження дає змогу обчислити зміщення тільки в напрямку поперечному до контуру об'єкта. У випадку наявності в полі зору відеокамери компактного яскравого об'єкта на тьмяному фоні, можна застосувати інший, простіший і швидший алгоритм , який дає змогу обчислити обидві координати і яскравість.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Lini jne ste zhennya sposib viznachennya zmishennya ob yektiv na kadrah z videokameri Nehaj mi mayemo dva sumizhni kadri z videokameri yaki yavlyayut soboyu dvi odnakovoyi shirini ta visoti Yaksho v poli zoru videokameri buli lishe neruhomi ob yekti to z deyakoyu tochnistyu ci dvi bitmapi kartinki budut zbigatisya popikselno Po pikselne porivnyannya kartinok ye duzhe prostim algoritmom prote vono lishe mozhe sluzhiti indikatorom chi ye ruhomi ob yekti v poli zoru videokameri i ne mozhe vidpovisti na taki prosti i vazhlivi pitannya yak i kudi ob yekti ruhayutsya Yaksho uskladniti po pikselne pidhid i porivnyuvati odin piksel odnogo kadru z riznimi pikselyami nastupnogo kadru z riznimi koordinatami to teoretichno mi mozhemo rozpiznati zmishennya ob yekta na cilu kilkist pikseliv Prote yaksho ob yekt zmistivsya na drobovu kilkist pikseliv skazhimo na piv pikselya to takij uskladnenij pidhid ne spracyuye zovsim Poyasnennya principu na prikladi idealizovanogo zobrazhennyaYe drugij analitichnij pidhid dlya obchislennya zmishennya ob yektiv Yak model rozglyanemo spochatku bitmapu v yakij velichina pikselya intensivnist I displaystyle I linijno narostaye po koordinati abscis vis Ox displaystyle Ox 1 I ax b displaystyle 1 qquad I ax b Yaksho na drugij bitmapi ce same zobrazhennya bude zmisheno na velichinu Dx displaystyle Delta x to intensivnist I displaystyle hat I zminyuyetsya za zakonom 2 I a x Dx b ax b aDx displaystyle 2 qquad hat I a x Delta x b ax b a Delta x Mayuchi ci dvi kartinki mi legko mozhemo obchisliti zmishennya ob yekta 3 Dx I I a displaystyle 3 qquad Delta x I hat I over a navit yaksho ce zmishennya vidbulosya na drobovu kilkist pikseliv Koeficiyent a displaystyle a v formuli 1 ye proyekciyeyu gradiyenta intensivnosti na vis abscis 4 gradI x Ix I x a displaystyle 4 qquad left mbox grad I right x I x partial I over partial x a Ochevidno za formuloyu 3 mi mozhemo obchisliti zmishennya tilki vzdovzh gradiyenta I I x y displaystyle I I x y v ortogonalnomu napryamku mi v principi ne mozhemo pomititi peremishennya nashogo idealizovanogo ob yekta oskilki pri takomu peremishenni bitmapa ne zminyuyetsya Taka neviznachenist isnuye pri bud yakij oriyentaciyi gradiyenta oskilki mi mayemo odne linijne rivnyannya vidnosno dvoh nevidomih peremishen Dx displaystyle Delta x i Dy displaystyle Delta y 5 IxDx IyDy I I displaystyle 5 qquad I x Delta x I y Delta y I hat I Pidgotovka relnogo zobrazhennya dlya zastosuvannya linijnogo stezhennyaCej metod dobre pracyuye dlya idealnoyi modelnoyi kartinki ale yak buti z realnimi zobrazhennyami ob yektiv z chitkimi konturami Na dumku prihodit taka ideya mi mozhemo zgladiti originalne zobrazhennya rozfokusuvati programno userednyuyuchi susidni pikseli V rezultati mi oderzhimo dosit gladku funkciyu intensivnosti yaku metodami matematichnogo analizu mozhna rozkladati v stepenevij ryad 6 I x Dx I0 i 12aiDxi i j 12bijDxiDxj displaystyle 6 qquad I x Delta x I 0 sum i 1 2 a i Delta x i sum i j 1 2 b ij Delta x i Delta x j dots U cij formuli dlya prostoti zapisu sumi koordinati x y displaystyle x y poznacheno cherez x1 x x2 y displaystyle x 1 x x 2 y Rozglyanemo neperervnu model Funkciya intensivnosti I I x y displaystyle I I x y zminyuyetsya neperervno vseredini protyazhnih ob yektiv i skachkom zminyuyetsya rozrivi pershogo rodu na mezhi dvoh ob yektiv Nas cikavit zgladzhuvannya same takih skachkiv Suma po susidnih pikselyah u neperervnij modeli staye integralom zgortki 7 lt I gt ϕ x 3 y h I 3 h d3dh displaystyle 7 qquad lt I gt int phi x xi y eta I xi eta d xi d eta Yaksho funkciya zgladzhuvannya ϕ displaystyle phi matime neperervni pershi pohidni to i rezultat zgladzhuvannya lt I gt displaystyle lt I gt bude neperervnoyu funkciyeyu i tezh matime pershi pohidni skriz bo rozriviv mi pozbulis 8 lt I gt x ϕ x 3 y h xI 3 h d3dh displaystyle 8 qquad partial lt I gt over partial x int partial phi x xi y eta over partial x I xi eta d xi d eta Funkciya ϕ displaystyle phi okrim neperervnosti i diferencijovnosti povinna buti dodatnoyu v deyakomu nevelikomu okoli nulya i dorivnyuvti nulyu za mezhami cogo okolu inakshe mi pri userednenni mozhemo domishati pikseli storonnih ob yektiv i vzagali vijti za ramki kartinki Odnim iz kandidativ ye nastupna funkciya yaku obrazno mozhna nazvati bikvadratnim kapelyuhom 9 ϕ x y 1 x2a2 y2b2 2 if x2a2 y2b2 lt 10 otherwise displaystyle 9 qquad phi x y begin cases left 1 x 2 over a 2 y 2 over b 2 right 2 amp mbox if x 2 over a 2 y 2 over b 2 lt 1 0 amp mbox otherwise end cases Vona dodatnya vseredini elipsa z pivosyami a displaystyle a b displaystyle b i yiyi pershi pohidni neperervno peretvoryuyutsya v nul na mezhi Yasno sho pri zgladzhuvanni funkciyeyu 9 chitkoyi vertikalnoyi mezhi mi oderzhimo priblizno linijnu dilyanku na intervali sho ye chastkoyu pivosi a displaystyle a na bilshih vidstanyah mi ne mozhemo koristuvatisya linijnim nablizhennyam Yak pokazuyut obchislennya pri Dx a 2 displaystyle Delta x a 2 pohibka pri obchislenni za formuloyu 3 bude blizko 23 Optimalne vikoristannya koloruNehaj nasha videokamera vidaye kolorovu RGB kartinku Todi zmishennya Dx displaystyle Delta x zapisuyetsya troma formulami po odnij na kozhen kolir 10 RxDx DR GxDx DG BxDx DB displaystyle 10 qquad R x Delta x Delta R qquad G x Delta x Delta G qquad B x Delta x Delta B Yaksho rozglyadati zgladzhenu mezhu mizh dvoma kolorovimi ob yektami to ochevidno pri zmishenni ob yektiv usi tri formuli povinni dati odin i toj zhe rezultat Dx displaystyle Delta x Prote bulo b neracionalno obchislyuvati usi tri formuli 10 provodyachi userednennya 7 za kozhnim iz troh koloriv marnuvannya procesornogo chasu Krashe vibrati v roli intensivnosti deyaku linijnu kombinaciyu koloriv 11 I aR bG gB displaystyle 11 qquad I alpha R beta G gamma B i vzhe dlya neyi provoditi vsi userednennya ta obchislennya Ale yak pidibrati koeficiyenti a b g displaystyle alpha beta gamma najkrashim chinom Nehaj mi mayemo protyazhnij kolorovij ob yekt kolir yakogo zadayetsya chislami Color 1 R1 G1 B1 displaystyle overrightarrow Color 1 R 1 G 1 B 1 na kolorovomu zh foni Color 0 R0 G0 B0 displaystyle overrightarrow Color 0 R 0 G 0 B 0 Kolori mozhna rozglyadati yak vektori v prostori RGB Todi ochevidno najbilsh informativnoyu zminoyu koloru na mezhi ob yekta bude proyekciya vektora riznici 12 DC Color 1 Color 0 displaystyle 12 qquad overrightarrow DC overrightarrow Color 1 overrightarrow Color 0 V analitichnij geometriyi proyekciya vektora r displaystyle mathbf r na vektor a displaystyle mathbf a bude vidnoshennyam skalyarnogo dobutku do dovzhini vektora a displaystyle mathbf a 13 Pra r a r a displaystyle 13 qquad mbox Pr mathbf a mathbf r mathbf a cdot mathbf r over mathbf a Povertayuchis do formuli 11 mozhna za analogiyeyu z formuloyu 13 obchisliti koeficiyenti 14 a R1 R0 d displaystyle 14 qquad alpha R 1 R 0 d 14a b G1 G0 d displaystyle 14a qquad beta G 1 G 0 d 14b a B1 B0 d displaystyle 14b qquad alpha B 1 B 0 d 14d d R1 R0 2 G1 G0 2 B1 B0 2 displaystyle 14d qquad d sqrt R 1 R 0 2 G 1 G 0 2 B 1 B 0 2 Vikoristannya iteraciyi dlya pidvishennya tochnosti linijnogo stezhennyaRozglyanemo zastosuvannya iteraciyi na prikladi zadachi binokulyarnogo zoru Nehaj mi sfotografuvali odin vertikalnij ob yekt napriklad stovp dvoma videokamerami yaki rozneseni na deyaku vidstan po gorizontali Yasno sho zobrazhennya cogo stovpa bude zmishene po gorizontali na deyake zmishennya Dx displaystyle Delta x pri porivnyanni dvoh fotografij Zmishennya po vertikali ne ochikuyetsya Dy 0 displaystyle Delta y 0 tomu cya zadacha trohi prostisha anizh stezhennya za ruhomimi ob yektami Oskilki nam potribnij tilki gradiyent po osi Ox displaystyle Ox to funkciya zgladzhuvannya 9 maye buti splyusnutoyu Koeficiyent a displaystyle a povinen shonajmenshe vdvichi perevishuvati spodivane zmishennya po iksu a 2Dx displaystyle a geq 2 Delta x Na koeficiyent b displaystyle b ne nakladeno niyakih matematichnih umov ale yaksho mi vizmemo jogo pomenshim to zmenshimo kilkist obchislen z drugogo boku krashe shob deyake zgladzhuvannya po osi y displaystyle y vidbuvalosya shob pozbutisya shorohovatostej Tomu pripustimo sho b displaystyle b dorivnyuye malomu cilomu chislu v pikselyah napriklad b 1 displaystyle b 1 Teper mi vikoristayemo formuli 3 4 pidstavlyayuchi v nih zgladzhenu intensivnist bazhano takozh z vrahuvannyam koloru za formuloyu 11 Oderzhimo rezultat pershoyi iteraciyi 15 D1x I x I x gradI x displaystyle 15 qquad Delta 1 x I x hat I x over left mbox grad I right x Tut mi yavno vkazali v yakih tochkah po iksu berutsya intensivnosti Tochnist ciyeyi formuli zmenshuyetsya zi zrostannyam zmishennya D1x displaystyle Delta 1 x Ale u vipadku velikogo D1x displaystyle Delta 1 x po modulyu bilshogo odinici mi mozhemo provesti she odnu iteraciyu zmistivshi drugu kartinku I x displaystyle hat I x na cile chislo pikseliv sho ye okruglennyam 16 n round D1x displaystyle 16 qquad n mbox round Delta 1 x Mayemo priblizno 17 I x n I x gradI xn displaystyle 17 qquad hat I x n approx hat I x mbox grad I x n a tomu nastupna formula bude tochnishoyu 18 D2x n I x I x n gradI x displaystyle 18 qquad Delta 2 x n I x hat I x n over left mbox grad I right x oskilki drugij dodanok v cij sumi ye maloyu popravkoyu Inshi metodi stezhennyaLinijne stezhennya daye zmogu obchisliti zmishennya tilki v napryamku poperechnomu do konturu ob yekta U vipadku nayavnosti v poli zoru videokameri kompaktnogo yaskravogo ob yekta na tmyanomu foni mozhna zastosuvati inshij prostishij i shvidshij algoritm yakij daye zmogu obchisliti obidvi koordinati i yaskravist