Git Product home page Git Product logo

sc-2022-siit's Introduction

sc-2022-siit

Repozitorijum kursa: Soft Computing
Smer: Softversko inženjerstvo i informacione tehnologije
Školska godina: 2022/2023

sc-2022-siit's People

Contributors

vdragan1993 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

dimitrijepetrov

sc-2022-siit's Issues

Klasifikacija slika na osnovu istih lica i pravljenje predikcija za pol, godine i emociju lica

Tim

Teodor Sakal Francišković, SW22/2019

Asistent

Milica Škipina

Definicija problema

Prepoznavanje ljudskih lica sa slika i njihovo grupisanje u zavisnosti od samog lica, odnosno grupisanje svih slika na kojima se nalazi jedna određena osoba u jedan direktorijum. Pravljenje predikcija za godine, pol i emocije detektovanih lica.

Motivacija problema

Motivacija iza rešavanja ovog problema se pojavila kao potreba fotografa, koji fotografiše različite proslave, da se programski grupišu uslikane slike u različite foldere, kako se pri samom štampanju i prodavanju slika iste ne bi morale raspoređivati ručno, u zavisnosti ko se nalazi na kojoj slici.

Skup podataka

Privatan skup podataka, par stotina slika sa venčanja.

Metodologija

Prvobitno se učitavaju sve postojeće slike. Zatim se pomoću MTCNN neuronske mreže detektuju lica sa slika. Pomoću FFT-a se vrši pretprocesiranje lica, odnosno sklanjaju se lica koja su previše blurry. Zatim se prolazi kroz najoštrija lica i vrši se njihovo klasterovanje sa ostalim detektovanim licima pomoću kosinusne sličnosti i FaceNet neuronske mreže (posmatraju se njihovi vector embedings dužine 128 brojeva, koji reprezentuju svako lice). Nakon što su lica klasterovana, vrši se upis originalnih slika po folderima u zavisnosti od lica koja se nalaze u tim slikama (za svaku sliku je zapamćeno koja lica su na toj slici pomoću rečnika). Nakon klasterovanja, detektuju se godine, pol i emocije osoba pomoću DeepFace-ove biblioteke (koristeći VGG-Face), koja vrši analizu svakog lica i u slučaju pola i godina daje konkretan rezultat predikcije, a u slučaju emocija, daje procentualnu sigurnost za svaku od emocija koje neuronska mreža podržava.

Evaluacija

Kada je u pitanju evaluacija klasifikacije lica po folderima, nije moguće navesti konkretnu metriku jer nije poznat ukupan broj osoba, tako da će se evaluirati opisnom metrikom.
Za evaluaciju godina i pola će se koristiti accuracy, dok će se za evaluaciju emocija koristiti f1 score.

Detekcija lica i praćenje pogleda

Tim:
Đorđević Mihajlo sw34/2019
Stanivuk Aleksa sw29/2019

Asistent: Milica Škipina

Definicija problema: Realtime detekcija lica i praćenje pogleda i detekcija treptanja, ukoliko je prethodno prepoznato da postoji lice.

Motivacija: Osobe sa otežanom ili onemogućenom koordinacijom pokreta ruku bi na ovaj način mogle da upravljaju računarom bez potrebe da koriste miš ili druge upravljačke hardverske uređaje, već samo kameru.

Metodologija:
Obrada videa pomoću opencv biblioteke
Detekcija lica pomoću neuronske mreže korišćenjem tensorflow-a
Detekcija očiju pomoću facial mark points-a (dlib biblioteka)
Detekciju treptanja
Detekcija pogleda (kuda su oči usmerene)
Primena thresholding-a radi razdvajanja zenice i irisa od ostatka
Manipulacija okruženjem i izdvojenom zonom od interesa radi dobijanja preciznijih informacija

Evaluacija: Performanse će se evaluirati postavljanjem u odnos uspešno detektovanih željenih pogleda (i treptanja) sa ukupnim brojem usmerenih pogleda (i treptanja). Pošto je realtime detakcije, korisnik ima mogućnost da odabere koji je “pokret” uradio i time se proverava da li je sistem uspešno ili pogrešno izvršio detekciju.

Simulacija vožnje upotrebom NEAT algoritma

Tim
Jovan Jovančević SW 01/2019
Zorica Vuković SW 21/2019

