Content Aware Image Resizing

Podobné dokumenty
12. Lineární programování

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

7. přednáška Systémová analýza a modelování. Přiřazovací problém

Popisná statistika. Komentované řešení pomocí MS Excel

CZ.1.07/1.5.00/ Zefektivnění výuky prostřednictvím ICT technologií III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

INFORMATIKA EXCEL 2007

Obecná úloha lineárního programování

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

( ) ( ) Obsahy. Předpoklady:

7 Kardinální informace o kritériích (část 1)

Algoritmizace prostorových úloh

1. Základní pojmy, používané v tomto manuálu. 2. Stránky

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Výsledný graf ukazuje následující obrázek.

Slučování tabulek. Sloučení dvou tabulek

VY_32_INOVACE_In 6.,7.10. Tvorba tabulky

Dynamic programming. Historie. Dynamické programování je obsaženo v těchto programech: Příklad: chceme optimálně přiložit dvě sekvence

Pracovat budeme se sestavou Finanční tok. S ostatními se pracuje obdobně. Objeví se předdefinovaná sestava. Obrázek 1

Hlavní panely, spouštění panelu, tlačítko start

4EK213 Lineární modely. 10. Celočíselné programování

Microsoft Office. Excel vyhledávací funkce

Hledání mocnin a odmocnin v tabulkách

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Teorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

GEODETICKÉ VÝPOČTY I.

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_05_IVT_MSOFFICE_03_Excel

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod

Tvorba webových stránek na google Sites (1.)

Vytváření grafů v aplikaci Helios Red

Dynamické datové struktury IV.

scale n_width width center scale left center range right center range value weight_sum left right weight value weight value weight_sum weight pixel

Operační výzkum. Síťová analýza. Metoda CPM.

Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě

MS Word 2007 Porovnání dokumentů a kombinování revizí

Manuál k editoru TinyMCE

Binární vyhledávací stromy II

Dokument a jeho části oddíly, záhlaví, zápatí

5 Orientované grafy, Toky v sítích

Protokol č. 8. Stanovení zásoby relaskopickou metodou

ANTAGONISTICKE HRY 172

Základní škola Hluk výukové texty MS Word 2007

LED Display Eyetv (počítačový panel)

Programujeme v softwaru Statistica - příklady

5. Dynamické programování

Binární vyhledávací stromy pokročilé partie

Základy algoritmizace. Pattern matching

Grafové algoritmy. Programovací techniky

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Elektronické učebnice popis systému, základních funkcí a jejich cena

Grafové algoritmy. Programovací techniky

MS Excel 2007 Kontingenční tabulky

Návrh Designu: Radek Mařík

Jaroslav Tuma. 8. února 2010

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Přiřazovací problém. Přednáška č. 7

Lineární programování

Parametrické programování

Nápověda ke cvičení 5

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

6. blok část C Množinové operátory

Dynamické programování

Kombinatorická minimalizace

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Grafická prezentace projektu GNUškola

11. Soustava lineárních rovnic - adiční metoda

Manuální kroková regrese Newsletter Statistica ACADEMY

13. Lineární programování

PROBLÉM ČTYŘ BAREV. Lze obarvit jakoukoliv mapu v rovině čtyřmi barvami tak, aby žádné dvě sousedící oblasti neměly stejnou barvu?

Nové přístupy tvorby web site. Doc. Ing. Zdeněk Havlíček, CSc. KIT PEF CZU - 13/11/2001

ZKUŠEBNÍ PROTOKOLY. B1M15PPE / část elektrické stroje cvičení 1

Betonové konstrukce (S) Přednáška 3

Vítá vás Corel PHOTO-PAINT, výkonná aplikace pro úpravu rastrových obrázků, která umožňuje retušovat fotografie a vytvářet originální grafiku.

Případová studie: Zvýšení přirozené návštěvnosti ivt.cz. Případová studie: Zvýšení přirozené návštěvnosti ivt.

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

František Hudek. leden Informační a komunikační technologie ZONER Práce s textem. Tvorba a editace odstavcového a uměleckého textu.

Operační výzkum. Přiřazovací problém.

Dynamické programování

Binární soubory (datové, typované)

Obr. P1.1 Zadání úlohy v MS Excel

