Învață live online Computer Vision — Descoperă cele mai moderne tool-uri | Skillab

CURS LIVE ONLINE

COMPUTER VISION

TUDOR SABIN TOPOLEANU ML/AI Software Engineer
@ Softvision

Nivel Mediu
Diplomă de Absolvire
Diplomă de Participare
Sistem de notare
Software adițional necesar

PERIOADA DE DESFĂȘURARE A CURSULUI

DATA:

În curând!

DURATA:

20 lecții, 10 săptămâni
Marți & joi, 19:00-20:30

Învață noțiuni și practici avansate de Computer Vision pentru a dezvolta proiecte în… lumea reală.

La cursul predat de Tudor Sabin Topoleanu, ML/AI Software Engineer
@ Softvision are 7 ani de experiență în Computer Vision vei înțelege cum se folosesc cele mai avansate tool-uri din domeniu, dar și cum lucrezi cu diferite tipuri de rețele și limbaje pentru a deveni autonom în proiectele tale.

Acest curs este pentru tine, dacă ești:

  • Pasionații de Machine Learning & programare

    Persoane care au o bază solidă în machine learning și programare și doresc să învețe noțiuni avansate de computer vision

  • Cercetători de date

    Profesioniști care lucrează cu date și doresc să învețe cum să aplice tehnici de computer vision pentru a analiza și procesa date vizuale

  • Inginerii de software

    Cei interesați să dezvolte aplicații care implică computer vision, cum ar fi recunoașterea imaginilor, realitatea augmentată, realitatea virtuală și robotica

  • Profesioniști în domeniul AI

    Persoane care lucrează în proiecte de inteligență artificială și vor să dezvolte skill-uri de computer vision în activitatea lor

50% TEORIE. 50% PRACTICĂ. 100% SKILL-URI NOI

 
  • Învață cele mai folosite noțiuni și programe

    OpenCV, Seaborn/Matplotlib, PyTorch și TensorFlow/Keras, Vision Transformer, modele de vedere și limbaj, rețele generative adversariale (GAN), flux optic.

  • Aplică tehnici avansate

    În cele 20 de lecții, vei avea de realizat 10 teme pentru care vei primi feedback, ateliere practice, demonstrații și exemple. La finalul acestora, vei avea o înțelegere aprofundată asupra modului în care poți aplica Computer Vision în proiecte din lumea reală.

SUBIECTELE PE CARE LE VEI STUDIA

  1. Networks

    Înțelege diferențele și aplicabilitatea rețelelor: auto-codificatoare (AutoEncoders), generativ-adversare (GANs), transformatoare, neuronale convoluționale, neuronale artificiale.

  2. Visual Manipulation

    Învață să aplici segmentarea imaginilor și detectarea obiectelor, procesarea, îmbunătățirea și filtrarea imaginilor, extragerea și potrivirea caracteristicilor imaginilor, segmentarea semantică și a instanțelor.

  3. Machine Learning

    Obține o înțelegere aprofundată a învățării prin transfer și distilare, învățării auto-supervizate și semi-supervizată și realitate augumentată.

Despre lector:

TUDOR SABIN TOPOLEANU

  • ML/AI Software Engineer @ Softvision.
  • Machine Learning R&D Software Engineer @ Xperi Corp.
  • Research and Development Engineer @ Siemens.
  • Application Developer @ IBM.
  • Stack: PyTirch, Python, NumPy, Pandas, Scikit-Learn.
  • 7 ani de experiență în Computer Vision, ML/AI, Deep Learning.