Asistent
Milica Škipina

Definicija problema
Potrebno je napraviti sistem koji će naučiti na koji način vozila treba da se kreću po 2D mapi kako ne bi sišli sa iste. Takođe je potrebno detektovati i koliziju između automobila ukoliko do toga dođe.

Skup podataka
Za kretanje vozila po mapi, korišćen je ručno kreiran skup 2D mapa iz ptičije perspektive pri čemu su staze na mapama različite težine.

Metodologija
Biće kreirana PyGame aplikacija koja se sastoji iz dve faze.

  • Prva je učenje vozila da se kreću po mapi bez izlaska sa staze uz korišćenje NEAT algoritma. Detekcija samog puta od ostatka slike će biti realizovana uz pomoć morfoloških operacija za obradu slike (OpenCV biblioteka). Izlaz iz ove faze će biti najbolje istrenirana (winner) jedinka u poslednjoj generaciji.
  • Ulaz u drugu fazu su dve winner jedinke koje se ispravno kreću po stazi na različit način, pa je zbog toga moguća njihova međusobna kolizija. Detekcija kolizije će biti odrađena na dva načina:
    • auto kojim upravljamo nema nikakvo znanje o poziciji drugog auta na mapi, pa se detekcija vrši samo na osnovu morfološke obrade slike;
    • auto zna poziciju drugog auta na mapi, pa je auto već u startu detektovan i kolizija se može jednostavno utvrditi (ovaj način je ostavljen kako bi se prikazalo kretanje vozila u punoj brzini).

Evaluacija
Metrika evaluacije biće količnik pređenog puta i vremena, pri čemu će za svaku mapu biti postavljen isti broj generacija za treniranje.

GitHub repozitorijum
https://github.com/jovancevic123/self-driving-cars-NEAT

Kontrolisanje simulacije helikoptera pomoću prepoznavanja govora i detekcije šake

Tim
Pavle Glušac SW 19/2019

Asistent
Milica Škipina

Definicija problema
Potrebno je napraviti sistem koji će preko kamere snimati video i na tom videu detektovati poziciju ključnih tačaka na korisnikovoj šaci. Pomoću datih tačaka, potrebno je klasifikovati gesture koji korisnik pravi kao i uglove (roll, pitch i yaw šake). Takođe je potrebno da sistem može snimati govor preko mikrofona kako bi se omogućilo kontrolisanje pomoću ključnih reči.

Skup podataka
Za klasifikovanje gestures šake koristiću skup podataka koji sam sam napravio, dok ću za klasifikaciju govora koristiti speech commands dataset

Metodologija
Biće napravljena PyQt aplikacija koja će podržavati snimanje govora i videa i imaće konzolu.
U konzoli je moguće izabrati režim (audio/video).

Za video, procedura je sledeća:

  1. Uraditi preprocessing slike
  2. Sliku proslediti pretreniranom mediapipe modelu koji vraća keypoints šake
  3. Uraditi postprocessing keypointsa
  4. Proslediti keypoints NN koju sam istrenirao na svom datasetu za gesture
  5. Izračunati potrebne uglove
  6. Proslediti rezultate podsistemu za upravljanje simulacijom

Za audio, procedura je sledeća

  1. Uraditi preprocessing audia
  2. Proslediti rezultat CNN modelu koji će biti istreniran nad speech command datasetu
  3. Proslediti rezultate podsistemu za upravljanje simulacijom

Svi modeli biće implementirani u PyTorch radnom okviru.

Evaluacija
Za svaki od modela koristi se 80-10-10 split podataka i koristi se crossentropy loss. Koristiće se accuracy kao metrika.

Prepoznavanje pitanja i odgovora iz kviza "Potera"

Tim:

Aleksandra Nedić SW-27/2019
Dunja Stojanov SW-30/2019

Asistent:

Milica Škipina
Dragan Vidaković

Definicija problema:

Procesovanje videa radi prepoznavanja teksta pitanja i odgovora (OCR), kao i prepoznavanja koji je odgovor tačan u epizodi kviza "Potera" uz pomoć konvolutivnih neuronskih mreža.

Skup podataka

Skup podataka ćemo prikupiti sami iz emitovanih epizoda kviza "Potera". Skup podataka ćemo podeliti na test i train skup (80/20).