12. Globální metody MI-PAA

GYMNÁZIUM, VLAŠIM, TYLOVA

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

4EK213 LINEÁRNÍ MODELY

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Úvod do problematiky ÚPRAVY TABULKY

Paralelní grafové algoritmy

bfs, dfs, fronta, zásobník, prioritní fronta, halda

1. Aplikační a systémové opravy Odkaz na Nahlížení do KN (Info ČÚZK) Tisk mapy... 4

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

OPUS vzdělanostní síť k výrobním technologiím. Vyhledávání v databázi Web of Science (WoS)

Prohledávání do šířky = algoritmus vlny

IB112 Základy matematiky

Popis postupu při zpracování atletických závodů dle programu ATLETICKÁ KANCELÁŘ ( Manuál II.část )

Karnaughovy mapy. Pravdivostní tabulka pro tři vstupní proměnné by mohla vypadat například takto:

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel II Anotace:

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

Transkript:

Content Aware Image Resizing (dle článku Shaie Avidana a Ariela Shamira) Václav Vlček (1. roč. NMgr., Teoretická informatika) 6.12.2007 1

O co jde? Změna rozměrů obrázku se zachováním významu Klasická změna rozměrů Změna popisovanou technikou 2

K čemu je to dobré? Různé velikosti displejů (počítač vs. PDA) Nutnost přizpůsobovat obrázky (např. webové stránky pro různé platformy, velikosti okna prohlížeče): Náhledy v programech na správu obrázků Uvedené techniky lze použít i pro retuš 3

Základní myšlenka Začneme se zkrácením obrazku o jeden pixel Odebereme jeden pixel v každém řádku, ale který? Pixely s co nejmenší změnou vůči sousedům? Ve výsledném obrázku se mohou rozpadat hrany 4

Základní myšlenka (pokračování) Sloupec pixelů s celkově nejmenší změnou? Vede k podobným deformacím, jako klasické zmenšení, dokonce vypadá hůře (hrany). 8 souvislá spojnice shora dolů! Souvislá cesta která z obrázku odebere nejméně informace 5

Formalismus a terminologie Označme I: {1,..., n}x{1,..., m} C obrázek velikosti n x m Potřebujeme porovnávat kolik informace z obrázku ubylo Zavedeme si proto funkci e: I R (energy function), která změří množství informace (energie) v obrázku Zde budeme uvažovat pouze následující variantu: e1 I x, y = I x, y I x, y x y (rozdíl od sousedů vlevo a vpravo) (rozdíl od sousedů nahoře a dole) 8-souvislé cestě v obrázku shora dolů budeme říkat svislý šev (seam) m s x={siy }i=1 ={ x i,i }mi=1 tak, že j x j x j 1 1 (8-souvislost) x: {1,, m} {1,..., n} (na každém řádku vybereme pixel) 6

Formalismus a terminologie (pokr.) K tomu, aby v obrázku zůstalo co nejvíce informace, musí jí odstraňovaný šev obsahovat co nejméně (mít co nejnižší energii) Energie švu (součet energií jeho pixelů) m E s =E I S = e I si i=1 Chceme šev s minimální energií s* m s =min s E s =min s e I si i=1 7

Jak hledat švy s minimální energií Pomocí dynamického programování M i, j =e i, j min M i 1, j 1, M i 1, j, M i 1, j 1 e(i, j)...energie pixelu M(i, j)...váha minimální 8-souvislé cesty shora do pixelu (i, j) Příklad: Váhy pixelů e 3 1 2 1 2 3 1 4 1 2 1 2 M(i, 0) = e(i, 0) 3 1 2 1 3 1 2 1 3 4 2 5 3 1 2 1 3 4 2 5 4 4 3 4 3 1 2 1 3 4 2 5 4 4 3 4 Minimum 8

Zúžení o pixel (shrnutí) 1.Najdi šev s nejměnší energií 2.Odeber jemu odpovídající pixely z obrázku a spoj obě části k sobě 3 1 2 1 2 3 1 4 1 2 1 2 3 2 1 2 3 4 1 2 2 3 2 1 2 3 4 1 2 2 9

