Portál AbcLinuxu, 3. května 2025 15:46
Dneska si ukážeme, jak jde vizuálně analyzovat filmový materiál - v našem případě půjde o celou sérii původního Neon Genesis Evangelionu od magora, který si říká Hideaki Anno. K analýze postupně použijeme již dříve zmíněný shotdetect, ImageJ, ImagePlot a Calc
Co bylo našim cílem? VŠECKO! Hlavně se tedy naučit s programem ImagePlot, a vyzkoušet si co umí a kam až jde ohnout. Základem našeho bádání zkoumání je myšlenka, že pokud projedeme strojově film či seriál, měly by se v něm objevit určité paterny, které budou jednak zajímavé a jednak nám možná i o daném díle něco řeknou. Pro analýzu byl použit program ImageJ, který u RGB obrázků v základním nastavení dělá především to, že je převede do stupně šedi 0-255 a dále na nich počítá různé analýzy (mean, stdDev, median, skew...). Cíl je tedy spočítat si o daných střizích co nejvíce informací a následně je vykreslit tak, aby jsme z výsledku byli schopni něco vyčíst. Ha, ha.
Postupoval jsem tedy tak, že jsem si pomocí shotdetectu vygeneroval jednotlivé začáteční scény jednotlivých epizod do samostatných adresářů, aby se nám s nimi lépe pracovalo. Dílů má pouze 26, takže si stačí napsat skriptík, který spustí tento příkaz:
shotdetect -i eva.01.mkv -o 01/ -s 60 -w -v -f -r
Co vznikne je 26 adresářu pojmenovaných od 01 do 26, které obsahují soubory s názvy in_0001.jpg. Dalším krokem tedy bylo pomocí programu Gwenview hromadné přejmenování na název, který nám později umožní rozpoznat kapitolu - já jsem zvolil formát <číslo_epizody><číslo_záběru>.jpg, takže na výstupu jsem dostal jeden adresář, ve kterém už byly všechny epizody ze všech dílů a hezky pojmenované.
Dostáváme se k nejdůležitější části - počítání hodnot. Pomocí příkazu "imagej -x 4000" spustíme ImageJ v módu, kdy nám na 64bit systému dovolí použít celé 4GB RAM!!!, a už jdeme do menu Analyze > Set measurements, kde se nachází nastavení měření a kde zaškrtneme všechno co vidíme, aby jsme to případně nemuseli počítat znovu. Následuje už samotné měření, které spustíme z menu Proces > Batch > Measure. V této chvíli mu již stačí jen předhodit adresář se všemi fotkami a můžete jít na kávu. V našem případě se jedná o 25613 obrázků v rozlišení 704x480px. Na konci nás čeká tabulka s naměřenými daty, kterou však musíme uložit do xls. Obsahuje pak sloupce jako Label, kde se schovává název vstupního obrázku, a dále už všechna měření Area, Mean, StdDev, Mode, Min, Max... My si ji otevřeme a dopočítáme si číslo epizody, pořadí záběru a pak doděláme jeden ošklivý hack, který nám umožní trochu lépe zobrazit data na ose y - a tedy že medián, který chceme zobrazit na ose y a má hodnoty od 0-255 vydělíme číslem 255, následně ještě zmenšíme na polovinu a přičteme k číslu epizody, tím nám vznikne něco, co budeme moci nanášet na osu y a trochu nám to zpřehlední výstupní obrázek.
Jako první jsem zkusil na osu x nanést číslo epizody a na osu y medián světlosti. Vzniklo něco co sice vypadá hezky, ale výpovědní hodnotu to má malou, snad jen že všechny epizody jsou si v tomto směru dá se říci velmi podobné:
V dalším kroku mě napadlo zanést do výsledku počet střihů v epizodě a zachovat pořadí jak jdou po sobě, osa x je tedy pořadí střihu, osa y pak číslo epizody. Výsledek je sice pěkný, ale naprosto jsme v něm ztratili jakékoliv počítané hodnoty.
A v této fázi použijeme ošklivý hack o kterém jsem mluvil na začátku. Do osy y jsme si dopočítali normalizovanou hodnotu mediánu, a tak místo aby jsme měli epizodu 1, má obrázek hodnu například 1.83. Vznikne tak celkem zajímavý mišmaš, který je však velmi nepřehledný:
A tady už vás přestanu napínat a ukážu výsledek, který vznikl tak, že jsem před přičtením mediánu k číslu epizody číslo ještě vydělil dvěma:
Kdo došel až sem, dostane tradiční kostičku! A teď co nám to vůbec vzniklo? a) hezký obrázek b) ? c) profit! Především nám vznikl pocit, že méně je někdy více a i když tato forma analýzy vypadá efektně, kdyby jsme počítali pouze s daty spočtenými s pomocí ImageJ a vykreslovali je do normálních grafů, vyčíst by se z nich dalo pravděpodobně více. Co je na posledním obrázku hezky vidět je naprosto specifická 26. epizoda (úplně nahoře), která obsahuje sled naprosto stejných záběru pouze s jinými obličeji a pak ještě 20. epizoda, která má opravdu zvláštní pruh světle růžových záběrů. Toto bylo moje první hraní si s ImageJ a ImagePlot, myslím že účel to splnilo, zase umím o pár nových analytických nástrojů více, vím jaké jsou jejich omezení, jaké jsou možnosti, a mám tisíc nápadů jak to všechno vylepšit! Teď jen sehnat pořádný výpočetní cluster a dostatek dat == POUŽÍVEJTE FACEBOOK LIDI, JE ÚPLNĚ SUPER!!! Zatím zdar...
Tiskni
Sdílej:
POUŽÍVEJTE FACEBOOK LIDI, JE ÚPLNĚ SUPER!!Přečti si podmínky FB a pak něco doporučuj, pokud tam něco nahraješ tak FB je vlastník, ne ty. Dále pokud chceš to co se tam objeví, aby uvízlo v pavučině 3-písmenkových informací tak tam piš vše. LIDI nebuďte blbí a nepoužívejte FACEBOOK.
Přečti si podmínky FB a pak něco doporučujAno, tohle je vyložené vykání. Osobně, když mi někdo tyká, oplácím mu stejně...
dostatek dat == POUŽÍVEJTE FACEBOOK LIDI, JE ÚPLNĚ SUPER!!!Mne to príde ako dobrá irónia.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.