Metodologija

  1. Sakupljanje skupa za treniranje izdvajanjem karaktera iz videa i njihovim pretprocesovanjem.
  2. Obučavanje mreže za prepoznavanje karaktera
  3. Pretprocesovanje videa epizode i izvlačenje pitanja thresholding-om
  4. Testiranje

Evaluacija

Za evaluaciju ćemo koristiti Levenštajnovu distancu i accuracy za treniranjem mreže.

Implementacija kalkulatora na osnovu šake detektovane na video snimku

Tim
Milica Popović, SW11/2019
Nevena Radešić, SW12/2019
Aleksa Simić, SW13/2019

Asistent
Milica Škipina

Definicija problema
Implementacija kalkulatora na osnovu videa na kom se detektuju i prepoznaju
položaji šake koji predstavljaju brojeve i računske operacije.

Skup podataka
Za podatke koji se odnose na cifre koristićemo Fingers skup podataka, a za specijalne
znakove, tj. računske operacije skup Hand Gesture Recognition Base. Ovi skupovi će biti
podeljeni u odnosu 80:20 na trening i testni skup i služiće za obučavanje neuronske mreže.
Za testiranje samog kalkulatora biće korišteni ručno pravljeni video snimci.

Metodologija
Planiramo da koristimo konvolucionu neuronsku mrežu koju ćemo istrenirati nad gore pomenutim
bazama podataka korišćenjem metoda iz Tensorflow biblioteke.
Nakon obučavanje mreže, vršiće se obrada videa. Izdvajaće se pojedinačni frejmovi
i najpre će biti odrađeno njihovo pretprocesiranje. Ono će obuhvatati pretvaranje slike
u grayscale i po potrebi njeno skaliranje, upotrebu thresholdinga i primenjivanje
morfoloških operacija. Tako obrađena slika biće ulaz u istreniranu neuronsku mrežu, a
izlaz će biti odovarajuća cifra ili aritmetički operator.
Na kraju će se vršiti izračunavanje svih dobijenih izlaza i dobijeni rezultat će biti poređen
sa očekivanim.

Evaluacija
Vršićemo dve vrste evaluacije: evaluacija rada neuronske mreže i kalkulatora.
Za evaluaciju neuronske mreže ćemo koristiti metriku tačnosti (accuracy) nad testnim skupom,
a za evaluaciju rada kalkulatora koristićemo takođe tačnost, ali nad ručno pravljenim skupom
podataka.

Autonomna vožnja

Tim
Miladin Momčilović SW16/2019

Asistent
Dragan Vidaković

Definicija problema
Implementacija autonomne vožnje, koja će obuhvatati praćenje linije i prepoznavanje saobraćajnih znakova i drugih vozila.

Skup podataka
Kao skup podataka za prepoznavanje znakova koristiće se BFMC-Sign-Detection, kao i dodatne slike koje ću sam kreirati u simulatoru i na poligonu. Praćenje linija ne sadrži skup podataka, koristiće se realtime obrada slike sa kamere.

Metodologija
Biće kreirane različite skripte za rešavanje pojedinačnih problema, koje će biti paralelizovane upotrebom ROS-a. I testirano u simulatoru i na pravom hardveru(autiću).

Za detekciju linija:

  1. Uraditi preporcessing slike
  2. Slika prolazi kroz Canny edge detection algoritam
  3. Određuje se ROI slike
  4. Primenjuje Hough transformacija
  5. Prikaz detektovanih linija
  6. Povezati sa kamerom i vršiti realtime detekciju
  7. Proslediti rezultat master thread-u za određivanje akcije

Za prepoznavanje znakova će se koristiti YOLOv7 koji će biti prilagođen ovom problemu i dataset-u.

  1. Uraditi preprocessing slike
  2. Proslediti modelu koji će prvobitno biti istreniran nad dataset-om
  3. Povezati sa kamerom i vršiti realtime detekciju
  4. Proslediti rezultat master thread-u za određivanje akcije

Evaluacija
Vršiću dve vrste evaluacije: evaluaciju rada mreže i detekcije linija.
Za evaluaciju mreže koristiću tačnost (accurancy) nad testnim skupom, a za evaluaciju rada praćenja linija takođe tačnost, ali nad ručno pravljenim skupom podataka.

Prepoznavanje Govora

