Számítógépes látórendszerek

A tantárgy angol neve: Computer Vision Systems

Adatlap utolsó módosítása: 2023. január 18.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Villamosmérnöki MSc, Irányító és látórendszerek főspecializáció
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIMA19   2/1/0/v 5  
3. A tantárgyfelelős személy és tanszék Dr. Szemenyei Márton,
4. A tantárgy előadója

Dr. Szemenyei Márton

6. Előtanulmányi rend
Kötelező:
NEM
(TárgyEredmény( "BMEVIIIMA07", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIIIMA07", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:
Matematika (Lineáris Algebra)
7. A tantárgy célkitűzése

A tantárgy célja a hallgatókat megismertetni a számítógépes látás létező technikáival, mind a rutinszerűen megoldható egyszerűbb, mind a bonyolultabb módszerekkel, egyensúlyban tartva az elméleti és gyakorlati kérdéseket. Célunk azt biztosítani, hogy a hallgatók a kapott ismeretek alapján a későbbiekben képesek legyenek a tanult módszerek alternatíváit a választáshoz szükséges mértékben megérteni, mind az elmélet, mind a praktikum szempontjából. A tematikát a két- és háromdimenziós látás, a tanuló látórendszerek és a képfeldolgozó HW megválasztásának kérdései szerint tagoljuk.

8. A tantárgy részletes tematikája

Előadások: 

1. Bevezetés, a számítógépes látás alapfeladatai és problémái, szemantikus gát. Képérzékelés alapjai, emberi látás, fotodióda, CCD, CMOS, színlátás. Képi zajok és hibák forrása, homályosság, fókusz, képtárolási technikák. Színkomponensek szerepe, színterek. Képjavítási eljárások, intenzitástranszformációk, hisztogram, hisztogramtranszformációk.

2. Szűrések képtartományban, konvolúció, simító, élesítő és élkereső szűrések, nemlineáris szűrők. Éldetektálás, Canny algoritmus. Képi matematika, interpolációs technikák, illesztések. Képfeldolgozás a frekvenciatartományban, 2D Fourier transzformáció, képi spektrum vizsgálata. Szűrések frekvenciatartományban, ideális és egyéb szűrők tulajdonságai. Osztályozás spektrum alapján, periodikus zajok vizsgálata. DCT, JPEG tömörítés, Wiener-dekonvolúció.

3. Képjellemzők fajtái és kinyerése. Mintaillesztés, hasonlósági metrikák. Sarokdetektálás, lokális struktúra mátrix, KLT, Harris. Invarianciák transzformációkra, SIFT, ORB. Osztályozás módszerei: Haar-jellemzők, Viola-Jones, Bag of Visual Words, Deformable parts. Követés megoldásai: Pixel-alapú követés, Optical flow, LK és Farneback módszerek. Iteratív és piramis optical flow. HMM és Kálmán-szűrő alkalmazása, objektumpárosítás affinitás alapján.

4. Szegmentálási módszerek csoportosítása. Intenzitás alapú szegmentálás, küszöbözés, hisztogram-alapú megoldások. Klaszterezés módszerei, k-Means, MoG, Mean-shift. Régiónövesztés, Split & Merge, SRM. Watershed, gráfvágás, mozgásszegmentálás.

5. Bináris képek feldolgozása, morfológiai alapműveletek, nyitás, zárás, kontúrkeresés. Távolság és szomszédosság, Jordan-tulajdonság. Csontvázasítás. Bináris objektumleírók, Euler-szám, lenyomat, pozíció, orientáció. Objektumszámlálás és -címkézés. Hough transzformáció.

6. Gépi tanulás alapjai, tanuló rendszerek felépítése, tanulás típusai. Példák tanuló rendszerekre, kNN, SVM. Felügyelet nélküli tanulás, Eigenfaces. Neurális hálózatok, tanulás alapvető nehézségei, overfitting, adatok minősége. Felügyelt tanulás lépései. Perceptron modell, döntésfüggvény.

7. Hibafüggvények, gradiens módszer, magasabb rendű módszerek. MLP és backpropagation. Konvolúciós hálók felépítése. Híres architektúrák, VGG, Inception, ResNet, DenseNet, EfficientNet. Neurális hálók vizualizációja, adversarial támadások. Deep Learning a gyakorlatban, Konvergencia biztosítása, overfitting elkerülése. Hiperparaméterek keresése, modelltömörítés, ritkítás és együttesek.

8. Detektáló architektúrák, R-CNN variánsok, YOLO. Fontos metrikák és adatbázisok, anchor-alapú és anchor nélküli megoldások. Mask- és egyéb R-CNN kiegészítések. Szegmentáló módszerek, U-Net, felskálázási technikák. ASPP és CRF kiegészítések.

9. Videók feldolgozása, fúziós szintek, 3D konvolúció. Visszacsatolt architektúrák, RNN, BPTT, eltűnő gradiensek. LSTM és GRU, puha figyelem megoldások. Ön-figyelem, és vision-transformer megoldások.

10. Projektív geometria alapjai, transzformáció típusok és tulajdonságaik. Képalkotás geometriája, pinhole kamera modell, külső és belső paraméterek. Kamerkalibrációs módszerek, 3D markeres és sakktáblás megoldás, önkalibráció. Sztereó elrendezés, epipoláris geometria, esszenciális, fundamentális mátrix. Sztereó kalibráció, rektifikáció.

11. Diszparitás fogalma és meghatározására való módszerek, BM, SGBM, BP. 3D rekonstrukció és invarianciái, gyakorlati esetek. SLAM és SfM, többnézetű rekonstrukció. 3D információk feldolgozása, tárolási, ábrázolási módszerek, voxel, pontfelhő, mesh. Szűrések, szomszédkeresés, kd-fa. Szegmentációs módszerek, RANSAC Lokális és globális jellemzők, regisztráció. Mélytanuló technikák.

12. Hardveres gyorsitás paradigmái, SIMD architektúrák. GPU hardver felépítése, SM. GPu programozási nyelvek, SL és GPGPU megoldások. CUDA nyelv alapjai: futási és memóriamodell, hardveres lehetőségek kihasználása.

13. Egyéb képfeldolgozó hardverek: TPU felépítése, szisztolikus tömb, architektúrák, VPU megoldások. Programozható hardverek alapjai, FPGA és szeletek felépítése, tervezés folyamata. Adatutak rendszere, szuperskalár és újrakonfigurálható csővezeték.

Gyakorlatok: 

1. Képek írása/beolvasása, képjavítás, szűrések, színtér- és hisztogramtranszformációk, küszöbözés, egyszerű szegmentáló eljárások (klaszterezés, régiónövelés)

2. Képjellemzők kinyerése, él- és sarokdetektálás, Hough-transzformáció. Bináris képek feldolgozása, nyitás-zárás, objektumok számlálása, leírása és azonosítása

3. Videófolyam feldolgozása, objektumkövetés optikai áramlás segítségével, mozgásdetektálás adaptív háttérmodell segítségével

4. Mély neurális hálózatok létrehozása és tanítása osztályozási problémákra, tanítás, validáció, hiperparaméterek hangolása

5. Kamerakalibráció elvégzése, sztereó kalibráció végrehajtása, 3D rekonstrukció elvégzése, szegmentáció 3D-ben

6. Konzultációs alkalom a házi feladathoz

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás, egyéni vezetett gyakorlat
10. Követelmények

Szorgalmi időszakban: Az aláírás megszerzése az alábbi két követelmény teljesítésével lehetséges:

1. A félév során kiadott két otthoni feladat megoldásának eredményes beadása (értékelés: elfogadva/elutasítva).

2. Összegző értékelés: egy darab zárthelyi eredmények (min 40%) megírása.

Vizsgaidőszakban: A hallgatók a félévközi jegyet egy írásbeli vizsgazárthelyi megírása során szerzik. A zárthelyin szerzett pontszám a vizsgajegybe 20%-ban számít bele. Az érdemjegyet az alábbi ponthatárok alapján számítjuk:

0-39%: elégtelen

40-54%: elégséges

55-69%: közepes

70-84%: jó

85-100%: jeles 

11. Pótlási lehetőségek

A félév során lehetőséget adunk a nagyzárthelyi pótlására. A nagyzárthelyi a pótlási héten nem pótolható. Mindkét házi feladat a pótlási héten is beadható.

12. Konzultációs lehetőségek Igény esetén előzetesen egyeztetett időpontban konzultációt biztosítunk.
13. Jegyzet, tankönyv, felhasználható irodalom

1. Kiadott jegyzet és előadásfóliák

2. John C. Russ, The Image Processing Handbook, CRC Press, 2017, https://doi.org/10.1201/b18983

3. Ian Goodfellow and Yoshua Bengio and Aaron Courville, Deep Learning, MIT Press, 2016, https://www.deeplearningbook.org/

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra10
Felkészülés zárthelyire20
Házi feladat elkészítése25
Kijelölt írásos tananyag elsajátítása20
Vizsgafelkészülés33
Összesen150
15. A tantárgy tematikáját kidolgozta Dr. Szemenyei Márton, adjunktus, IIT