‹ paviānu štelles

Video attēla stabilizācija

Jul 17, 2007

Pa galvu ik pa laikam rosās doma nofilmēt vēl kādu riteņbraucienu. Varbūt, piemēram, tādu pavisam garu un rādīt paātrinātu. Vai īsu sprintiņu cauri vecrīgai. Vai līkumošanu pa joslām sastrēgumos.

Viena lieta, kas iepriekšējās filmiņās nepatika, ir raustīšanās un tricināšanās. Filmiņā dikti labi redzams, kā ritenis pārbrauc katrai bedrītei un katra nelielā stūres pagrozīšana.

Vakardien iešāvās prātā, un tagad divus vakarus esmu padarbojies ar video attēla stabilizēšanu. Ideja – ņemt video pa kadriem, salīdzināt blakus esošos kadrus, aprēķināt starp tiem nobīdes un tās kompensēt.

Veicamie soļi:

  • iegūt attēlu kaudzi no video faila. Izmantoju ImageMagick, lielākiem video gabaliņiem vajadzēs lietot ffmpeg vai mencoder. Komanda bija pavisam vienkārša – “convert video.avi x.jpg“ – tā saražo x-1.jpg, x-2.jpg, x-3.jpg…
  • noteikt nobīdi starp diviem blakusesošiem attēliem – autopano-sift. Tas ir īstenībā paredzēts panorāmu taisīšanai, māk atrast kopīgos punktus bildēs. Ņemu ik pa divām bildēm, atrodu tajās kopīgos punktus, sarēķinu vidējo un tā ir mana nobīde. Šādi kopīgie punkti izskatās, ja tos ielādē iekš hugin:
  • zinot nobīdes starp blakusesošām bildēm, jāizdomā, kā katru nākamo bildi jānobīda. To man dara pašrakstīts python skriptiņš ar pašizdomātu algoritmu, ko gan vēl var krietni uzlabot, lai tas labāk norītu raustīšanās
  • ImageMagick katru bildi pabīda tā, kā izrēķinājis skriptiņš
  • ffmpeg no iegūto bilžu kaudzes salīmē atpakaļ kopā filmiņu

Uzskatāmībai noliku līdzās sākotnējo un stabilizēto:

saite, ja video nerādās


Tajās pagalma bedrēs var ratu nolauzt, šis ir diezgan ekstrēms piemērs. Lai stabilizētajā nerēgotos melnās malas, var darīties divējādi. Viens, var izgriezt un rādīt tikai viduci, lai melnās malas ir ārpus kadra, bet tad arī skata leņķis būs mazāks. Otrs, var pieregulēt vienu parametru maģiskajā algoritmā, kas padarīs filmiņu raustīgāku, bet melnās malas – mazākas.

Satriecoši patīkami konstruēt un eksperimentēt atvērtā koda pasaulē, kurā ir pieejami dažnedažādi lego klucīši, atliek tikai līmēt kopā.

Tagad vēl jāizdomā, kur tā smuki pabraukāties, un kādu stiprinājumu uztaisīt pie riteņa lai tas arī drusku amortizē (būtu es pavisam uz izgudrošanu kārs, varētu taisīt ar žiroskopu kā C’etait un Rendezvous). Tad būtu n-kārša stabilizācija – priekšējā rata amortizators, stiprinājums, fotoaparāta IS (nezinu gan vai tas video režīmā ko dod), un šis pēdējais aprakstītais.

PS. Drusku garāka filmiņa iekš Youtube