Zobecňování Zmenšení o pixel v obou směrech Zmenšení o více pixelů Odebereme svislý i vodorovný šev. Ale v jakém pořadí? V tom, které zachová více informace. Nejlepší pořadí lze najít pomocí dynam. progr. (další slajd) Lze kombinovat tento přístup s běžným zmenšováním (zmenšit, aby souhlasila jedna hrana a pak odebírat švy) Vhodný postup závisí na požadovaném výsledku 10

Optimální pořadí odebírání Může být nalezeno opět pomocí technik dynamického programování Vytváříme tabulku energií T(s, v), která bude udávat s jakou nejmenší ztrátou energie lze odebrat s svislých a v vodorovných švů (tj. zúžit obrázek o s a snížit o v) T(0, 0) = 0 neodebrali jsme nic, žádná energie se neztratí x T(s, v) = min{ T(s 1, v) + E(s (I )), Odebrání svislého (n (s 1))x(m v) T(s, v 1) + E(sy(I(n s)x(m (v 1))))} Odebrání vodorovného Nejmenší možná ztracená energie obrázku, ze kterého bylo odebráno o šev méně Energie nejmenšího švu z většího obrázku Při výpočtu si pamatujeme, které minimum se použilo a kterému švu odpovídalo (svislý vs. vodorovný). Když se dopočátáme k požadovanému zúžení, zpětným postupem vyčteme optim. pořadí. 11

Zvětšování obrázku Postupujeme pozpátku Najdeme šev s nejmenší energií, v tomto místě obrázek roztrhneme a vložíme jeden pixel (spočítaný z pixelu vlevo a vpravo) přidáme nejméně informace Pokud bychom obrázek zase zmenšovali, bude to pravděpodobně právě přidaný, který bude odstraněn. Není to však zaručeno. Pro zvětšení o více pixelů si nejdříve spočteme, které švy bychom odebrali a v takovém pořadí, v jakém bychom je odebírali je zdvojujeme (případně cyklicky). Musíme si je předpočítat předem. Jinak by se stále přidávalo do stejného místa (právě přidaný má nejmenší energii). Pokud chceme obrázek zvětšovat o mnoho, je pro zachování obsahu dobré postupovat v krocích (vždy spočítat švy pro zvětšení např. o 25 %, zvětšit a znovu spočítat), jinak se algoritmus chová jako klasické natažení. 12

Předem neurčený rozměr Není těžké si uvědomit, že šev lze nalézt v lineárním čase vzhledem k velikosti obrázku Při hledání minimálního švu se v každém pixelu porovnají hodnoty v nejvýše třech nad ním Celkem je tedy potřeba pro každý odebíraný šev vykonat lineární práci To může být problém, pokud bychom chtěli algoritmus použít například na serveru Pro každý pixel předem spočítáme, v kolikátém kroku by byl odebrán Při zmenšování na požadovanou velikost odebereme všechny (až do čísla odpovídajícímu rozdílu velikostí) najednou Uvedená metoda však nefunguje pokud chceme provádět změnu v obou rozměrech 13

Co když metoda selhává? Lze použít jinou míru informace obsažené v obrázku Použít umělou inteligenci (metody analýzy obrazu) Některé možnosti jsou uvedeny a porovnány v článku Vyhledávání objektů (obličejů, ) Použít přirozenou inteligenci Dát uživateli možnost zvýšit nebo snížit energetickou funkci v některých oblastech obrázku To lze používat k retuši (snížíme energii těm pixelům, které chceme odstranit a obrázek zmenšíme) 14

Co lze udělat jinak? Jiná energetická funkce (funkce pro porovnávání změn) Místo 8-souvilslosti použít zobecnění s x={s yj }mj=1={ x i,i }mj=1 tak, že j x j x j 1 k Pro k = 0 je to svislá čára Pro k = 1 je to 8-souvislost Pro k > 1 je šev nesouvislý 15

Literatura a odkazy Původní článek Shaie Avidana a Ariela Shamira Seam Carving for Content Aware Image Resizing (http://www.faculty.idc.ac.il/arik/imret.pdf) Implementace ve Flashi (http://rsizr.com/) Článek na Grafice online nevysvětluje princip, ale lze v něm nalézt odkazy na další Flashové implementace a pluginy pro Adobe Photoshop, GIMP, (http://www.grafika.cz/art/sw/seamcarving.html) 16