Programa cursului

  • 01

    Ce este Computer Vision?

    • Introducere în Computer Vision (CV)
    • Aplicațiile Computer Vision
    • Istoria Computer Vision
    • Bazele limbajului Python (tipuri de date, operatori, comenzi pentru controlul rulării)
    • Librării pentru Computer Vision: OpenCV, Seaborn, PyTorch
    • Exemple practice: Deschiderea și afișarea imaginilor, procese fundamentale de prelucrare. Exemplu de segmentare și detecția obiectelor.

    Temă de casă:
    Studiați resursele web primite (tutoriale și exemple)

  • 02

    Procesarea, îmbunătățirea și filtrarea imaginilor

    • Ce sunt imaginile? Cum sunt achiziționate imaginile? Formate de stocare
    • Noțiuni fundamentale: nivel de expunere, nivel de amplificare, timp de expunere, lungime focală, focus, câmp de vizualizare, proiecție 3D-2D
    • Tehnici de procesare: matrice Bayer, straturi, măști, histograme
    • Tehnici de îmbunătățire: funcții elementare, funcții globale și locale, funcții nucleu, filtre liniare, filtre non-liniare
    • Exemplu practic: Exemplu de procesare și îmbunătățire cu OpenCV, Kornia, Torchvision

    Temă de casă:
    Implementați cod pentru procesarea și îmbunătățirea imaginilor:

  • 03

    Segmentarea imaginilor și detectarea obiectelor

    • Prag de delimitare, segmentare pe regiuni sau margini
    • Detecția obiectelor, recunoașterea și urmărirea obiectelor
    • Histograma Gradienților Orientați (HOG)
    • Transformata Fourier și cascade Wavelet (Haar, Daubechies, Coiflet, Morlet, Meyer)
    • Exemplu practic: Detecție margini, cascade Haar, funcții nucleu (eșantionare, blur)

    Temă de casă:
    Implementați cod pentru:

  • 04

    Extragerea și potrivirea caracteristicilor imaginilor

    • Transformarea caracteristicilor invariantă la scară (Scale invariant feature transform SIFT)
    • Funcție robustă accelerată (Speeded up robust feature SURF)
    • Histograma locației și orientării gradienților (GLOH), Histograma locală bazată pe energie (LESH)
    • Exemplu practic: Detecție de colțuri, exemplu SIFT pentru detecție de puncte cheie, exemplu SURF

    Temă de casă:
    Implementați cod pentru:

    • Un exemplu alternativ pentru metoda SIFT sau SURF
    • Exemplu de procesare cu GLOH/LESH pentru dataset-ul google street view numbers (SVHN http://ufldl.stanford.edu/housenumbers/) încercați să grupați imaginile în funcție de numere

  • 05

    Atelier practic 1

    • Recapitularea și soluțiile temelor 1-4
    • Proiect practic partea 1:
      • Cum să programezi un cadru pentru Computer Vision
      • Introducere: Cadru modular pentru Computer Vision
      • Exercițiu de programare ghidată, începutul proiectului. Vom programa noțiunile învățate anterior
      • Vizualizare cu Seaborn (sau Plotly)
      • Teste de unitate în Python, determinism și funcții generatoare pentru testare

    Temă de casă:
    Implementați o rețea neuronală cu structură conectată complet pentru clasificare, antrenați rețeaua și evaluați rezultatele rețelei pentru unul din următoarele seturi de date disponibile în PyTorch (https://pytorch.org/vision/stable/datasets.html):

  • 06

    Introducere în rețele neuronale artificiale

    • Introducere: Perceptron/Neuron, funcții de activare, straturi și structuri
    • Straturi conectate complet, perceptron multi-strat și aproximatori de funcții generale
    • Rețele cu propagare înainte, propagarea înainte a semnalului
    • Propagarea înapoi a erorii și reducerea gradientului. Diferențiabilitate, separarea datelor in subseturi train/valid/test, ce reprezintă o epocă
    • Introducere în librăria de rețele neuronale: PyTorch
    • Tensori, eșantioane lot, reducerea stohastică a gradientului. Evoluția optimizatorilor
    • Metrici specifice evaluării problemelor de clasificare
    • Exemplu practic: Implementarea unul perceptron multi-strat (MLP), învățare/antrenare și evaluarea rețelei. Introducere Pytorch-Lightning

    Temă de casă:
    Implementați o rețea neuronală cu structură conectată complet pentru clasificare, antrenați rețeaua și evaluați rezultatele rețelei pentru unul din următoarele seturi de date disponibile în PyTorch (https://pytorch.org/vision/stable/datasets.html):

  • 07

    Rețele neuronale convoluționale

    • Introducere în rețele convoluționale: Avantaje, funcționare, straturi necesare
    • Operații de convoluție, sub-eșantionare, supra-eșantionare; Concepte, intuiții, implementări (PyTorch)
    • Învățarea rețelelor convoluționale: procesarea datelor și augmentări, regularizare
    • Estimarea învățării: supra adaptare, sub adaptare, generalizare
    • Structuri micro și macro. Piramide de caracteristici
    • Istoria rețelelor convoluționale: Cognitron (1988), LeNet, AlexNet (2012), VGG, ResNet
    • Rețele convoluționale moderne: FocalNet și ConvNext v1 și v2
    • Exemplu practic: Vizualizare comparativă a caracteristicilor piramidale între rețele pre-antrenate mai vechi VGG/ResNet și mai recente FocalNet/ConvNext v2 (folosind librăria Timm)

    Temă de casă:
    Implementați o rețea neuronală cu structură conectată complet pentru clasificare, antrenați rețeaua și evaluați rezultatele rețelei pentru unul din următoarele seturi de date disponibile în PyTorch (https://pytorch.org/vision/stable/datasets.html):

  • 08

    Rețele auto-codificatoare (AutoEncoders) și rețele generativ-adversare (GANs)

    • Modele deterministe și generative
    • Auto-codificatoare, structuri codificator-decodificator (U-Net, HRNet, ConvNextv2, etc)
    • Atac adversar
    • Rețele Generativ-Adversare (GANs)
    • Auto-codificatoare variaționale (VAEs)
    • Difuzie stabilă, difuzie rece
    • Funcții cost specifice învățării modelelor generative: Divergență Kulback-Leibler, distanță Wasserstein, Perceptual Loss etc
    • Metrici specifice evaluarii calității imaginilor: L1,L2, PSNR, SSIM/MS-SSIM, etc

    Temă de casă:
    Utilizați o rețea GAN sau Auto-codificator pre-antrenat pentru a realiza:

    • O aplicație simplă de transfer de stil
    • O aplicație simplă de sinteză imagini

  • 09

    Atelier practic 2

    • Recapitularea și soluțiile temelor 6-8
    • Proiect practic partea 2:
      • Exercițiu de programare ghidată, continuăm proiectul adăugând: perceptron multi-strat (MLP), CNN, auto-codificator simplu
      • Comparații cu atelierul 1
      • Exercițiu de programare ghidată transfer de stil, GAN
  • 10

    Rețele transformatoare, mecanismul de auto atenție, rețele vedere și limbaj

    • Google Transformer (Vaswani, 2017). Explicarea transformatorului standard cu articolul științific prin care a fost introdus (Attention is all you need https://paperswithcode.com/paper/attention-is-all-you-need).
    • Mecanismul de auto-atenție. Alte tipuri de atenție (local/global, încrucișată, internă/externă, etc)
    • Transformatoare pentru vedere (ViT) și derivate MLP, spectrale
    • Exemple practice: Transformator pentru vedere (ViT), rețele hibride pentru vedere (LeVit)

    Temă de casă:
    Utilizați un transformator pre-antrenat (PyTorch/Huggingface) pentru a îl adapta la una din următoarele seturi de date:

    • Transformator pentru vedere pentru clasificare: Cifar 10/100, DTD sau asemănător
    • Rețele hibride (conv și atenție, LeViT, CoAT, EdgeNeXT, MobileViT etc): Cifar 10/100, DTD sau asemănător
    • Transformator pentru vedere afișarea caracteristicilor (comparați cu o rețea convoluțională pre-antrenată asemănător)

  • 11

    Detectarea obiectelor cu rețele neuronale

    • Structura generală a detectoarelor de obiecte neuronale: corp, capete. Detectoare cu 1 stagiu (SSD) și 2 stagii. Principii de funcționare: piramide de caracteristici etc
    • Detectoare de obiecte pe bază de rețele convoluționale (R-CNN, Faster R-CNN, YOLO, etc)
    • Detectoare de obiecte pe bază de rețele transformatoare (Swin, FocalNet, etc)
    • Detectoare de obiecte pe bază de rețele hibride (DETR și derivate)
    • Metrici specifice detectării obiectelor
    • Fundamentele urmăririi obiectelor.Filtre Kalmann și filtre de particule
    • Exemplu practic: Exemple cu detectoare de obiecte (pre-antrenate)

    Temă de casă:
    Implementați:

    • O aplicație pentru detectarea obiectelor din imagini diverse (selectați imaginea și procesați prin rețea, afișați detecțiile rețelei)
    • O aplicație pentru detectarea obiectelor utilizând un Transformator pentru vedere și limbaj pre-antrenat
    • O aplicație pentru detectarea obiectelor folosind rețele pre-antrenate pentru a produce teste de tip Captcha (selectați imaginile care conțin acest obiect)

    Notă temă: Rețeaua pentru detectarea obiectelor va fi pre-antrenată și poate fi aleasă după preferințe.

  • 12

    Segmentarea Semantică

    • Ce este segmentarea semantică? Concepte, metrici și definiții
    • Rețele complet convoluționale
    • Studiu de caz: Arhitectura U-Net și derivatele sale (Attention U-Net, U-Net++, Swin U-Net, TransU-Net)
    • Arhitectura HR-Net
    • Transformatoare pentru segmentare. SegFormer
    • Exemplu practic: Segmentare semantică cu rețele complet convoluționale (U-Net)

    Temă de casă:
    Implementați:

    • O aplicație de segmentare semantică folosind o rețea pre-antrenată la alegere pentru un set de date la alegere. Afișați segmentările obținute
    • O aplicație de segmentare semantică folosind o rețea pre-antrenată pentru clasificare (la alegere) și adaptați-o pentru segmentare semantică pentru un set de date la alegere. Afișați segmentările obținute

  • 13

    Segmentarea Instanțelor

    Temă de casă:
    Implementați, pornind de la tema anterioară de segmentare, comparați rezultatele celor două tipuri de segmentări:

    • O aplicație de segmentare a instanțelor folosind o rețea pre-antrenată la alegere pentru un set de date la alegere. Afișați segmentările obținute
    • O aplicație de segmentare a instanțelor folosind o rețea pre-antrenată pentru detectare obiecte (la alegere) și adaptați-o pentru segmentarea instanțelor pentru un set de date la alegere. Afișați segmentările obținute

  • 14

    Atelier practic 3

    • Recapitularea și soluțiile temelor 10-13
    • Proiect practic partea 3:
      • Exercițiu de programare ghidată, continuăm proiectul adăugând: îmbunătățirea rețelelor implementate la atelierul 2
      • Exercițiu 2: Adăugăm auto-atenție densă (varianta standard) și convoluțională
      • Exercițiu 3: Rețea cu rutare/selecție
      • Modularizare: O rețea pentru mai multe scopuri
  • 15

    Învățare prin transfer și distilare

    Temă de casă:
    Folosiți o rețea neuronală convoluțională modernă, antrenați rețeaua în mod folosind învățarea prin transfer sau distilarea cunoștințelor de la o rețea pre-antrenată și evaluați rezultatele rețelei pentru unul din următoarele seturi de date disponibile în PyTorch (https://pytorch.org/vision/stable/datasets.html) sau Huggingface (https://huggingface.co/datasets) comparați cu rezultatele de la temele sesiunilor 6-8:

  • 16

    Învățare auto-supervizată, învățare semi-supervizată

    • Auto-supervizare prin contrastare: SimCLR și MoCo,Barlow-Twins, BYOL, PaPi, SynCSE (https://paperswithcode.com/paper/contrastive-learning-of-sentence-embeddings)
    • Auto-supervizare prin auto-codificare și mascare: MAE, simMIM, ConvMAE, R-MAE, DINO, etc
    • Învățare semi-supervizată, pre-învățare și adaptare. Metodele Fix-Match și Mix-Match
    • Exemple practice: Exemple practice cu o rețea pre-antrenată supervizat și nesupervizat (aceeași rețea)

    Temă de casă:
    Folosiți o rețea neuronală convoluțională modernă, antrenați rețeaua în mod auto-supervizat pornind de la o rețea ne-antrenată (caz în care va trebui antrenată auto-supervizat) și pre-antrenată și evaluați rezultatele rețelei pentru unul din următoarele seturi de date disponibile în PyTorch (https://pytorch.org/vision/stable/datasets.html) sau Huggingface (https://huggingface.co/datasets) comparați cu rezultatele de la temele sesiunilor 6-8:

  • 17

    Vision & Language Transformer. Vedere și limbaj

    • Vedere și limbaj computerizat. Avantaje și abordări
    • Ansamble neuronale pentru generare text-imagine: CLIP, DALL-E, CoCa etc
    • Exemple practice: Rețele vedere și limbaj (LiT, CLIP, BLIP etc)

    Temă de casă:
    Implementați:

    • O aplicație pentru descrierea imaginilor folosind o rețea pre-antrenată vedere limbaj
    • O aplicație pentru descrierea imaginilor folosind o rețea vedere limbaj modulară formată din: rețea vedere pre-antrenată, modul de încorporare text pre-antrenat

  • 18

    Atelier practic 4

    • Recapitularea și soluțiile temelor 15-17
    • Proiect practic partea 4:
      • Exercițiu de programare ghidată, finalizăm proiectul adăugând: învățare auto-supervizată și învățare prin transfer și distilare
      • Exercițiu: Rețea simplă de vedere și limbaj
  • 19

    Computer Vision și realitate augmentată/virtuală

    • Despre realitatea virtuală și augmentată
    • Tehnici de realitate augmentată. Detectarea orientării privirii și capului, randare foveală etc
    • Aplicațiile realității augmentate
    • Exemple practice: Studiu de caz, sisteme de realitate augmentată

    Temă de casă:

    • Identificați aplicații care să fie utile pentru a fi folosite în realitatea virtuală
    • Descrieți o aplicație practică ce se încadrează în următoarea descriere: ”realitate augmentată pentru robotică”

  • 20

    Subiecte avansate și direcții viitoare

    • Învățare din puțini pași și învățare din primul pas
    • Învățare activă și meta-învățare
    • Metode de auto-augmentare
    • Modele multi-modale: Flamingo, Perciever, etc
    • Modele fundamentale (Foundation models)
    • Exemple practice:Învățare din primul pas, modele multi-modale, metode de auto-augmentare

    Temă de casă:
    Alegeți una din temele de interes discutate și realizați o scurta evaluare a stării actuale a cercetării pentru acea temă, analizați 5-6 articole recente și elaborați despre starea actuală pe baza acestora. Alegeți un proiect personal pentru a continua să programați.

Află mai multe

Completează formularul de înregistrare și un consultant Skillab te va contacta cât de curând posibil pentru a-ți oferi mai multe informații despre conținut și taxa de participare.

 
 
 
Câmp obligatoriu
Află mai multe