Reporizotijum kursa: Soft Computing
Studijski programi:
- Računarstvo i automatika
- Softversko inženjerstvo i informacione tehnologije
Školska godina: 2023/2024
Soft Computing 2023/2024
License: MIT License
Projekat ima za cilj razvoj sistema za autentifikaciju putem detekcije lica i prepoznavanje glasa. Koristiće se tehnike dubokog učenja, kako bi se omogućilo pouzdano prepoznavanje lica i glasa korisnika. Ovaj sistem bi bio pogodan za integraciju u različite aplikacije kao sredstvo za bezbednu autentifikaciju.
Rešavanje ovog problema ima praktičnu primenu u domenu sigurnosti i korisničkog iskustva. Softver za detekciju lica i glasa može se primeniti u raznim oblastima, uključujući pristup aplikacijama, sigurnosne sisteme, ili čak finansijske transakcije, pružajući dodatne slojeve sigurnosti uz istovremeno poboljšanje korisničke interakcije.
Implementacija algoritama za preprocesiranje slika radi poboljšanja kvaliteta podataka, normalizacije osvetljenja i eliminacije šuma koji mogu uticati na detekciju.
Upotreba prethodno treniranih modela za detekciju lica i zvuka.
Primena neuronskih mreža za ekstrakciju karakteristika iz detektovanih regija koje sadrže lica.
Tačnost detekcije lica i zvuka:
Izračunavanje tačnosti sistema u prepoznavanju lica i zvuka na testnom skupu podataka.
Katarina Vučić SV29/2020
Hristina Adamović SV32/2020
Nemanja Šimšić SV68/2020
Njegomir Marko
Implementacija kalkulatora koristeći zvuk i video kao ulaz. Podržane operacije su sabiranje, oduzimanje, množenje i deljenje.
Skup podataka će biti generisan ručno, od strane članova tima.
Tačne vrednosti za testiranje i treniranje će se skladištiti u CSV fajlu.
Za klasifikaciju gesture ruke će biti korišćen CNN model, dok će za klasifikaciju zvuka biti korišćen MFCC model, zajedno sa SVM klasifikatorom.
Na kraju će se vršiti izračunavanje svih dobijenih izlaza i dobijeni rezultat će biti poređen
sa očekivanim.
Za treniranje će biti iskorišteno 80% podataka, dok će za testiranje 20%.
Za evaluaciju kalkulatora će se koristiti metrika tačnosti.
Za evaluaciju klasifikacije će se koristiti sledeće metrike:
Tim:
Srđan Stjepanović, SV16/2020
Asistent:
Vidaković Dragan
Definicija problema:
Detekcija čovjeka na slici i klasifikacija njegove trenutne aktivnosti na osnovu njegove poze
Skup podataka:
Skup podataka sa slikama ljudi i labelama njihove aktivnosti
https://www.kaggle.com/datasets/meetnagadia/human-action-recognition-har-dataset
Metodologija:
Skup podataka će se pretprocesirati koristeći OpenPose model za izdvajanje ključnih tačaka ljudskog tijela što će biti ulaz u različite modele za klasifikaciju (Neural network, SVM, random forest), čiji rezultati će se porediti.
Evaluacija:
Accuracy, precision
Лазар Магазин SV 25/2020
Марко Његомир
Истренирати интелигентни модел да детектује биљке са фотографије и класификује их на основу тога да ли је у питању нежељен коров или усев.
Улаз је фотографија дела парцела, а излаз је списак детектованих објеката и њима придружене класе и њихови bounding box-ови.
Међу највећим проблемима у пољопривреди истичу се корови.
Студија случаја: пшеница. Као друга најзаступљенија култура биљне производње у Србији са уделом од 24,3% обрадивог земљишта у 2022. години [1], пшеница и њени корови представљају актуелну тему у развоју интензивног типа пољопривреде. Само у Србији забележено је преко 200 коровских врста које штете пшеници.
Узроци настанка корова су: [2]
Сузбијање ових корова је неопходно како би се заштитио квалитет усева, максимизовао приход, очувао квалитет земљишта итд. Неке од техника за сузбијање корова су:
Применом рачунарске визије, машине попут роботских руку, дронова итд. биле би у стању да препознају коров и уклоне га чупањем или прскањем хербицидима. Поред овога, пољопривредници би релативно брзо добили увид у стање парцела приликом експериментисања са различитим ђубривом, семењем, техникама обраде земљишта итд.
Примери реалне употребе рачунарске визије за решавање овог проблема: [3], [4], [5].
Користиће се неки од следећих скупова података. У питању су фотографије усева и корова, фотографисаних релативно близу у односу на камеру. На фотографији се може појавити ниједан или више објеката од значаја.
По потреби ће се слике додадно анотирати користећи RoboFlow радни овкир.
Основа за модел је конволутивна неуронска мрежа Yolo v8, претренирана на COCO скупу података.
Fine tuning-ом ће се модел доучити на споменутим сликама. Скуп података ће се поделити на тренинг, тест и валидациони скуп (вероватно у односу 60:20:20).
Посматраће се прецизност, одзив, F1 мера, average precision, mean average precision, box loss, intersection over union и class loss. Такође ће се узети у обзир и брзина евалуације појединачних слика, у циљу оптимизације за благовремену детекцију.
Tim:
Mili Bovan RA 41/2020
Asistent:
Filip Volarić
Definicija problema:
Prepoznavanje instrumenta koji je odsvirao ton kao i njegova visina i potencijalno i trajanje tog tona. Na ulazu je audio datoteka koja sadrži sekvencu tonova odsviranih na istom ili različitim instrumentima. Pored instrumenta, potrebno je odrediti i visinu tona, odnosno njegovo mjesto u notnom sistemu u okviru oktava. To je primarni zadatak, dok je trajanje i mapiranje na notni zapis proširenje datog problema.
Motivacija problema:
Program nakon obučavanja bi trebalo da služi kao alat za prepoznavanje muzičke sekvence odsvirane na bilo kom instrumentu. Takođe, može poslužiti za lakše prepoznavanje nota kao mogućnost za lakšu reprodukciju kao i prepoznavanje nepoznate melodije.
Skup podataka:
Skup podataka ću sam izgenerisati koristeći StudioOne 5 alata, kao i posjedovanje znanja i alata za generisanje.
Metodologija:
Za obradu zvuka koristiću biblioteku LibROSA. Osobine zvuka izdvojiću pomoću MFCCs. Za trening i klasifikaciju koristiću više različitih CNN mreža i izbrao bih onu koja daje najbolje rezultate. U slučaju da su rezultati neizbalansirani, koristiću Python-ovu biblioteku Imbalanced-learn
Evaluacija:
Skup podataka ćemo podijeliti na validacioni, testni i trening. Efikasnost ću odrediti korišćenjem metrika F1 i loss.
Razvoj sistema za detekciju objekata u stvarnom vremenu za automatsko praćenje košarkaške lopte tokom igre i detekciju prolaska lopte kroz koš, kako bi se automatski ažurirali poeni.
Koristiće se više skupova podataka sa slikama košarkaških lopti i koševa. Skupovi će biti anotirani na Roboflow platformi (bounding boxes, polygons, key points).
Skupovi podataka imaju različite scenarije igre, različite svetlosne uslove i različite veličine košarkaške lopte.
Skup podataka će biti augmentovan i zatim treniran na YOLOv8 modelu. Razmatra se mogućnost Fine-tuning-a na već prethodno obučenom YOLOv8 modelu.
Skupovi podataka bi bili kombinovani u jedan veći skup, potom na slučajan način podeljeni u podskupove od 80% za trening, 10% za test i 10% za validaciju.
Za evaluaciju će se koristiti accuracy i precision metrike.
Analizator Emocija u Govoru
Ideja iza ovog projekta je stvaranje mašinskog učenja koje može da detektuje emocije iz govora koji koristimo svakodnevno. Danas je personalizacija nešto što je potrebno u svemu što svakodnevno doživljavamo.
Kreiranje detektora emocija koji će ocenjivati naše emocije i u budućnosti preporučivati različite stvari na osnovu našeg raspoloženja. Ovo se može koristiti u više industrija kako bi se ponudile različite usluge, kao što su marketinške kompanije koje nam predlažu da kupujemo proizvode na osnovu naših emocija, automobilska industrija može detektovati emocije osobe i prilagoditi brzinu autonomnih automobila kako bi se izbegli sudari itd.
Skupovi podataka:
Korišćena su dva različita skupa podataka:
RAVDESS. Ovaj skup podataka uključuje oko 1500 audio datoteka od 24 različita glumca. 12 muškaraca i 12 žena gde ovi glumci snimaju kratke audio zapise u 8 različitih emocija tj. 1 = neutralno, 2 = mirno, 3 = srećno, 4 = tužno, 5 = ljuto, 6 = uplašeno, 7 = gađenje, 8 = iznenađenje.
Svaka audio datoteka je imenovana na takav način da sedmi karakter odgovara različitim emocijama koje predstavljaju.
SAVEE. Ovaj skup podataka sadrži oko 500 audio datoteka snimljenih od 4 različita muška glumca. Prva dva karaktera imena datoteke odgovaraju različitim emocijama koje prikazuju.
Audio datoteke
Spektrogram
Izdvajanje Karakteristika
Sledeći korak uključuje izdvajanje karakteristika iz audio datoteka koje će pomoći našem Sequential modelu da uči između ovih audio datoteka. Za izdvajanje karakteristika koristimo LibROSA biblioteku u Pythonu, koja je jedna od biblioteka korišćenih za analizu zvuka.
Pošto se projekat bavi problemom klasifikacije, korišćenje Sequential modela u kombinaciji sa odgovarajućim slojevima se čini kao očigledan izbor. Za ovaj projekat, dataset je podeljen na 10% za testiranje i 90% za treniranje. U okviru Sequential modela, moguće je koristiti različite vrste slojeva, uključujući konvolucijske slojeve, jer se radi o obradi audio zapisa.
Nakon što je model podešen, testiran je predviđanjem emocija za test podatke. Podešavanje modela uključuje prilagođavanje slojeva, parametara i hiperparametara kako bi se postigla što bolja tačnost na test skupu.
Da bismo dodatno testirali model, koristimo glasove koji su potpuno različiti od onih koji se nalaze u podacima za obuku i testiranje. Snimamo glasove sa različitim emocijama i koristimo model za predviđanje emocija iz ovih snimaka. Ovo nam omogućava da testiramo kako model funkcioniše u realnim, nepoznatim uslovima i da procenimo njegovu sposobnost generalizacije na novim podacima.
Diffusion modeli su trenutni state-of-the-art pristup za generisanje fotografija u svetu veštačke inteligencije - na osnovu tekstualnog opisa, ovi modeli generišu slike koje odgovaraju tom opisu (text to image).
Stable Diffusion je open source latentni diffusion model koji postiže zavidne rezultate na zadatku generalne generacije slika, međutim, njegova prava moć leži u velikom broju metoda za dotreniravanje baznih modela za generaciju specifičnih stilova, karaktera i kompozicija.
Cilj projekta je istraživanje arhitekture diffusion modela, primena Stable Diffusion-a kroz Automatic1111 open source ui, kao i dotreniravanje modela ubacivanjem novog koncepta koji bi on nakon toga verno reprodukovao.
Postoji više načina za fino podešavanje Stable Diffusion modela (DreamBooth, LoRA, ControlNet, textual inversion...).
Za ovaj projekat fokus će biti na finom podešavanju koristeći LoRA-e (Low Rank Adaptation Matrices), pristup u kom se naučene težine modela zamrznu, a u attention slojeve se "injektuju" matrice koje čuvaju razliku originalnih i dotreniravanjem naučenih težina tih attention slojeva - cilj dotreniravanja je upravo ucenje težina tih injektovanih matrica.
LoRA pristup daje sjajne rezultate u zadacima kao što su: generacija slika u odredjenom stilu (Disney stil), generaciji konkretnih karaktera, odeće, pozadina...
Cilj projekta je primena LoRA metoda za ubacivanje novog koncepta u Stable Diffusion v1.5 model - npr. naučiti model da generiše karaktere u srpskoj nošnji.
Prednost LoRA metoda, pored toga što model uči manji broj težina nego da menjamo sve težine modela, jeste ta što je za dotreniravanje relativno velikih diffusion modela (v1.5 ima skoro milijardu parametara) potreban relativno mali skup slika - oslanjamo se na ideju da očuvavamo znanje baznog modela.
S toga će se za treniranje koristiti samostalno prikupljen test skup koji će se ručno anotirati i proslediti na obuku - za obuku je potrebno proslediti sliku koja ilustruje koncept koji želimo da model nauči, kao i tekstualni opis ("prompt") za svaku fotografiju.
Evaluacija ce biti vršena kroz pracenje performansi modela na validacionom i test skupu, kao i empirijski, kroz upoređivanje slika koje model generiše pre i posle dotreniravnja, kada se promptuje da generiše novi koncept koji smo probali da ga naučimo.
Članovi tima:
Marko Njegomir
Razviti sistem za kontrolu video igre pomoću kamere i detekcije šake, omogućavajući igračima da upravljaju igrom kroz jednostavne gestove i pokrete šake umesto klasičnih kontrolera.
Cilj nam je unaprediti iskustvo igranja video igara, čineći ga pristupačnijim i zabavnijim.
Za treniranje modela bismo koristili već postojeći data set.
https://www.kaggle.com/datasets/gti-upm/leapgestrecog
Koristićemo tehniku dubokog učenja. Napisali bismo našu verziju YOLO algoritma.
Evaluacija će se sprovoditi kroz:
Performanse Kontrole Igre: Testiranje efikasnosti sistema u upravljanju igrom pomoću detektovanih gestova.
Tim:
Jovan Dozic RA 75/2020
Asistent:
Filip Volarić
Definicija problema:
Razviti softver za detekciju i čitanje zvaničnih identifikacionih dokumenata, kao što su lične karte, pasoši, i vozačke dozvole, iz bilo koje države. Softver treba da automatski prepozna tip dokumenta na osnovu slike, izvuče tekstualne podatke i klasifikuje ih.
Motivacija:
Cilj je automatizovati proces prepoznavanja i ekstrakcije podataka iz identifikacionih dokumenata kako bi se poboljšala efikasnost u administrativnim procesima i poboljšala sigurnost.
Skup podataka:
Koristiće se skup podataka sastavljen od digitalizovanih slika različitih identifikacionih dokumenata, prikupljenih uz poštovanje privatnosti i zakonskih regulativa. Podaci će biti podeljeni na trening skup (~70%), validacioni skup (~15%) i testni skup (~15%).
Metodologija:
Primena konvolucijskih neuronskih mreža (CNN) za klasifikaciju dokumenata i optičko prepoznavanje karaktera (OCR) za ekstrakciju teksta. Korišćenje TensorFlow i Tesseract OCR alata. Implementiraće se krosvalidacija kako bi se smanjila pristrasnost i varijabilnost u proceni performansi modela.
Evaluacija:
Performanse sistema će se evaluirati kroz tačnost prepoznavanja tipa dokumenta i preciznost ekstrakcije teksta. Primarno će se koristiti metrike kao što su tačnost, preciznost i F1 skor. Dodatno, Levenshteinova udaljenost će se koristiti za procenu preciznosti ekstrakcije teksta, a Mean Average Precision (MAP) za ocenjivanje performansi klasifikacije dokumenata.
1. Tim
Strahinja Praška RA 245/2021
2. Asistent
Aleksandra Kaplar
3. Definicija problema
Branch prediction - tehnika koja se koristi za predviđanje toka izvršavanja kondiconalnih instrukcija u cilju poboljšanja efikasnosti. Ona omogućava procesoru da pokuša da pogodi u kom će se pravcu grananje odvijati pre nego što se tačan uslov grananja evaluira. Ideja je da koristimo mašinsko učenje kako alternativu za dvobitne brojače za predviđanje.
4. Skup podataka
Kaggle Branch Prediction
Features:
5. Metodologija
Metode koje bi bile korišćene bi bio perceptron[1] kao najjednostavniji, ali i najpogodniji za potencijalne hardverske implementacije. Tu su i druge metode kao što su Feed-Forward neuronska mreža, Elmanova mreža[3] i CNN[2] bi takođe mogle biti iskorišćene i rezultati upoređeni(u kojoj meri vreme će odrediti).
6. Evaluacija
Glavni fokus evaluacije će biti na tačnosti predviđanja grane, metrika accuracy, podela na training i validation skup u odnosu 80-20, test skup ce biti SPEC2000 benchmark dataset.
Reference
[1] Zangeneh, S., Pruett, S., Lym, S., & Patt, Y. N. (2020). BranchNet: A Convolutional Neural Network to Predict Hard-To-Predict Branches
[2] Jiménez, D. A., & Lin, C. (2001). Dynamic Branch Prediction with Perceptrons
[3] Smith, A. (2004). Branch Prediction with Neural Networks: Hidden Layers and Recurrent Connections
Nemanja Vujadinović
Marko Njegomir
Image Style Transfer predstavlja tehniku u oblasti computer vision-a čija ideja je da za dve slike - content i style image, generiše novu tako što će generisana slika sad predstavljati spoj dve ulazne - jednostavnije rečeno, sadržaj prve slike, biće 'naslikan' u stilu druge. Osnovni primer ove tehnike bio bi da se nečiji portret ili pejzaž, pretvori u onakav kakvog bi Pablo Picasso ili neko od drugih velikih umetnika, stvorio.
U ovom projektu, baziraćemo se na Neural Style Transfer-u i generisanju pomoću Generative Adversarial Networks. (NST će svakako biti implementiran, a ukoliko vreme dozvoli i rešenje pomoću GAN-ova, pa će biti moguće porediti rezultate.)
Za implementaciju NST-a, koristiće se tehnika Transfer learning-a sa pretrained VGG-19 mrežom.
Za generisanje slika pomoću GAN-ova, koristiće se CycleGAN.
Empirijski će se porediti rezultati ova dva pristupa, što će se najviše bazirati na samom izgledu generisanih slika. Takođe porediće se i same performanse. (U slučaju implementacije isključivo NST-a, rezultati će se empirijski evaluirati.)
Zadatak obuhvata prepoznavanje i detekciju lica unutar video strima, s ciljem olakšavanja mehanizma otključavanja pametne brave. Za streaming ce se koristiti ESP32-CAM uređaj. Link do repozitorijuma za pametnu bravu: https://github.com/vukasinb7/Smart-Lock. U sistemu postoji mogućnost dodavanja novih "sigurnih" lica kao i detekcija mraka u svrhu paljenja dodatnog svetla dok ne detektuje lice sa uspešnim ishodom ili do timeouta.
ImageNet dataset za ResNet50 pretreniran model sa ekstracijom feature za naša lica
Prikupljanje i pretprocesiranje sadržaja skupa podatka u cilju izdvanja ključnih tačaka lica koji će biti ulazni podaci za odabrani model klasifikacije. Planirani model neuronske mreže za prepoznavanje lica koji će se koristiti je Resnet50 pretreniran model, a klasifirkator za detekciju lica će biti HaarCascade.
Accuracy i precision metrika
Jovan Jokić - SV47/2020,
Vukašin Bogdanović - SV9/2020,
Marko Njegomir
##Github Repository
https://github.com/vukasinb7/Smart-Lock
Tim:
Asistent:
Definicija problema:
Skup podataka:
Metodologija:
Evaluacija:
Tamara Ilić, SV45/2020
Uroš Poček, SV57/202
Marko Njegomir
Detekcija i merenje površine krova objekta na osnovu satelitskih snimaka
Skup podataka sa satelitskim slikama dobijenih pomoću Google Maps API-ja. Trenutni skup je anotiran na Roboflow platformi, pomoću alata za označavanje segmenata od interesa. Skup će biti proširen prilikom izrade projekta.
https://universe.roboflow.com/solarise/roof-top-detection-8eyrx/browse?queryText=&pageSize=50&startingIndex=0&browseQuery=true
Skup podataka će biti augmentovan i anotiran COCO anotacijom. Detectron 2 implementacija R50-FPN R-CNN mreže biće dodatno istrenirana da detektuje krovove na slici. Sama površina krova će se određivati na osnovu površine detektovane konture i pretvaranja piksela u metre kvadratne.
mPA i IOU
#Naslov:
Prepoznavanje saobraćajnih znakova
Cilj ovog projekta je razviti model dubokog učenja (CNN) za precizno prepoznavanje saobraćajnih znakova. Saobraćajni znakovi igraju ključnu ulogu u očuvanju bezbednosti saobraćaja, a razvoj autonomnih vozila i sistema za asistenciju vozaču zahteva pouzdano prepoznavanje ovih znakova kako bi vozila mogla da se pridržavaju saobraćajnih pravila. Projekat se fokusira na klasifikaciju saobraćajnih znakova u različite kategorije.
Za ovaj projekat koristićemo javno dostupan skup podataka sa Kaggle-a, nazvan "Traffic Signs Dataset". Ovaj skup podataka sadrži više od 50.000 slika različitih saobraćajnih znakova, koji su podeljeni u 43 različite klase. Skup podataka je podeljen na trening i test skupove, a ukupna veličina skupa podataka iznosi oko 300 MB. Slike su prikupljene u različitim uslovima osvetljenja i vremenskim uslovima, kako bi model bio robusan u realnim situacijama.
https://github.com/branislavstojkovic70/prepoznavanje-saobracajnih-znakova
Tim
Asistent
Dragan Vidaković
Definicija problema
Detekcija položaja tela čoveka kako bi izbrojali koliko puta je uradio prepoznatu vežbu, s tim da će brojati samo ukoliko pravilno uradi vežbu. Cilj je motivisanje korisnika kroz prikaz broja pravilnih vežbi kako bi ih podstakli na održavanje tačnosti u izvođenju.
Skup podataka
Lični skup videa.
Metodologija
Za prepoznavanje vežbi koristićemo YOLOv4, a MediaPipe za detekciju ključnih tačaka na telu, radi utvrđivanja ispravnosti izvođenja vežbi. Za klasifikaciju SVM klasifikator.
Evaluacija
Accuracy, precision, recall, f1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.