INTERAKTÍV TARTALOM ALAPÚ IRODALOMKUTATÁS KERESÉS, SKICC ALAPJÁN KÉSZÍTETTE: POZSEGOVICS PÉTER SZÁNTÓ BALÁZS ÓBUDAI EGYETEM
|
|
- Bence Szőke
- 9 évvel ezelőtt
- Látták:
Átírás
1 INTERAKTÍV TARTALOM ALAPÚ KERESÉS, SKICC ALAPJÁN IRODALOMKUTATÁS KÉSZÍTETTE: POZSEGOVICS PÉTER SZÁNTÓ BALÁZS ÓBUDAI EGYETEM NEUMANN JÁNOS INFORMATIKAI KAR INFORMATIKAI AUTOMATIZÁLT RENDSZEREK 2010
2 1 Tartalomjegyzék 1 TARTALOMJEGYZÉK ABSZTRAKT BEVEZETÉS ALAPFOGALMAK KÉPFELDOLGOZÁS KÉPEK SZEGMENTÁLÁSA TARTALOM LEÍRÁSA A JELLEMZŐ VEKTOR AZ ÉLHISZTOGRAM LEÍRÓ A SIFT LEÍRÓ TALÁLATOK RENDSZEREZÉSE SZÍNHISZTOGRAM ALAPJÁN OSZTÁLYOZÁS KIHÍVÁSAI AZ SVM OSZTÁLYOZÓ ARCHITEKTÚRÁLIS KÉRDÉSEK SAJÁT RENDSZERÜNK HASONLÓ RENDSZEREK PHOTOSKETCH PHOTOBOOK VIRAGE ENGINE OF THE ALTAVISTA PICTURE FINDER RENDSZERTERV ÉRTÉKELÉS ÖSSZEFOGLALÁS IRODALOMJEGYZÉK:
3 2 Absztrakt A tartalom alapú keresés, nagyon gyorsan, sőt hirtelen jelent meg a tudományos világban. Ezt a fejlődést lehetővé tette/teszi az internet elérhetősége, az egyre olcsóbb háttértárolók, és legfőképp a felhasználók igénye az ilyen jellegű rendszerekre. A téma egy részterülete a skicc alapú tartalom visszakeresés. Jelen dokumentum célja a skicc alapú tartalom keresés felépítésének, módszereinek elemzése, összehasonlítása, illetve általános tartalom alapú ismeretek bemutatása. Kulcsszavak: content based image retrieval, sketch based image retrieval, shape matching, image databases, image indexing, similarity retrieval, spatial query, edge histogram descriptor 3
4 3 Bevezetés Az idők folyamán bebizonyosodott, hogy a csoportosítás a fejlődés egyik kulcsa. Amikor a feldolgozandó tér már meghaladta az emberi felfogás teljesítőképességét, elkezdtek gépeket építeni, hogy gyorsítsák a feldolgozást. Évtizedek óta a szöveges információ tartalmat kategorizálják, és elérhetővé teszik könyvtárak formájában, ahol dinamikusan tudunk keresni könyvek, folyóiratok és számos nem csak szöveges alapú információ után. Azonban, ha a képekre kerül a sor, fel kell adni a rugalmas, dinamikus keresést. Jelenleg sajnos nincsenek széles körben elérhető képi tartalom alapú kereső rendszerek. Miért lehet ez? Az egyik ok lehet talán, hogy a szöveg, egy közvetlen ember általi absztrakció. Könnyebb egyedi, de mégis jól azonosítható tulajdonságokkal felruházni egy szöveget. A képeknél pont az óriási információ tartalom és ennek a feldolgozása okozza a problémát. A feldolgozandó tér óriási. Érezzük, hogy szükség van olyan közösségekre, csoportokra, befektetőkre, melyek ambiciózus munkája által áttörést lehetne elérni a témában. Jó példa erre a Google, vagy a Yahoo sikersztorija. A tartalom alapú kereső rendszerekkel kapcsolatos kutatások száma az utóbbi évtizedben jelentősen nőtt, ahogy az 1. ábra is mutatja. Számos innovatív publikáció, megvalósított rendszer látott napvilágot, azonban az áttörés még várat magára, algoritmikus mód még nem létezik ennek a problémának a feloldására. Azonban az általános alapelvek meglétével, ma már a kutatás a mélyebb problématerületek felé evez, mely a gépi látás, az információ visszakeresés és az adatbázis elméletből születtek. Ezen terület talán legfőbb mozgató ereje az internet lehet. Az elérhető képek száma drámai növekedést mutat, mondhatjuk azt, hogy exponenciális ütemben nő, amely megköveteli a hatékony indexelő, és kereső eljárások használatát a digitális archívumoknál. Mindemellett a háttértárolók mérete, és az adatok feldolgozási sebessége egyre nő, az informatikai rendszerek ára egyre csökken. Ez a két fő mozgató erő viheti előre ezt a még gyerek cipőben járó kutatási területet. 1. ábra - Az 1995 és 2004 között a Goggle tudós oldalán indexelt publikációk számának változása. A publikációk száma normalizált. A kékkel jelölt függvény fejezi ki a képi visszakeresés címszóval indexelt publikációkat, pirossal jelölt függvény pedig a jellemző vektor címszóval megjelölt publikációkat. 4
5 4 Alapfogalmak Először is fontos felállítani egy fogalomrendszert, egy csoportosítást, amely rendszerünket valamilyen kategóriába sorolja. Lényegében ez nem képzi szerves részét a rendszerének, de nagyon fontos megemlíteni, mivel a különféle kategóriák, különféle módszereket kívánnak meg. A feladat pontos kategorizálása alapja a sikeres megvalósításnak. A szakirodalom [1] a felhasználók alapján a tartalom alapú keresési rendszereket három jól azonosítható csoportba sorolja be. Persze ez a három csoportosítás nem kőbevésett szabály, lehet más kritériumok alapján is osztályozni a felhasználókat. Asszociatív keresés, célzott keresés, kategóriák szerinti keresés. Ezen fogalmakat a szakirodalom rendre a következőképp említi: search by association, aims the search, category search. Az asszociatív keresési stílusú rendszereknél főleg, óriási méretű, különböző osztályokra bontható képek halmazáról beszélhetünk. A keresés kezdetén általában még nincs kifejezett célunk a kereséssel kapcsolatban, csak elindulunk egy irányban. Így a keresés általában iteratívvá válik, tehát több lépés szükséges ahhoz, hogy eljussunk egy végállapotba. Meg kell említeni, hogy e csoporthoz sorolható rendszerek nagymértékben interaktívak, ahol például a specifikáció lehet egy skicc. A találatokat, és magát a rendszert manipulálhatjuk felhasználói visszacsatolással, amelyben a találatok jóságát véleményezi a felhasználó [2]. Ez a terület tér el leginkább a hagyományos értelemben megszokott gépi látástól. A célzott keresés esetén egy pontos kép alakul ki a felhasználóba, hogy mit keresünk. Esetleg rendelkezünk egy képpel, és ezen a képen lévő objektumokat keressük más képeken. Ezt szokás példa szerinti keresésnek is nevezni [1]. Ezek a rendszerek főleg bélyegek, művészeti tárgyak, gyári komponensekhez, katalógusokhoz illenek legjobban. Főleg a mintaegyezés keresésen alapul. A kategóriák szerinti kereséskor rendelkezünk egy képpel, mely adott képek osztályát reprezentálja, például egy márkajelzést tartalmaz a kép. A kategóriák ilyenkor származtathatóak az adatbázisban tárolt képek címkéivel. Egy címke meghatároz egyfajta besorolást, egy klasztert. Az ilyen rendszerek gyakran használják márkatermékek keresésére, nyilvántartására. Jellemző itt is az interaktivitás. Főleg objektumdetektáló és a statisztikai minta felismerő metódusok képzik a visszakeresés alapját [1]. A következőben a különböző képtartományokról lesz szó. Képtartományként definiálhatjuk azt a környezetet, amely az adott feladattal kapcsolatban érdekel minket egy kép esetében. Két fő részt különböztethetünk meg. Az egyik a szűk tartomány (narrow domain), a másik a széles tartomány (broad domain) [1]. Egy a szűk képtartományba elhelyezhető kép estén nem beszélhetünk változatosságról. A felvétel körülményei általában megegyezik az egész képtartományra vetítve. Jellemző a fehér megvilágítás, és a frontális nézet. Ilyen képeknél a jellemzők leírása általában jól definiált. Jó példaként említhető egy olyan adatbázis, ahol embereket fényképezték szemből, tiszta hátérrel és egyenletes megvilágítással. A széles tartomány pont ellenkezője a szűk tartománynak, itt a kép megvilágítása, tartalma sokszínű, a képen elhelyezkedő objektumok változatosak. Az elérhető legszélesebb környezetként, tartományként talán az internetet említhetjük meg. 5
6 Az képtartományokkal kapcsolatban mindig sok probléma merül fel. Mindig át kell gondolni, hogy milyen kritériumok alapján válasszuk ki a képekből a jellemzőket, hogy tervezzük meg magát a rendszer egészét. Például egy széles tartomány esetében a tényleges jellemzők és annak leírása között elég nagy a különbség, jó példa erre a kép színének elemzése egyenletlen megvilágításnál. Oda kell figyelni egy kép színeire, hogy az a kép tulajdonságaiból, vagy a megvilágításból fakad-e. Éldetektálás esetén is meg kell viszgálnunk, hogy egy él valódi-e, vagy csak egy erősebb árnyék miatt gondolhatja azt a feldolgozó algoritmus, hogy az él. Láthatjuk, hogy a származtatott információ és a tényleges tartalom között kialakulhat egy szakadék. Vizuális keresés esetén fontos ennek a szakadéknak a méretét csillapítani, minimálisra redukálni. Egy lehetséges módszer, hogyha a jellemzők kinyerését több lépésre bontjuk. Először az egyszerű tulajdonságokat viszgáljuk meg, mint például a kép színe, majd egyre komplexebb szempontok irányába keresünk és nyerünk ki információkat. 5 Képfeldolgozás Az első lépés tehát a képfeldolgozó operációk, rutinok használata, hogy képi adatot átalakítsuk jellemzőket tartalmazó vektorokra, tömbökre. A jellemzők előállítása előtt mindenképp végezzünk el egy előfeldolgozási lépést, annak érdekében, hogy a kép egyenletlen megvilágításából, a képi zajokból adódó problémákat kiküszöböljük. Lásd 12. fejezet. Három szemszögből is megközelíthetjük a jellemző előállítást. A képet alkotó színek felől, a kép alakja felől, és a kép textúrája felől. Mi a kép színeit, éleit, és az éleinek futását fogjuk megvizsgálni. A színekre, pontosabban a színhisztogramra azért lesz szükség mivel az adatbázisunkat osztályozni fogjuk a színhisztogramjuk alapján. Az alakok, élek keresése, futásának vizsgálata pedig magánál a visszakeresés folyamatánál fog fontos szerepet játszani (lásd 7. és 8. fejezet). Ezek mellett el kell döntenünk, hogy szegmentálni kell-e a képünket. Lehet, hogy számunkra fontos információk mint a objektumokat alkotó élek kép egyes régióiban helyezkednek el. Ha a globális tulajdonságok alapján keresnénk megoldást, akkor könnyen előfordulhat, hogy az irreleváns adatokat tartalmazó régiók úgymond elnyomják a számunkra releváns adatokat tartalmazó régiókat, így nem lesz sikeres a visszakeresés. Szóval ilyen esetekben a képet fel kell bontani régiókra. Fontos kérdés az, hogy létezik-e olyan módszer, amely segítségével elkerülhető a számításigényes szegmentálás. A 7. fejezetben megválaszoljuk a most nyitva hagyott kérdést. 6 Képek szegmentálása Amennyiben szegmentálunk, a képeket többféleképpen érdemes felosztani, különböző felosztásokat és módszereket érdemes figyelembe venni, hogy minél több hasznos információt kinyerhessünk a képünkből. Meghatározhatjuk a szegmentálás szintjeit. Ha egy objektumot keresünk, akkor érdemes végrehajtani a teljes szegmentálást, azonban a mi feladatunk esetében, illetve általánosságban a széles képtartomány esetében nem fog jól működni, lásd 3. fejezet. 6
7 7 Tartalom leírása A jellemző vektor A következőkben a jellemző vektorokról, leírókról fogunk beszélni. Magát a jellemzőket két részre oszthatjuk, mint globális jellemző és mind lokális jellemző. Nyílván a globális jellemző, a lokális egyik speciális este, amikor az egész képet egy régiónak tekintjük. Megkülönböztethetünk szín jellemzőket, objektum jellemzőket, alak jellemzőket, textúra jellemzőket, elrendezésbeli jellemzőket. Létrehozhatunk olyan jellemző vektorokat, melyek a jellemző leíróra nézve többdimenziósak, így sokféle információt tartalmaznak, azonban, így a feladat komplexitása is nőni fog. Egydimenzió esetén már ismerünk számos gyors, és hatékony kereső algoritmust, mely működésének meghatározása magasabb dimenzószámnál bonyolult feladat. Azonban az is megoldásnak tekinthető, hogy minden képhez több szempontból készítek jellemző vektort, így nem a dimenziók számát növeljük, hanem a vektorok számát, és így csak súlyozni kell azt, hogy az egyes vektorok, milyen mértékben írják le a képet. 2. ábra - A képi tartalom kinyerésének sémája [3]. 7
8 A következő lépés az egyes jellemző-ök alapján egy szignatúrát előállítani (lásd 2. ábra). Vizsgáljuk meg, hogy a lokális jellemző vektorokból, hogyan állítunk elő szignatúrát. Súlyozott összeget fogunk használni ilyen esetben, azonban felmerül egyből a kérdés, hogy milyen súlyokkal dolgozzunk. Ez esetben mérlegelnünk kell, figyelembe kell venni, hogy a feladat melyik jellemzőt részesíti előnyben. Ahonnan számunkra releváns adat nyerhető ki (a feladat szempontjából fontos), azt nagyon súllyal vesszük figyelembe. A következő talán a legnehezebb lépés, a távolság meghatározása szignatúra között, ami jellemző vektorok kombinációja. Jelöljük a hasonlóságot két aláírás között S betűvel akkor S=s (F q, Fd), ahol s egy általunk értelmezett távolságfüggvény, F q és F d pedig az álírás, bár akár ezt is nevezhetnénk jellemzőnek. Többféle távolságfüggvény függvényt szoktak használni, többek között az Euklideszi távolsággal és Manhattan távolsággal számolnak. Érdemes elgondolkodni azon, hogy milyen távolságkritérium alapján számolunk, mivel az befolyásolja a számítási igényt is. 7.1 Az élhisztogram leíró A szövegekkel ellentétben a hang- és mozgókép-tartalmakat még nem lehet automatikusan katalógusba rendezni. Az multimédia-tartalmakra sokáig nem létezett általános leíró formátum. Ezt az űrt az 1996-ban létrehozott MPEG-7 [4+ szabvány hivatott betölteni. Az MPEG-et kifejezetten multimédiás tartalmak leírására fejlesztették ki. Az ISO/IEC szabvány teljes neve: Multimédia tartalom leíró interfész. A szabvány 10 részből áll, külön részekben vannak definiálva például a rendszereszközök, a leírás definíciós nyelv, a vizuális, az audió és a multimédia leírások és leírási sémák. Térjünk rá az MPEG-7 fő elemeire [5]. A leírók definiálják az egyes tulajdonságok (metaadat elemek, D) szintaxisát és szemantikáját. A leírási sémák (description schemes) az elemek (amelyek lehetnek leírók vagy leírási sémák is, DS) kapcsolatainak szerkezetét és szemantikáját írja le. Leírás definíciós nyelv (description definition language) a leírók és leírási sémák szintaxisát definiálja, valamint új leírók és leírási sémák definiálhatók segítségével. A rendszereszközök segítségével (system tools) az MPEG leírások binárisan kódolt reprezentációját állíthatjuk velük elő a hatékony tárolás vagy továbbítás céljából. A 3. ábrán látható ahogy a leírók leírási sémákba rendeződnek, mindezek szintaxisát és szemantikáját a definíciós nyelv adja meg, amely a bővítés lehetőségeit is tartalmazza. A konkrét példányosodás során címkézett (XML) leírások készülnek, amelyek a szállítás és tárolás számára bináris reprezentációba alakíthatóak. Elérhetők nyílt forráskodú osztály könyvtárak, például a Joanneum Research által C++ nyelven fejlesztett MP7 JRS osztálykönyvtár (A fejlesztésnél többek között a Microsoft Visual C++ Compiler.NET 2003/2005/2008 at is felhasználták). Az osztálykönyvtár segítségével hatékonyan tudjuk létrehozni, manipulálni és szerializálni a vizuális információ tartalmat az MPEG szabvány szerint. Mind az osztálykönyvtár, mind a dokumentáció ingyenesen letölthető és felhasználható. 8
9 3. ábra - MPEG-7 fő elemei és kapcsolatuk [5]. Az MPEG leírói között, a textúra leíróknál megtaláljuk az az él hisztogram leírót (Edge Histogram Descriptor). Következőkben ezt fogjuk felhasználni. Ez azonban nem egy program, hanem egy interfész, egy leírás, melyet nekünk kell megvalósítani. Először is szögezzük le, hogy nincs szükségünk szegmentálásra. Ennek három fő oka van. Mivel az adatbázisunk képeit a világhálóról gyűjtjük majd be, így jellemző lesz a képekre az extrém fokú diverzitás. Másodszor a képek minősége viszonylag nagy határok között mozog. Tehát a szegmentálás nem biztos, hogy konzisztens eredményt adna vissza. Ezeken felül a képek számát is figyelembe kell vennünk. A szegmentálás számítási teljesítményben mérve jelentős növekedést jelentene. Az élhisztogram leíró a képen található lokális éleknek egy felbontása [4]. Első lépésben osszuk fel a képet 4x4-es méretű alképekre. Az egyes alrészek reprezentálják a lokális élfelbontást. A hisztogrammok generálása érdekében az alképen található éleket öt osztályba soroljuk, mégpedig: vertikális, horizontális, 45 -os diagonális, 135 -os diagonális, és konkrét iránnyal nem rendelkező irányú élek csoportjába. Mivel a képünk tizenhat alképből áll, melyeknél az élek öt állapotba kerülhetnek, így 5*16=80 hisztogram vödörre lesz szükségünk. Hogy az éleket osztályozni tudjuk, tovább finomítjuk a kép felosztását. Az egyes alképeket, úgynevezett nem átfedő, azonos méretű és kettővel osztható szélességű és magasságú, négyzet alakú kép blokkokra osztjuk fel. A blokkok méretét a kép felbontásának függvényében választjuk ki. Mivel kettővel osztható részeket kapunk így egy pár pixel elveszhet. A tapasztalati érték 1100 darab kép blokk körül ingadozik, itt a leghatékonyabb az él infromációk előállítása. Minden kép blokkot egy él kategóriába soroljuk, a fent már említett módszer szerint. Az osztályozás elvégzésére egy egyszerű módszer az, hogy az egyes kép blokkokat 2x2 es méretű szuper pixel kép blokknak tekintjük, és erre végezzük el az éldetektálást, hogy kiszámítsuk a megfelelő élerősségeket. 9
10 Mielött rátérünk az élek kategorizálásának menetére, bevezetünk jelöléseket. Az a0(i,j), a1(i,j), a2(i,j), és a3(i,j) jelentse az i. sorban és j. blokkban lévő 2x2-es szuper pixelnek az intenzitás értékét. Ezek mellett jelöljük a szűrő együttható értékeit az egyes irányok esetén és az egyes pozíció esetén: f v (k), f h (k), f d-45 (k), f d-135 (k), és f nd (k), ahol k=0,1,2,3 (a szuperpixelen belüli pozíciót adja meg). Az él nagyságát jelöljük m v (i,j), m h (i,j), m d-45 (i,j), m d-135 (i,j), és m nd (i,j) segítségével, ahol az i és j jelentése megegyezik a fent leírtakkal. Az alábbi képleteken (1., 2., 3., 4., 5.) láthatjuk az m értékek kiszámításának módját [4]. 1. képlet 2. képlet 3. képlet 4. képlet 5. képlet Ha max{ m v (i,j), m h (i,j), m d-45 (i,j), m d-135 (i,j), m nd (i,j) } nagyobb egy küszöbnél akkor az adott blokk tartalmaz élt, ellenkező esetben, tekintsük úgy rá, hogy nem tartalmaz élt. A 4., 5., 6., 7., 8. ábrán láthatóak a szűrő maszkok [4], főleg az irány nélküli esetet tekintve ezek csupán heurisztikus gondolatok eredménye. 10
11 4. ábra vertikális élekre szűrő maszk 5. ábra horizontális élekre szűrő maszk 6. ábra 45 -os diagonális élekre szűrő maszk 7. ábra 135 -os diagonális élekre szűrő maszk 11
12 8. ábra konkrét iránnyal nem rendelkező élekre szűrő maszk Nehéz olyan szűrő mátrixot találni, amely az irány nélküli élekre általánosan jól működne. Induljunk ki az irány nélküli élek definicójából. Olyan élek, melyeknek nincs konkrét iránya. Keressünk olyan éleket amelyeknek van konkrét iránya, ha nem találunk megoldást, akkor az élnek nem lesz konkrét iránya. A következő fontos kérdés, hogy mi alapján hasonlítunk össze két élhisztogrammot. A 80 vödrös lokális élhisztogram alapján nem érdemes dönteni, mivel csak globális tulajdonságokat vesz figyelembe. Szükségünk van kifejezőbb formulákra. Jelöljük LocalA-val és LocalB-vel a 80 vödrös lokális hisztogrammokat. Legyen SemiGlobalA és SemiGlobalB, mely a 13 szegmensre felosztott képről (lásd 9. ábra) készített hisztogrammokról ad információt (13x5=65 vödör). Végül pedig vegyük figyelembe a GlobalA-t és GlobalB-t, melyek az kép öt részre való felosztása, az egyes felosztások estenén 5 vödrös hisztogrammot viszgálunk. D(A,B) az A és B kép közötti távolság. 9. ábra 13 szegmensre felosztott kép [4]. 6. képlet A lokális és globális élhsiztogrammok segítségével előálított hisztogrammok közötti távolásg kiszámítása látható. 12
13 10. ábra - Az élhisztogram szemléltetése tetszőleges felosztás esetén. Az egyes szeletek a már fent említett élirányoknak megfelelő vödröt szemléltetik [13]. Természtesen még mielött távolságot számolunk az egyes hisztogram vödröket normalizálni és kvantálni kell. Normalizálás céljából az egyes élek előfordulásának számát a vödrökben elosztjuk az alképen található kép blokkok számával. Meg kell jegyezni, hogy a homogén területeket is számításba vesszük a normalizálás esetén, viszont a hisztogramban nem jelennek meg, lényegében ez azt jelenti, hogy az élhisztogrammot azok a területek is befolyásolják, amelyek nem tartalmaznak éleket. Egy indirekt függésről beszélhetünk. A normálizált hisztogram vödrök értékei kvantálnunk kell. A kvantálás egy, az eredeti halmaznál lényegesen kisebb elemszámú halmazra való leképezés úgy, hogy az eredeti értékhez a halmazból a legközelebbi értéket rendeljük hozzá egy távolságkritérium (norma) alapján. Másik szakirodalomban [6] így definiálják a kvantálás fogalmát: A képfüggvény folytonos fényességértékei és a digitális megfelelőik közötti átalakítást nevezzük kvantálásnak (egy kép esetén ezt jelenti, de párhuzamot vonhatunk hisztogram vödör értékek kvantálásával). A kvantálás definíciója szerint két érték között kell mindig döntésthoznunk, az intervallumunkat fel kell osztani úgynevezett kvantálási szintekre. A felosztás lehet lineáris, és nem lineáris. A mi esetünkben az egyes vödrök értékei a *0;1+ zárt intervallumba esehetnek (a normalizálás után), azonban elmondható az, hogy leginkább az értékek a [0;0.3] zárt intervallumba esnek. Mivel az intervallumba esés nem egyenletes eloszlást követ, így a nem lineáris kvantáls mellett dönthetünk, így az egyes kvantálási szintek különböző távolságra esnek egymástól. 13
14 7.2 A SIFT leíró A következőben vizsgáljunk meg egy másik jellemző leírót. Választásunk a David Lowe által kifejlesztett módszerre a, SIFT-re esett [16]. Ez a leíró algoritmus a digitális látáskutatás tudományos igényességgel megfogalmazott, jól definiált metódusa a képtartalmat eltolás-, elfordulás-, skála- és megvilágítás-független helyi jellemzők kvantitatív értékeivé transzformálja. A transzformáció folyamatábráját a 11. kép illusztrálja. 11. ábra - A SIFT transzformáció folyamatábrája [16]. Az első lépéshez Gauss-féle konvolúciós szűrőt kell használni a simításhoz. Ezt a simítást el kell végezni egymás után többször, majd ezt követően a kép méretét a felére kell csökkenteni. A csökkentett méretű képpel ugyanígy járunk el és így folytatódik tovább az eljárás. Ezzel tulajdonképpen egy kép-piramist hoztunk létre, mely majd a feldolgozás gyorsítását szolgálja. A következő lépésként minden szomszédos konvolúciós szintnek képezzük a különbségét, amelyből egy másik, különbség skála szintjei jönnek létre. Ehhez a D(x, y, σ) függvényt (továbbiakban D) használjuk, amely a következőképpen leírható: 7. képlet - x és y a pixel koordinátái, k egy konstans szorzó tényező a szomszédos szintek közt és σ a Gauss-maszk előállításához szükséges paraméter. Ezzel a lépéssel biztosítjuk, hogy hatékonyan találhassunk biztos pontokat a skála-térben és megtartsuk a módszer erejét adó invarianciát. A következő lépésben szélsőértékeket kell keresni a létrehozott skála-térben. A kulcspontok a lokális maximum illetve minimum értékek lesznek a különbségekből létrehozott skála térben. Ezen pontokat úgy határozzuk meg, hogy az aktuális pixelt összehasonlítjuk mind a nyolc szomszédjával a saját szintjén, majd az alatta és felette lévő szinten lévő 18 másik szomszédjával, ami így összesen 14
15 huszonhat összehasonlítás. Ha ez a pont a többivel való összehasonlítások után minimális vagy maximális, akkor szélsőérték. Az így kapott pontokon további műveleteket kell végezni. Mivel többször is simítottunk a képeken és a méretüket is csökkentettük, ezért interpoláció segítségével a környező adatok alapján vissza kell keresnünk a kijelölt pontok eredeti helyét az eredeti képen. Ha ez megvan, akkor a hatékonyság növelése érdekében csökkenteni kell a kulcspontok számát, ugyanis ezek közül még nem mind hordoz fontosnak mondható információt. Ez azért is fontos, hogy csak a biztos vagy stabil pontok maradjanak meg a további számításokhoz. Folytatódik tehát a feldolgozás. Az alacsony kontrasztú pontokat és a gyenge élpontokat el kell távolítani egy küszöböléssel. Ezt kiszámíthatjuk a következő függvénnyel: 8. egyenlet - Az adott pont intenzitásának kiszámítása (z paraméter) parciális deriváltak segítségével. Ha az adott pont kontraszt értéke egy megadott küszöb alatt van, akkor kivesszük a kulcspont listából. A stabilitáshoz azonban nem elegendő a kis kontrasztú pontok kiszűrése. A Gauss-különbség függvény jól használható információkkal szolgál az élekről, azonban ha egy él elég gyenge, akkor érzékeny lesz a zajra. Ezeket fogjuk kiszűrni a továbbiakban ismertetett módszerrel. Egy gyenge csúcsnak a Gauss-különbség függvényben nagy lesz fő görbülete az élen keresztül, de kicsi a merőleges irányban. A fő görbület kiszámítható a 2 2-es Hesse-mátrixból, a továbbiakban H. A Hesse-mátrix egy többváltozós valós függvény másodrendű parciális deriváltjaiból alkotott négyzetes mátrix [7]. Jelen esetben a deriváltak megmutatják, a szomszédos pontok különbségét. A H sajátértékei arányosak a D fő görbületeivel. Ezek közül a legnagyobbra és a legkisebbre lesz szükségünk a továbbiakban, azonban a számításhoz nem fontos kiszámítani a konkrét értékeket, megelégszünk az arányukkal (r). A H determinánsa célravezető, ha szélsőértékeket szeretnénk találni a függvény felületén. Ezért képezzük a következő törtet: 9. képlet - Tr(H) jelentse a főátlóban lévő elemek összegét, Det(H) a H mátrix determinánsát. Látható, hogy az érték kizárólag a sajátértékek arányától függ. Látható hogy 9. képleten szereplő utolsó kifejezés akkor a legkisebb, ha a két sajátérték egyenlő. Ilyetén nézve, ha arra vagyunk kíváncsiak, hogy a fő görbületek aránya valami küszöb alatt van-e, akkor elég megvizsgálni az alábbi egyenlőtlenséget. 10. képlet 15
16 A feldolgozás következő lépéseként a pontokhoz irányokat kell rendelni. Egy ponthoz lehet több irányt is rendelni, amelyeket a lokális gradiens jellemzők alapján határozunk meg. A gradiens nagyságát (m) és irányát (θ) a következő két képlet adja meg, amelyet minden simított képre alkalmazunk: 11. képlet 12. képlet Ezt elvégezzük az adott kulcspont adott sugarú általában 4 vagy 8 környezetére is, majd ezeket az értékeket egy olyan σ paraméterű Gauss maszk szerint súlyozzuk, amely rendszerint másfélszerese a kulcspont léptékének (lásd 12. ábra). Ezt követően készítünk egy szöghisztogramot 36 vödörrel. Az így létrejött régiókat összegezzük egy 4 4-es felbontású részekre a megfelelő értékek összegzéséből úgy, hogy közben csökkentjük a vödrök számát nyolcra. Nagyon fontos, hogy az egyes kulcspontokhoz tartozó hisztogramok a ponthoz előzőleg kiszámolt orientációjához vannak igazítva. A domináns irányok, a hisztogram kiemelkedő értékei lesznek. Alapvetően a legnagyobb ilyen csúcsot tekintjük fő iránynak, de ha előfordul még olyan érték, amely a maximális érték 80%-án belül van, akkor létre kell hozni vele egy új kulcspontot ugyanazon a helyen. 12. ábra A szöghisztogram készítés *16+. Általánosságban a pontok 15%-a rendelkezik többirányú hozzárendeléssel, ezzel csak növelik az ilyen kulcspontok stabilitását. A leíró végül úgy jön létre, hogy minden kulcsponthoz és környezetéhez tartozik 4 4 db hisztogram egyenként 8 értékkel. Ez összesen egy 128 elemű vektort eredményez. Ha a megvilágításból fakadó változásokat szeretnénk kiküszöbölni, akkor normalizálnunk kell a vektort, így elérhetünk bizonyos fokú invarianciát ezen változásokkal szemben. A jellemző vektorok közötti távolságot szimpla Euklidészi távolsággal számítjuk, mint az élhisztogram leíró esetében. 16
17 8 Találatok rendszerezése színhisztogram alapján Maga a színnel foglalkozó részterület talán a gépi látás egyik legaktívabb kutatási területe. Lényegében a képünk minden pixele felvesz egy értéket egy adott vektor térből, és ez meghatároz egy színt az ember számára. A szín alapú képfeldolgozás két fő szemléletmódja terjedt el, két fő aspektusa. Az egyik, amikor a rögzített színek alapján határozzák meg a felület orientációját, ebből következtethetünk a kamera irányára, illetve a megvilágításból adódó problémákat feloldó függvényekre. Egy érdekes törekvésnek tekinthető az emberi érzékelés és a szín alapú képfeldolgozás között párhuzamokat keresni. Általános esetben elmondhatjuk, hogy az RGB szín reprezentáció választása kellőképp kielégítő módszer. Az RGB színtér hatásfokának javítása érdekében, használjuk a következők szerint, (R-G,2B- R,R+G+B) legyen a színterünk [1]. Ennek a megvalósításának az előnye, hogy a fényességet ( brightness ) izolálja a harmadik tengelyre nézve. Ez hasznos, mivel az ember is sokkal érzékenyebb a fényességre. Ha az emberi látást, érzékelést szeretnénk megközelíteni, akkor akár használhatjuk a Lab vagy a HSV színteret. Rendszerünkben szeretnénk szín alapján a lehetséges a találatokat osztályozni, és az osztályoknak megfelelően megjeleníteni. Ezáltal a megoldás halmaz átláthatóbb, és rendezettebb lesz. Négy döntést kell hoznunk. Ki kell választani, hogy milyen színtérben fogunk dolgozni, majd el kell dönteni, mi alapján generáljuk le a szín tartalomra jellemző vektort. Végül pedig el kell döntenünk, hogy a vektorok között milyen szabály alapján számolunk távolságot, és ezeket a távolságokat milyen osztályozó algoritmussal csoportosítjuk. Az RGB színtér széleskörben használt színtér. A piros, a zöld és a kék szín összetételén alapul. A legtöbb digitális ezköz rendelkezésre bocsát direkt RGB ki és bemeneteket. Azonban az RGB színkockában nem szerepel minden szín. Az RGB-ből átkonvertálható HSV színtér sokkal jobban megközelíti az emberi érzékelést. Ilyenkor a HSV színtérrel lenne érdemes dolgozni, de mivel a RGB HSV konverzió meglehetősen számításigényes feladat, így az RGB színtér használata mellett döntöttünk. (Lényegében ez a feldolgozási lépés nincs hatással az eredmény képre, csak az eredmény halmazt teszi átláthatóbbá egy szempont szerint, ami most színjellemző). A jellemző vektor legyen a színhisztogram. Kiszámítása egyszerű és nem számítás igényes feladat, ezek mellett jól tükrözi mind a globális, mind a lokális jellemzőket. A jellemző vektorunk annál kifejezőbb lesz, minél több hisztogramm vödröt alkalmazunk. Azonban a vödrök számának növelése nem csak a számítási költségeket növeli, hanem megakadályozza a hatékony indexelést egy adatbázis kiépítése esetén. Az osztályozásnál Euklidészi távolságot vegyünk figyelembe, és használjuk a k-közép klaszterező algoritmust (k-means clustering). Két hisztogrammot (jelöljük g-vel és h-val) Euklidészi távolságukat jelöljük D(g,h) 3 dimenziós vektorral (lásd 13. képlet). 17
18 13. képlet Két RGB hisztogram különbség vektora. Ahol jelentése a következő: A g hisztogram R csatornájának i. helyen vett értéke. A k jelenti a vödrök számát. Ha el akarjuk kerülni a háromdimenziós vektorokkal való számolást, akkor használhatjuk az (R-G,2B-R,R+G+B) színteret. Ilyenkor ha mellőzük a fényességet jelölő harmadik tengelyt, akkor 2 dimenziós vektorokat kapunk. A 256x256 vödör helyett használjunk 6x6 vödröt. A vödrök készítése szintén történhet k-közép algoritmus segítségével. Így a pontok egy tizenkétdimenziós térben fognak elhelyezkedni az elemeink. A k-közép klaszterezés (lásd 13. ábra) egy iteratív algoritmus, egyes szakirodalmak [8] Lloyd algoritmusnak esetleg Voronoi iterációnak nevezik. Az algoritmus működését az OpenCV-s implementáció alapján mutatjuk be [8]. Késöbb is ezt az implementációt fogjuk alkalmazni. Az első lépésben véletlenszerűen kiválasztjuk a klaszterek központi elhelyezkedését. Minden adatpontot belehelyezzük a megfelelő klaszterba, az egyes központi elhelyezkedések alapján. A központi helyezkedéseket módosítjuk, úgy hogy pont az egyes klaszterekhez tartozó vektorok centroidja legyen. Az előző két lépést addig iteráljuk, amíg a centroid pontog nem mozdulnak többet el. A módszer porblémái, hogy lassú, előre meg kell adni a az osztályok számát, illetve nem ad tökéletes megoldsát. Azonban nincs is szükségünk pontos megoldásra, a gyorsaságon pedig lehet javítani párhuzamossítással (Az algoritmus remekül párhuzamosítható). Az OpenCV-ben megvalósított algoritmus szignatúrája: void cvkmeans2( const CvArr* samples, int cluster_count, CvArr* labels, CvTermCriteria termcrit), ahol a samples változó egy több dimenziós tömb a minták számára, a cluster_count jelöli a klaszterek számát, a labels változó fogja majd tartalmazni a végső klaszter indexeket, termcrit az iteratív algoritmusok szükséges paramétere. 13. ábra A k-közép algoritmus végeredményének szemléltetése (2 dimenziós esetben). Azonos színű pontok egy osztályba tartoznak. A centroidokat fekete keresztel jelölték. 18
19 9 Osztályozás kihívásai Az osztályozás mint téma igen összetett, mivel meglehetősen nehéz behatárolni, hogy két kép az élei alapján például mikor hasonló. Teljesen egyértelmű választ csak nagyon ritkán lehet alkotni. Akkor hogyan fogunk mégis elfogadható eredményekre jutni? Elsőre jön az ötlet, hogy illesszük egymásra az ismertetőjeleket reprezentáló adatsorokat, azonban ez korántsem ilyen egyértelmű. A számítógépnek precíz definíciókra van szüksége. Az 1. táblázat egy példa az osztályozás nehézségeire. Tanító adatok Teszt adatok Kategória A A A A B B B B???????? 1. táblázat Ezekre az egyszerű mintákra is többféle szabály alkotható a logikai operátorok segítségével (például, az A kategória előállhat a 3. és 4. minta XOR művelettel vett eredményének negáltjaként). De ahogy az a táblázatból is látszik, még sincs a Teszt adatokra vonatkozó szabály, amely egyértelműen meghatározná, hogy melyik kategóriába tartozzanak. Még ez a nagyon egyszerű példa is remekül illusztrálja, hogy ha egyetlen bitet is megváltoztatunk, akkor már nem működik a rendszer. A probléma abban gyökeredzik, hogy képtelenség az összes kombinációt előállítani, majd betanítani egyedi szabályokat rájuk. Kénytelenek leszünk feltételezésekkel élni a keresési térre vonatkozóan, mert ha nem tesszük, akkor nem lesznek szabályaink az addig nem látott mintákra. További problémákat vet fel a képekre ülő zaj, amely hamis információkkal vezetheti félre a rendszert. Az ilyen esetek bizonyítják a kép előfeldolgozásának fontosságát. Egységes megoldást nem fogunk találni, a szabályokat az adott feladat jellege határozza meg. Egy tartalom alapú kereső rendszernek meglehetősen kiterjedt osztályozó mechanizmussal kell rendelkeznie, hogy képesek legyenek hatékonyan ellátni a feladatukat. Visszacsatolással fenntarthatjuk a tanulási folyamatot. Osztályozó algoritmusokat, mint például az SVM megtalálhatunk az OpenCV könyvtárban is. 19
20 10 Az SVM osztályozó Kijelenthető, hogy a különféle osztályozási eljárásokat az adott feladat optimális megoldásához választják meg. A mi problémánkra a legjobb megoldást a lineáris osztályozók adják, amelyek egyenessel vagy más néven hipersíkkal szeparálják az entitásokat. A hipersíkot a következő egyenlet írja le: 14. képlet g(x) a hipersík függvénye, ahol W egy normálvektor, mely merőleges a hipersíkra, a b paraméter pedig az eltolást határozza meg. Az osztályozás értelemszerűen aszerint történik, hogy melyik oldalán helyezkedik el az adott pont. Tanítás során a fő cél megtalálni a pontokat legjobban elválasztó hipersíkot úgy, hogy a tanítás során nem látott pontokat is eredményesen sorolja az adott pontnak megfelelő osztályba. Elválasztó hípersíkok közül azonban több is lehet, így felvetődhet a kérdés, hogy melyiket válasszuk? A választ az SVM [14] (lásd 14. ábra) módszer szolgáltatja a felügyelt tanulási módszerek családjába tartozik. A lényege, hogy a legjobban szeparáló sík margóját maximálisra méretezi. Margónak nevezzük azon térrészt, amelyet az elválasztó sík párhuzamos hipersíkokkal bezár és nem tartalmaz tanító pontokat. Az SVM osztályozó a maximális margó kritérium miatt remekül képes általánosítani, ami a mi esetünkben jól fog majd jönni. 14. ábra - Az SVM ábrázolása [14]. A legjobb sík meghatározásához teljesülnie kell a következőknek. Adott tanító minta esetén {(x i,y i )}, i=1,2,,n teljesülnie kell a következő két feltételnek: 15. képlet Miközben a margót maximálisra kell választani. 20
21 Azon a pontok segítségével, amelyek a rajta vannak a margósíkokon leírhatjuk a margók szélességét. A szeparáló sík és a margóra eső pontok közti merőleges vektorok lesznek az ún. támogató vektorok (support vectors), amelyekkel leírhatók lesznek a margók szélességei: 16. képlet A margók szélességét leíró kifejezés. Ebből következik, hogy a feladatunk a következő két kifejezés (lásd 17. képlet) közül az első maximalizálása, amiből következik, hogy a másodikat kell minimalizálni. Ehhez pedig a 18. képleten látható egyenlőtlenséget kell megoldani. 17. képlet 18. képlet Ha bevezetjük a Lagrange szorzókat az eredeti változók szerinti parciális deriváltak nullává tétele után, akkor a következő összefüggést kapjuk. 19. képlet - ahol A Karush Kuhn Tucker (KKT) kondíciók alapján (amelyek nemlineáris programozási feladatok optimális megoldásainak kereséséhez használatosak) bizonyítható a 20.képlet első egyenlősége. Support vektorok esetén α i 0, tehát a megoldást lásd a 20. képlet második kifejezésén. 20. képlet A b pedig az következő egyenletből számítható: 21
22 21. képlet Az elválasztó hipersík egyenletete tehát: 22. képlet Ebből látszik, hogy az egyenlet kifejezhető pusztán a tanító minták belső szorzataival, sőt az optimalizáció során szintén csak ezeket használtuk fel. A módszer előnyei, hogy egyszerű elválasztó felülettel dolgozik, a maximális margó kritérium miatt jól általánosít és csak a tanító minta belső szorzataira van szükség. Felvetődik a kérdés, hogy ha nem szeparálható lineárisan a tanítóminta, illetve ezeket hogy lehet megtanítani? Vezessünk be hézag változókat (ξ), amelyek leírják, hogy a tanító pontok milyen messze vannak a hozzájuk tartozó margótól. 15. ábra Lineárisan nem szeparálható eset [14]. Ebben az esetben a következőképpen módosul a megoldandó feladat: 23. képlet A C paraméterrel szabályozható lesz az általánosítás mértéke. Ha C kicsi, akkor a margó maximalizálása a fontos, így jó általánosítás érhető el, de nagyobb hibával! Ha C nagy, akkor a margómaximalizálás kevésbé fontos, így kevésbé általánosít jól a modell, azonban a hiba mértéke is lecsökken. 22
23 Nem lineáris összefüggések esetén a tanítási problémák megoldására az ún. kernel trükk ad alternatívát. Ez azonban csak akkor alkalmazható, ha mind a tanulás mind a modell használata megoldható a pontok belső szorzatának felhasználásával. Ha ez fennáll, akkor a kernel függvénye megadja a transzformált pontok belső szorzatát, azonban a transzformációt nem kell ténylegesen elvégezni. A függvényt a következő összefüggéssel lehet definiálni: 24. képlet 23
24 11 Architektúrális kérdések Egy asszociatív típusú, profilú tartalom alapú keresőrendszert tervezünk. Ahogy azt a 3. fejezetben megismertük, egy ilyen típusú rendszernek hatlmas és sokszínű képállománnyal kell rendelkeznie, ahhoz, hogy megfelelő éményt biztosítson. Tehát egy óriási adathalmazon kell számításigényes műveleteket végezni mint például, jellemző vektorokat előállítani, osztályozni, visszakeresést végezni. Nagyon fontos tehát a problémára optimalizált rendszer kialakítása. Egy olyan tároló rendszert kell választanunk, amely mind a tárolóhelyet és a feldolgozási idő redukálást, mind pedig a felhasználás egyszerűségét megpróbálja megvalósítani. Szeretnénk azt elérni, hogy a feldolgozási idő lehetőleg ne érje el az O(n 2 )komplexitást. A következőkben bemutatunk két indexelési módszert. Az egyik az úgynevezett terület felosztásos technika (space partitioning [9]), a másik pedig az általunk intuitívan kigondolt technika. Az egy dimenzós adatok tárolása esetén főleg B-fákat szoktak használni, mivel az adatszerkezet hatékony beszúrást és törlést tesz lehetővé, miközben mindig kiegyensúlyozott marad a szerkezete. Azonban a többdimenziós adatok esetén nem használható (többdimenziós kulcsok). A terület felosztásos indexelés a B-fának egy módosított változatát használja fel. Az indexelés alapja a képet leíró jellemzőknek módosított B-fa struktúrába szervezése (lásd 16. ábra). A kiindulási tér a jellemzők halmaza, melyet részekre osztunk fel, úgy hogy lehetőleg kevés elem legyen egy halmazba. A 10. ábra egy adathalmaz lehetséges felosztását mutatja. A felosztás után mindegyik partíciót cimkézzük meg egy számmal, majd a következőként ábrázoljuk egy B-fa segítségével (lásd 17. ábra). 16. ábra - A jellemző tér felosztása. Számokkal jelöltük az egyes partíciókat, betűkkel pedig az adatokat [9]. 24
25 17. ábra - B-fa segítségével ábrázolt jellemző tér. A szakirodalom K-D-B fának nevezi ezt az indexelési módszert [9]. Az általunk kigondolt módszer alapja már az adatbázis elméletből is ismert ritka indexeléses technikán alapul. Ilyenkor egy szempont szerint rendezett rekordok halmazán úgynevezett jelző cölöpöket definiálunk. Két jelző cölöp között több elem található meg. A jelzőcölöpöket több szinten megvalósíthatjuk. Mi egy többlépéses osztályozás segítségével állítanánk fel a jelző pontokat, így keresés esetén csak meg kell találni az adott fiókot, amelybe az elem elhelyezkedik. A módszer legnagyobb problémáját az új elemek lekezelése jelentené. Az új elemek számával fordítottan arányos lenne az indexelés kiegyensúlyozottsága. A fejezetben megismerkedtünk lehetséges indexelési módszerekkel. Egy komplett adatbázis kezelő rendszer kifejlesztése viszont hatalmas erőforrásokat emésztene fel. Ennek okán vizsgáljunk meg egy adatbázis kezelő rendszert, mégpedig az Oracle adatbázis kezelő rendszer 11g második kiadását, azon belül pedig a multimédia kezeléssel foglalkozó lehetőségeit (Oracle Database 11g Release 2 - Multimedia). Ez egy relációs adatbázis kezelő rendszer, mely SQL nyelven programozható. A multimédia kiegészítés segítségével hatékonyan tudjuk eltárolni mind a képeinket, mind a jellemző leírókat. A következő bekezdésben megvizsgáljuk a multimédia kiegészítés milyen lehetőséget teremet a multimédiás tartalmat kezelő adatázisokhoz [10]. A kiegészítés csak az Oracle Adatbáziskezelő Standard és Enterprise verziójában található meg. A termék lehetőséget nyúlt relációs adatok, struktúrális adatok és egyaránt strukturálatlan adatok hatékony tárolására és visszakeresésére. Egy képet a saját ORDImage objektumán keresztül tárolja el a rendszer. Az objektumhoz számos hasznos metódus tartozik, mint például a getmetadata, melynek segítségével egy képről lekérdezhetjük a meta-információkat. A képeket eltárolhatjuk az adatbázisban, vagy akár az adatbázison kivűl is, azonban a meta-információkat mindig az adatbázisban kell tárolnunk, mint például a kép formátuma, mérete, neve, forrása. A képhez tartozó információkat többek között elérhetjük XML formátumban is. Az XML formátum miatt az Oracle többek között a.net fejlesztők számára kényelmes feldolgozást biztosít. A rendszer rendelkezésünkre bocsát különböző képtömörítő eljárásokat is, ezzel segítve munkánkat. Alapvető képfeldolgozási rutinokat is tartalmaz a rendszer, mint például gamma-korrekciót, kép elforgatást, 25
26 kontraszt-vágást, és többek között kvantálást is. Ezen felül számos fejlesztői eszközt bocsátanak rendelkezésre mint például az SQL*Loader-t, mely segítségével könnyen tudunk új képeket hozzáadni az adatbázisunkhoz. A modern fejlesztői környezetként pedig a Java, C++ és PL/SQL t jelöli meg. Számos osztálykönyvtárat bocsátanak rendelkezésre. Az óriási elemszámról és az adatok sokszínűségéről (felbontás, színmélység,momentumok...) beláttuk, hogy egy problémaforrást jelent a feldolgozásnál. Mivel mi nagy képi adatbázist fogunk használni, így szükségünk van egy előfeldolgozó lépésre. Először is meg kell határozni milyen felbontású képekkel is fogunk dolgozni, erre vonatkozóan kell majd választani egy alsó és egy felső határt (a felső határt átlépő képeket átskázállzuk). Az átskálázás helyett akár használhatnánk a kép piramisok építésének módszerét, így növelhetjük a sebességet és még az eredeti kép is megmarad. Ilyenkor a tárhelykihasználás lesz rossz. A képeket pedig tároljuk le JPEG formátumban, ilyenkor egy átlagos kép mérete úgy 250 Kilo Byte lesz. Szóval, ha 1 millió darab képpel dolgozunk, akkor már közelítőleg 250 Giga Byte tárhellyel kell számolni. Nyílván az adatbázisnak bővülnie kell, és bővülni is fog, fenntartva a fejlődés lehetőségét. A leírt előfeldolgozó lépéseket egy részét akár az Oracle adatbázis kezelő segítségével is elvégezhetjük. Egy az interneten is elérhető képmegosztókról letöltött képek esetén könnyen előfordulhat az, hogy egy kép többször is szerepel az adatbázisban. Ha léteznek duplikált képek, akkor nagy valószínűséggel, ha az egyik megjelenik, mint egy visszakeresési eredmény, akkor a másik is. Ezáltal romlik a felhasználói élmény. Az első kérdés, hogy találjuk meg a hasonló képeket? A [11] ben leírtak alapján a következőket tehetjük. Alakítsuk át az RGB képet indexelt formátumú képpé, ahol paletta színt tartalmaz. Az összekapcsolódó pixelek homogének, ha több mint 98%-ban ugyan azzal az indexelt színnel rendelkeznek. Definiáljunk egy hasonlósági mértéket a két kép között, jelöljök f és g betűvel.legyen R F (1),R F (2),...,R F (p) az f homogén régiói, és R F (n) területe nagyobb mint R F (n+1) területe, ahol is n=1,2,...,p-1. p szám egy fix constans. 1, 2 legyen a hibahatár. Ha a következő egyenlőtlenségek (25., 26. képlet) teljesülnek akkor a két kép egyforma. 25. képlet D 1 jelöli a terület szerinti hasonlóságot. 26. képlet D 2 jelöli a szín szerinti hasonlóságot. 27. képet A p fix konstans meghatározásához szükséges képlet. Nf és Ng jelöli az f-ben és g-ben található homogén régióinak számát. 26
27 12 Saját rendszerünk Ez egy olyan tartalom alapú kereső rendszer, mely skiccek alapján keres, nagyméretű képi adatbázisban. Sokszor kerül olyan helyzetbe az ember, amikor nem bír szöveggel, esetleg gesztusokkal se megfogalmazni egy momentumot. Ilyenkor sokszor mutatna egy képet helyette, de mivel nincs konkrét, biztos megfogalmazása, így a kereső rendszer valószínűleg nem fog érdekes találatot szolgáltatni számára. De mi lenne, ha lerajzolná? Erre nyújtana segítséget a mi rendszerünk. Ezek mellett fontosnak érezzük, hogy a rendszerünkkel verseny helyzet teremtsünk e téren, így talán el lehetne indítani egy dinamikus fejlődést a témában. A rendszert tehát olyan emberek számára tervezzük, akik szeretnek böngészni az interneten képek után. Arra számítunk, hogy egy ilyen rendszert a felhasználója iteratívan használja, vagyis egy találat után nem áll meg. Mivel a rendszernek nem egy felhasználója lesz, hanem több, így kliens szerver architektúrába kell gondolkoznunk, azonban amíg nem lesz stabil, gyors verzió addig csak egy kliens lesz. Beszéljünk a rendszer várható funkcióiról. A felhasználói felületen lesz egy rajzfelület, ahol a felhasználó rajzolni tud. A rajzolás mellett még színezésre is lehetőség lesz, ilyenkor a színhisztogramok segítségével fogunk döntésre jutni, a színezett szegmensek és az él hisztogramok alapján. Először az él hisztogramot fogja vizsgálni, majd pedig a megfelelő színhisztogramok segítségével kiszűr a nem megfelelő találatot. Egyelőre még terv szinten tervezett a felhasználó által készített rajzok felcímkézése is, így akár a szöveges keresés is megvalósítható lenne. Szeretnénk egy olyan funkciókat is megvalósítani, hogy amikor keres egy képet a felhasználó, akkor azt a találatok közül be tudjon rakni egyet a rajzfelület hátterének,és azon a háttéren körbe tudjon rajzolni egy alakzatot, így megkönnyítve a következő keresés eredményességét. Az eredmények megjelenítése egy érdekes kérdés. Csoportosítva jelenítjük meg az eredményeket a színhisztogram alapján. Ennek egy oka van. A felhasználó csak egy bináris rajz alapján keres, csak ennyi áll rendelkezése, így a program nem tudja eldönteni, melyik a legjobb megoldás, illetve melyik a legrosszabb. Ha rang szerint, vagyis a szignatúrák hasonlósága szerint raknánk sorrendbe, akkor előfordulhat, hogy a ténylegesen legjobb kép hátul fog elhelyezkedni. Szín alapú csoportosítást pedig, azért alkalmazunk, mivel a szín fogalma közel áll az emberi érzékeléshez. 27
28 13 Hasonló rendszerek Az ember a látására támaszkodik leginkább a különböző érzékei közül. A dolgok, amiket meglát az ember nem tárolódnak el egy konkrét memóriában, ahonnan utána vissza lehetne olvasni azt, azonban mégis a másodperc törtrésze alatt azonosítani tudja az emlékeit alapul véve, ha valami régebben látott dologhoz hasonlót lát. Rengeteg kutatás történt ezen a területen, azonban áttörő sikert még várat magára. Egyes rendszerek kereskedelmi forgalomban is megjelentek, de mégis a legtöbb a kutatási fázisban maradt. Ezek a rendszerek elsősorban a szín és textúra tulajdonságok alapján működtek, és csak nagyon kevés esetben tettek kísérletet az élek alapján való feldolgozásra. Meg kell jegyezni, hogy általános keresésre mondhatóak hatékonynak a jelenlegi rendszerek, ugyanis a speciális esetekben ugyanazon hibákba futnak, mint az általános szöveg alapú keresők. A képek zajosak és a keresési feltételek csak nagyon nehezen írhatók le. Főleg szín alapú szegmentálás, textúra, elrendezés és élek alapján dolgoznak. A textúra alapján elég könnyen lehet hasonlóságot találni képek között, amire az egyszerű szín alapú indexelők nem képesek. Az elrendezési és él futási leírók ritkán használtak, mert meglehetősen nehéz ezeket reprezentálni, ráadásul jelentősen megnövelik a keresési teret. Egy másik technika, amikor kézzel felcímkézik a képeket egyedileg. Ezek komoly hátránya viszont, hogy ha előzőleg nem vitték be a címkét a rendszerbe, akkor nem fog rátalálni a keresett dologra. Érdekes területetek felé nyit utat ezeknek a módszereknek az automatizálása. Egy lehetséges ötlet lehet az, hogy mintaképek alapján tanítás segítségével címkézzünk, illetve a későbbi keresés során interaktív módszerekkel fejlesztjük a rendszer jóságát. A következőkben a saját rendszerünkhöz hasonlóakat fogunk prezentálni. Először is leírjuk, hogy kik fejlesztették ki, mikor fejlesztették ki, és milyen publikációk kötődnek a rendszerhez. Ezt követően leírjuk, hogy milyen funkciókkal rendelkezik, és ezeket a funkciókat milyen módszerek segítségével hozták létre. Fontos, hogy kiemeljük az innovatív funkciókat. Fontos hogy, megkeressük a párhuzamot a bemutatott és a saját a rendszerünk között, illetve az ellentéteket. A végén pedig leírjuk, hogy milyen ötleteket merítettünk a saját rendszerünkhöz PhotoSketch A Mathias Eitz, Kristian Hildebrand, Tamy Boubekeur és Marc Alexa készítették a rendszert 2009-ben, melyről egy publikáció [13] jelent meg. Videómegosztó portálokon bemutató videókat találhatunk a rendszerükről, mely a megosztó portál felhasználóinak körében elég nagy népszerűségre tett szert. A 18. ábrán láthatjuk rendszer működését a felhasználó szemszőgéből. A felhasználói felületen találhatunk egy rajzfelületet. Itt készíthetjük el az a rajzot, ami alapján történik a visszakeresési folyamat. Kizárólag fekete fehér rajzot készíthetünk. Mint a rendszer neve is sugallja, egyszerű skicceket rajzolhatunk. Ha elindítjuk rövid idő alatt a képernyő jobb oldalán megjelennek a legjobb találatok a színhisztogramjaik alapján csoportosítva. Ha kiválasztunk egy képet, az megjelenik a rajzlapon, és akár arra a képre is rárajzolhatunk, így pontosíthatjuk a keresést. A másik lehetőség pedig az, hogy a keresett képet elehelyezzük a rajfelületen, majd keresünk egy új képet. Ilyenkor a két képet összeilleszhetjük, úgy hogy a második képről kijelölünk egy területet, és azt a lehető 28
Multimédiás adatbázisok
Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás
Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.
Regresszió Csorba János Nagyméretű adathalmazok kezelése 2010. március 31. A feladat X magyarázó attribútumok halmaza Y magyarázandó attribútumok) Kérdés: f : X -> Y a kapcsolat pár tanítópontban ismert
Support Vector Machines
Support Vector Machnes Ormánd Róbert MA-SZE Mest. Int. Kutatócsoport 2009. február 17. Előadás vázlata Rövd bevezetés a gép tanulásba Bevezetés az SVM tanuló módszerbe Alapötlet Nem szeparálható eset Kernel
Sergyán Szabolcs szeptember 21.
Éldetektálás Sergyán Szabolcs Budapesti Műszaki Főiskola Neumann János Informatikai Kar 2009. szeptember 21. Sergyán Sz. (BMF NIK) Éldetektálás 2009. szeptember 21. 1 / 28 Mit nevezünk élnek? Intuitív
Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.
Pontműveletek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. február 20. Sergyán (OE NIK) Pontműveletek 2012. február 20. 1 / 40 Felhasznált irodalom
Struktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
Adaptív dinamikus szegmentálás idősorok indexeléséhez
Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november
Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei
A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.
Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017. Vizuális feldolgozórendszerek feladatai Mesterséges intelligencia és idegtudomány Mesterséges intelligencia és idegtudomány Párhuzamos problémák
Numerikus integrálás
Közelítő és szimbolikus számítások 11. gyakorlat Numerikus integrálás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján 1. Határozatlan integrál
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
Gauss-Seidel iteráció
Közelítő és szimbolikus számítások 5. gyakorlat Iterációs módszerek: Jacobi és Gauss-Seidel iteráció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 ITERÁCIÓS
Láthatósági kérdések
Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok
Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)
Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék
Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló
Gépi tanulás a gyakorlatban. Bevezetés
Gépi tanulás a gyakorlatban Bevezetés Motiváció Nagyon gyakran találkozunk gépi tanuló alkalmazásokkal Spam detekció Karakter felismerés Fotó címkézés Szociális háló elemzés Piaci szegmentáció analízis
Algoritmusok és adatszerkezetek 2.
Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen
Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás
Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált
FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI
FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 8 VIII. REGREssZIÓ 1. A REGREssZIÓs EGYENEs Két valószínűségi változó kapcsolatának leírására az eddigiek alapján vagy egy numerikus
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL
LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény
7. Régió alapú szegmentálás
Digitális képek szegmentálása 7. Régió alapú szegmentálás Kató Zoltán http://www.cab.u-szeged.hu/~kato/segmentation/ Szegmentálási kritériumok Particionáljuk a képet az alábbi kritériumokat kielégítő régiókba
6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján
Közelítő és szimbolikus számítások 6. gyakorlat Sajátérték, Gersgorin körök Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján . Mátrixok sajátértékei
Panorámakép készítése
Panorámakép készítése Képregisztráció, 2009. Hantos Norbert Blaskovics Viktor Összefoglalás Panoráma (image stitching, planar mosaicing): átfedő képek összeillesztése Lépések: Előfeldolgozás (pl. intenzitáskorrekciók)
8. Pontmegfeleltetések
8. Pontmegfeleltetések Kató Zoltán Képfeldolgozás és Számítógépes Grafika tanszék SZTE (http://www.inf.u-szeged.hu/~kato/teaching/) 2 Példa: panoráma kép készítés 1. Jellemzőpontok detektálása mindkét
Programozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
A KLT (Kanade Lucas Tomasi) Feature Tracker Működése (jellegzetes pontok választása és követése)
A KL (Kanade Lucas omasi) Feature racker Működése (jellegzetes pontok választása és követése) Készítette: Hajder Levente 008.11.18. 1. Feladat A rendelkezésre álló videó egy adott képkockájából minél több
15. LINEÁRIS EGYENLETRENDSZEREK
15 LINEÁRIS EGYENLETRENDSZEREK 151 Lineáris egyenletrendszer, Gauss elimináció 1 Definíció Lineáris egyenletrendszernek nevezzük az (1) a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a
Vektorok, mátrixok, lineáris egyenletrendszerek
a Matematika mérnököknek I. című tárgyhoz Vektorok, mátrixok, lineáris egyenletrendszerek Vektorok A rendezett valós számpárokat kétdimenziós valós vektoroknak nevezzük. Jelölésükre latin kisbetűket használunk.
Függvények növekedési korlátainak jellemzése
17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,
Egyirányban láncolt lista
Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský
R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy
Gauss-eliminációval, Cholesky felbontás, QR felbontás
Közelítő és szimbolikus számítások 4. gyakorlat Mátrix invertálás Gauss-eliminációval, Cholesky felbontás, QR felbontás Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával
1/50. Teljes indukció 1. Back Close
1/50 Teljes indukció 1 A teljes indukció talán a legfontosabb bizonyítási módszer a számítástudományban. Teljes indukció elve. Legyen P (n) egy állítás. Tegyük fel, hogy (1) P (0) igaz, (2) minden n N
Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján. Típusok: felügyelt és felügyelet nélküli tanuló eljárások
Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján Típusok: felügyelt és felügyelet nélküli tanuló eljárások Különbség: előbbinél szükséges egy olyan tanulóhalmaz, ahol ismert a minták
8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer
8. Előadás Megyesi László: Lineáris algebra, 51. 56., 70. 74. oldal. Gondolkodnivalók Elemi bázistranszformáció 1. Gondolkodnivaló Most ne vegyük figyelembe, hogy az elemi bázistranszformáció során ez
Matematikai alapok és valószínőségszámítás. Középértékek és szóródási mutatók
Matematikai alapok és valószínőségszámítás Középértékek és szóródási mutatók Középértékek A leíró statisztikák talán leggyakrabban használt csoportját a középértékek jelentik. Legkönnyebben mint az adathalmaz
Képfeldolgozás jól párhuzamosítható
Képfeldolgozás jól párhuzamosítható B. Wilkinson, M. Allen: Parallel Programming, Pearson Education Prentice Hall, 2nd ed., 2005. könyv 12. fejezete alapján Vázlat A képfeldolgozás olyan alkalmazási terület,
First Prev Next Last Go Back Full Screen Close Quit
Többváltozós függvények (2) First Prev Next Last Go Back Full Screen Close Quit 1. Egyváltozós függvények esetén a differenciálhatóságból következett a folytonosság. Fontos tudni, hogy abból, hogy egy
Bevezetés a programozásba. 5. Előadás: Tömbök
Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és
Kétváltozós függvények differenciálszámítása
Kétváltozós függvények differenciálszámítása 13. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Kétváltozós függvények p. 1/1 Definíció, szemléltetés Definíció. Az f : R R R függvényt
Nemlineáris programozás 2.
Optimumszámítás Nemlineáris programozás 2. Többváltozós optimalizálás feltételek mellett. Lagrange-feladatok. Nemlineáris programozás. A Kuhn-Tucker feltételek. Konvex programozás. Sydsaeter-Hammond: 18.1-5,
Konjugált gradiens módszer
Közelítő és szimbolikus számítások 12. gyakorlat Konjugált gradiens módszer Készítette: Gelle Kitti Csendes Tibor Vinkó Tamás Faragó István Horváth Róbert jegyzetei alapján 1 LINEÁRIS EGYENLETRENDSZEREK
17. előadás: Vektorok a térben
17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett
Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében
Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció
22. GRÁFOK ÁBRÁZOLÁSA
22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is
Grafikonok automatikus elemzése
Grafikonok automatikus elemzése MIT BSc önálló laboratórium konzulens: Orosz György 2016.05.18. A feladat elsődleges célkitűzései o eszközök adatlapján található grafikonok feldolgozása, digitalizálása
1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba
Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai
SKETCH4MATCH, INTERAKTÍV TARALOM ALAPÚ KERESŐRENDSZER
Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia Intézet TUDOMÁNYOS DIÁKKÖRI DOLGOZAT SKETCH4MATCH, INTERAKTÍV TARALOM ALAPÚ KERESŐRENDSZER Szerzők: Pozsegovics Péter mérnök informatikus
Érdekes informatika feladatok
A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket
Kontrollcsoport-generálási lehetőségek retrospektív egészségügyi vizsgálatokhoz
Kontrollcsoport-generálási lehetőségek retrospektív egészségügyi vizsgálatokhoz Szekér Szabolcs 1, Dr. Fogarassyné dr. Vathy Ágnes 2 1 Pannon Egyetem Rendszer- és Számítástudományi Tanszék, szekersz@gmail.com
Az informatika kulcsfogalmai
Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés
II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés Nagyon könnyen megfigyelhetjük, hogy akármilyen két számmal elindítunk egy Fibonacci sorozatot, a sorozat egymást követő tagjainak
A PiFast program használata. Nagy Lajos
A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
A médiatechnológia alapjai
A médiatechnológia alapjai Úgy döntöttem, hogy a Szirányi oktatta előadások számonkérhetőnek tűnő lényegét kiemelem, az alapján, amit a ZH-ról mondott: rövid kérdések. A rész és az egész: összefüggések
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI
FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 9 IX. ROBUsZTUs statisztika 1. ROBUsZTUssÁG Az eddig kidolgozott módszerek főleg olyanok voltak, amelyek valamilyen értelemben optimálisak,
11. Előadás. 11. előadás Bevezetés a lineáris programozásba
11. Előadás Gondolkodnivalók Sajátérték, Kvadratikus alak 1. Gondolkodnivaló Adjuk meg, hogy az alábbi A mátrixnak mely α értékekre lesz sajátértéke a 5. Ezen α-ák esetén határozzuk meg a 5 sajátértékhez
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek
Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:
Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.
Lépések 1. tanító és teszt halmaz összeállítása / megszerzése 2. jellemzők kinyerése 3. tanító eljárás választása Sok vagy kevés adat áll-e rendelkezésünkre? Mennyi tanítási idő/memória áll rendelkezésre?
További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás
További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás Készítette: Dr. Ábrahám István Hiperbolikus programozás Gazdasági problémák optimalizálásakor gyakori, hogy
Térinformatikai adatszerkezetek
Térinformatikai adatszerkezetek 1. Pont Egy többdimenziós pont reprezentálható sokféle módon. A választott reprezentáció függ attól, hogy milyen alkalmazás során akarjuk használni, és milyen típusú műveleteket
Matematika (mesterképzés)
Matematika (mesterképzés) Környezet- és Településmérnököknek Debreceni Egyetem Műszaki Kar, Műszaki Alaptárgyi Tanszék Vinczéné Varga A. Környezet- és Településmérnököknek 2016/2017/I 1 / 29 Lineáris tér,
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 8. Előadás Dr. Kulcsár Gyula egyetemi docens Kereső algoritmusok alkalmazása
Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Raszterizáció OpenGL Mely pixelek vannak a primitíven belül fragment generálása minden ilyen pixelre Attribútumok (pl., szín) hozzárendelése
Gépi tanulás a gyakorlatban. Lineáris regresszió
Gépi tanulás a gyakorlatban Lineáris regresszió Lineáris Regresszió Legyen adott egy tanuló adatbázis: Rendelkezésünkre áll egy olyan előfeldolgozott adathalmaz, aminek sorai az egyes ingatlanokat írják
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Az objektum leírására szolgálnak. Mire jók? Sokszor maga a jellemző az érdekes: Tömörítés. Objektumok csoportosítására
Az objektum leírására szolgálnak Mire jók? Sokszor maga a jellemző az érdekes: pl.: átlagosan mekkora egy szitakötő szárnyfesztávolsága? Tömörítés pl.: ha körszerű objektumokat tartalmaz a kép, elegendő
Többváltozós, valós értékű függvények
TÖ Többváltozós, valós értékű függvények TÖ Definíció: többváltozós függvények Azokat a függvényeket, melyeknek az értelmezési tartománya R n egy részhalmaza, n változós függvényeknek nevezzük. TÖ Példák:.
C programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)
Mgr. Námesztovszki Zsolt A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI) Eötvös Loránd Tudományegyetem, Pedagógiai és Pszichológiai Kar Oktatásinformatikai rendszerek - szöveggyűjtemény Budapest, 2013.
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
6. Függvények. 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban?
6. Függvények I. Nulladik ZH-ban láttuk: 1. Az alábbi függvények közül melyik szigorúan monoton növekvő a 0;1 intervallumban? f x g x cos x h x x ( ) sin x (A) Az f és a h. (B) Mindhárom. (C) Csak az f.
Éldetektálás, szegmentálás (folytatás) Orvosi képdiagnosztika 11_2 ea
Éldetektálás, szegmentálás (folytatás) Orvosi képdiagnosztika 11_2 ea Geometrikus deformálható modellek Görbe evolúció Level set módszer A görbe evolúció parametrizálástól független mindössze geometriai
Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit
Vektorgeometria (2) First Prev Next Last Go Back Full Screen Close Quit 1. Tekintsünk a térben egy P (p 1, p 2, p 3 ) pontot és egy v = (v 1, v 2, v 3 ) = 0 vektort. Ekkor pontosan egy egyenes létezik,
Matematika A1a Analízis
B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Matematika A1a Analízis BMETE90AX00 Vektorok StKis, EIC 2019-02-12 Wettl Ferenc ALGEBRA
Képfeldolgozás Szegmentálás Osztályozás Képfelismerés Térbeli rekonstrukció
Mesterséges látás Miről lesz szó? objektumok Bevezetés objektumok A mesterséges látás jelenlegi, technikai eszközökön alapuló világunkban gyakorlatilag azonos a számítógépes képfeldolgozással. Számítógépes
GPK M1 (BME) Interpoláció / 16
Interpoláció Matematika M1 gépészmérnököknek 2017. március 13. GPK M1 (BME) Interpoláció 2017 1 / 16 Az interpoláció alapfeladata - Példa Tegyük fel, hogy egy ipari termék - pl. autó - előzetes konstrukciójának
X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ
X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ Ma az analóg jelek feldolgozása (is) mindinkább digitális eszközökkel és módszerekkel történik. A feldolgozás előtt az analóg jeleket digitalizálni kell.
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek
3. Előadás Megyesi László: Lineáris algebra, 47. 50. oldal. Gondolkodnivalók Determinánsok 1. Gondolkodnivaló Determinánselméleti tételek segítségével határozzuk meg a következő n n-es determinánst: 1
Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat
9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:
Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék
9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,
Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla
Kvadratikus alakok és euklideszi terek (előadásvázlat, 0. október 5.) Maróti Miklós, Kátai-Urbán Kamilla Az előadáshoz ajánlott jegyzet: Szabó László: Bevezetés a lineáris algebrába, Polygon Kiadó, Szeged,
Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével. MAJF21 Eisenberger András május 22. Konzulens: Dr.
Önálló labor beszámoló Képek szegmentálása textúra analízis segítségével 2011. május 22. Konzulens: Dr. Pataki Béla Tartalomjegyzék 1. Bevezetés 2 2. Források 2 3. Kiértékelő szoftver 3 4. A képek feldolgozása
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI Ebben a fejezetben aszimptotikus (nagyságrendi) alsó korlátot adunk az összehasonlításokat használó rendező eljárások lépésszámára. Pontosabban,
Babeş Bolyai Tudományegyetem, Kolozsvár Matematika és Informatika Kar Magyar Matematika és Informatika Intézet
/ Babeş Bolyai Tudományegyetem, Kolozsvár Matematika és Informatika Kar Magyar Matematika és Informatika Intézet / Tartalom 3/ kernelek segítségével Felügyelt és félig-felügyelt tanulás felügyelt: D =
SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ
ÓBUDAI EGYETEM Neumann János Informatikai kar Alba Regia Egyetemi Központ SZAKDOLGOZAT OE-NIK Hallgató neve: Berencsi Gergő Zsolt 2010. Törzskönyvi száma: T 000123/FI38878/S-N Tartalomjegyzék Tartalmi
Függvények Megoldások
Függvények Megoldások ) Az ábrán egy ; intervallumon értelmezett függvény grafikonja látható. Válassza ki a felsoroltakból a függvény hozzárendelési szabályát! a) x x b) x x + c) x ( x + ) b) Az x függvény
Képfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008
Képfeldolgozás 1. el adás. A képfeldolgozás m veletei Mechatronikai mérnök szak BME, 2008 1 / 61 Alapfogalmak transzformációk Deníció Deníció Geometriai korrekciókra akkor van szükség, ha a képr l valódi
Legkisebb négyzetek módszere, Spline interpoláció
Közelítő és szimbolikus számítások 10. gyakorlat Legkisebb négyzetek módszere, Spline interpoláció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
32. A Knuth-Morris-Pratt algoritmus
32. A Knuth-Morris-Pratt algoritmus A nyers erőt használó egyszerű mintaillesztés műveletigénye legrosszabb esetben m*n-es volt. A Knuth-Morris-Pratt algoritmus (KMP-vel rövidítjük) egyike azon mintaillesztő
A leíró statisztikák
A leíró statisztikák A leíró statisztikák fogalma, haszna Gyakori igény az, hogy egy adathalmazt elemei egyenkénti felsorolása helyett néhány jellemző tulajdonságának megadásával jellemezzünk. Ezeket az