Tim:
Petar Kupusarević SW57/2019

Asistent:
Dragan Vidaković

Definicija Problema:
Problem je prepoznavanje govora. Za neki audio ulaz, potrebno je prepoznati i ispisati tekst koji se govori u tom snimku.

Skup Podataka:
Dataset koji ću koristiti je LibriSpeech ASR corpus. Sastoji se od 360 sati (23 GB) "čistog" govora na Engleskom jeziku, gde je svaki klip ~5 sekundi. Podaci potiču od audio-knjiga sa LibriVox-a. Pored ovoga podaci su već segmentirani i poravnati.

Metodologija:
Radiće se fine-tuning OpenAI Whisper modela nad prethodno pomenutim skupom podataka.

Evaluacija:
Metrika za ovakve probleme se obično koristi WER (word error rate). Ovo predstavlja razmeru broja grešaka i ukupnog broja reči, potiče od Levenshtein distance.
U radu za Whisper je pomenuto da je zero-shot WER za clean-test skup LibriSpeech-a 2.7%, tako da ovo će da bude meta. Metriku su dobili koristeći najvećeg modela koji ima 1.55 milijardu parametara. Za moju implementaciju ću verovatno koristiti manji model.
Pošto ću koristiti podatke za treniranje koji pripadaju istoj distribuciji kao i test podaci, i pored toga se ti podaci nisu koristili za prethodno treniranje modela, cilj će biti da performanse fine-tunovanog modela prevaziđu performanse base-modela.

Klasifikacija muzičkih instrumenata

Tim

Ilija Kalinić, SW65/2019

Asistent

Dragan Vidaković

Definicija problema

Višeklasna klasifikacija realnih fotografija muzičkih instrumenata uz pomoć konvolucionih neuronskih mreža. Potrebno je klasifikovati datu fotografiju u jednu od 6 klasa (akustična gitara, električna gitara, akustični bass, električni bass, bubnjevi i saksofon). Napraviću 2 modela dubokog učenja bazirana na konvolucijskim neuronskim mrežama, od kojih ću jedan ručno praviti, a za drugi ću koristiti MobileNetV3 mrežu, transfer learning i fine tuning kako bih adaptirao mrežu za ovaj problem. Na kraju ću istrenirane modele uvesti u demo web aplikaciju.

Skup podataka

Skup podataka ću samostalno prikupiti, koristeći Python web scraper skriptu. Cilj mi je da skup podataka bude ravnomerno raspoređen sa 200 slika po klasi, što bi ukupno bilo 1200 slika. Skup podataka ću podeliti na test i train skup (80/20), a za validaciju ću koristiti unakrsnu validaciju gde ću skup podataka podeliti na 5.

Metodologija

  1. Pravljenje dataseta i enkodiranje labela klasa (labele za klase postaju int),
  2. Augmentacija train skupa podataka kako bi slike bile malo manje jasne (da bismo izbegli overfitting),
  3. Preprocesiranje podataka,
  4. Treniranje oba ML modela,
  5. Čuvanje weights-a i bias-a oba ML modela kako bih ih mogao dalje koristiti i evaluirati,
  6. Uvoz modela u web aplikaciju uz pomoć Tensorflow.js.

Evaluacija

Za evaluaciju modela ću koristiti tačnost (accuracy) nad testnim skupom i unakrsnu validaciju.

Prepoznavanje protivnika u igri CS:GO

Tim

Ana Anđelić SW14/2019

Asistent

Milica Škipina

Definicija problema

Kreiranje alata koji olakšava igranje igre Counter Strike tako što prepoznaje protivnika i na njega pozicionira nišan.

Skup podataka

Skup podataka ću sama kreirati upotrebom Scutti alata koji automatski skladišti slike ekrana, a zatim uz pomoć labelimg alata obeležiti protivnike na slikama. Skup podataka će biti podeljen na trening i validacioni skup u odnosu 90:10.

Metodologija

  1. Kreiranje skupa podataka i dodela labela
  2. Treniranje YOLOv5 modela i njegovo čuvanje
  3. Procesiranje frejmova u realnom vremenu i pozicioniranje nišana na protivnika

Evaluacija

Za evaluaciju će se koristiti precision.

GitHub repozitorijum

https://github.com/anaandjelic/soft-computing-project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.