{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "eb66e60b",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "64cb5888",
   "metadata": {},
   "source": [
    "<img style=\"float: center; width: 100%\" src=\"https://raw.githubusercontent.com/andrejkk/TalksImgs/master/FrontSlideUpperBan.png\">\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "\n",
    "\n",
    "# Anonimizirano zaznavanje z UI ustvarjenih slik\n",
    "\n",
    "\n",
    "Ime Priimek: Kristjan Komloši\n",
    "\n",
    "Predmet: Optimizacija v telekomunikacijah\n",
    "\n",
    "Datum: 10. maj 2025\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1e57ed74",
   "metadata": {},
   "source": [
    "## Kazalo\n",
    "\n",
    "\n",
    "[Povzetek](#povzetek)\n",
    "\n",
    "1. [Uvod](#uvod)\n",
    "    1. [Opredelitev področja](#opredelitev-podrocja)\n",
    "    2. [Predstavitev problema](#predstavitev-problema) \n",
    "2. [Teoretično ozadje in trenutno stajne](#teoreticno-ozadje)\n",
    "    1. [Teoretični vidiki problema](#teoretični-vidiki-problema)\n",
    "    2. [Algoritmi](#algoritmi)\n",
    "    3. [Merjenje uspešnosti](#merjenje-uspesnosti-resitve)\n",
    "3. [Eksperimentalni del](#eksperimentalni-del)\n",
    "    1. [Podatki](#podatki)\n",
    "    2. [Eksperimentalni rezultati 1](#eksperimentalni-rezultati-1)\n",
    "    3. [Eksperimentalni rezultati 2](#eksperimentalni-rezultati-2)\n",
    "4. [Zaključek in razprava](#zakljucek-in-razprava)\n",
    "5. [Doseženi učni izidi](#dosezeni-ucni-izidi)\n",
    "6. [Literatura in viri](#literatura-in-viri)\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b01f137",
   "metadata": {},
   "source": [
    "## Povzetek <a class=\"anchor\" id=\"povzetek\"></a>\n",
    "\n",
    "Z učenjem nevronske mreže lahko ustvarimo orodje za zaznavanje slik, ki bi bile lahko ustvarjene s pomočjo generativne umetne inteligence.\n",
    "\n",
    "V povzetku povzamemo bistvo projekta v smislu izhodišč in rezultatov. \n",
    "</br>\n",
    "\n",
    "1. Izhodišča: </br>\n",
    "    1. Generativna umetna inteligenca: Velika količina neželenih slik na socialnih omrežjih terja preproste, zasebne in zanesljive metode za njihovo zaznavo in/ali izločanje.\n",
    "    2. Učinkovitost in zasebnost: Ali z anonimizacijo vhodnih podatkov še vedno lahko dosežemo sprejemljivo natančnost našega orodja?\n",
    "    3. Vrednotenje orodja: Katero metriko uporabimo za vrednotenje orodja?\n",
    "2. Rezultati:</br>\n",
    "    1. Pomožni nabor podatkov (dataset) CIEDGE: Preslikava obstoječega nabora CIFAKE z Laplaceovim detektorjem robov.\n",
    "    2. Učena modela ResNet18: Na naborih podatkov naučen par nevronskih modelov ResNet18\n",
    "    3. Uspešnost: Model, učen na naboru CIEDGE dosega 98% AUC\n",
    "3. Prihodnje raziskovalne smeri: Študija nakazuje, da bi napredne raziskave lahko raziskale dolgoročne učinke kroničnega časovnega pritiska in njegov vpliv na duševno in fizično zdravje.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa8a5676",
   "metadata": {},
   "source": [
    "## 1. Uvod <a class=\"anchor\" id=\"uvod\"></a>\n",
    "\n",
    "Z napredkom v svetu generativne umetne inteligence postaja ključnega pomena prepoznavnost slik, ustvarjenih s to tehnologijo. Z različnimi metodami strojnega učenja lahko dosežemo dobro zaznavanje takih slik. Večina naborov za učenje je sestavljenih iz slik, ki niso spremenjene na noben način, zato tudi nastali modeli najbolje delujejo z originalnimi oz. nepreslikanimi slikami. Pri uporabi v medsebojni komunikaciji to lahko zbuja dvome v zasebnost uporabljenega orodja ali storitve in zahteva uporabnikovo privolitev za obdelavo podatkov.\n",
    "\n",
    "Raziskava se osredotoča na zaznavanje z umetno inteligenco ustvarjenih slik na način, ki je zasebnosti prijaznejši. To dosega s pomočjo nabora podatkov, ki je preslikan z detektorjem robov. Ta nabor podatkov je nato uporabljen kot učna množica za model strojnega učenja, ki ga nato lahko uporabljamo za zaznavanje slik, ki so preslikane na isti način. To slik ne naredi popolnoma anonimnih in neprepoznavnih, predstavlja pa izboljšavo nad izhodiščnim orodjem z vidika zasebnosti.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a26cc86",
   "metadata": {},
   "source": [
    "### 1.1. Opredelitev področja <a class=\"anchor\" id=\"opredelitev-podrocja\"></a>\n",
    "\n",
    "Detekcija z UI ustvarjenih slik je pomembna predvsem v komunikaciji in socialnih omrežjih, ker lahko take slike predstavljajo dezinformacijo. Skupine, ki na prisotnost takih tehnologij niso navajene, so še posebej ranljive, ker lahko nasedejo raznim trgovskim prevaram, lažnim novicam, t. i. farmam vsebin, ali phishingu.\n",
    "\n",
    "S tehničnega vidika je prisotnost takih slik na storitvah moteča, saj predstavljajo porabljene vire procesne moči, hrambe podatkov in omrežnih kapacitet, ki bi bile lahko porabljene za kakovostnejše vsebine.\n",
    "\n",
    "Pri obeh vidikih se pojavi problem zaupanja v orodje za zaznavanje, saj je tako za uporabnika kot za upravljalca orodja (če gre za spletno storitev) zaželeno, da je količina prenesene osebne informacije minimalna. Z uporabo metod za preslikavo lahko slike naredimo nekoliko manj prepoznavne, hkrati pa še vedno ohranimo dovolj informacije za učinkovito delovanje orodja za zaznavanje.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "112e5e31",
   "metadata": {},
   "source": [
    "### 1.2. Predstavitev problema <a class=\"anchor\" id=\"predstavitev-problema\"></a>\n",
    "\n",
    "Problem sestavlja:\n",
    "    1. Ustvaranje podatkovnega nabora, preslikanega na isti način kot pričakovani vhodni podatki.\n",
    "    2. Učenje nevronske mreže - klasifikatorja - na ustvarjenem naboru\n",
    "    3. Vrednostenje ustvarjene mreže\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1c0384e4",
   "metadata": {},
   "source": [
    "## 2. Teoretično ozadje in trenutno stanje <a class=\"anchor\" id=\"teoreticno-ozadje-in-trenutno-stanje\"></a>\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "478e9ccf",
   "metadata": {},
   "source": [
    "### 2.1. Teoretični vidiki problema <a class=\"anchor\" id=\"teoretični-vidiki-problema\"></a>\n",
    "\n",
    "Zaznavanje slik, ustvarjenih z umetno inteligenco (UI), predstavlja problem slikovne klasifikacije, pri katerem na podlagi učne množice poskušamo vhodne podatke uvrstiti v vnaprej določene kategorije. V okviru te raziskave gre za razvrščanje slik v dve kategoriji: resnične slike in slike, ustvarjene z UI.\n",
    "\n",
    "Anonimizacija podatkov je proces odstranjevanja ali prikrivanja občutljivih informacij iz podatkovnih nizov, z namenom povečanja zasebnosti končnih uporabnikov ter zmanjšanja pravne odgovornosti upravljavcev podatkov. Posebej pomembna je v kontekstu evropske zakonodaje (GDPR), ki zahteva ustrezno zaščito osebnih podatkov državljanov EU, tudi pri obdelavi slikovnega gradiva.\n",
    "\n",
    "V tej raziskavi je bila za anonimizacijo slik uporabljena slikovna tehnika prostorskega filtriranja. Gre za matematični postopek, pri katerem s konvolucijo vhodne slike in izbranega jedra izluščimo določene informacije. Uporabljeno je bilo Laplaceovo jedro velikosti 5×5, ki na sliki izvede prostorski odvod. To pomeni, da se iz slike poudarijo predvsem robovi in podrobnosti, medtem ko se druge informacije izgubijo, kar prispeva k stopnji anonimizacije.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b2c6794a",
   "metadata": {},
   "source": [
    "### 2.2. Algoritmi <a class=\"anchor\" id=\"algoritmi\"></a>\n",
    "\n",
    "\n",
    "Preslikava oz. anonimizacija slik temelji na preprosti slikovni tehniki, ki vhod pretvori v sivinsko sliko, ki jo nato filtrira z Laplaceovim jedrom 5x5. Dobljeno sliko nato uporabimo kot vhod za klasifikator ali kot učni podatek. Za preslikavo se uporablja knjižnica [OpenCV](https://opencv.org/) v jeziku Python.\n",
    "\n",
    "Zaznavanje slik temelji na residualnem nevronskem omrežju [ResNet18 (2015)](https://arxiv.org/pdf/1512.03385). Model je namenjen klasifikaciji slik in je uporaben predvsem zaradi svoje procesne nezahtevnosti, kar je omogočalo raziskovanje na opremi potrošniške zmogljivosti. Model odlikuje tehnika residualnega učenja, ki vhodne podatke slojev prenaša oz. prišteje na njihov izhod, kar prinaša prednosti pri učenju omrežja.\n",
    "\n",
    "Trenutno obstajajo boljši modeli npr. [EfficientNet (2019)](https://arxiv.org/abs/1905.11946), ki zaradi svojih zahtev po zmogljivosti niso bili uporabljeni.\n",
    "\n",
    "Učenje modela poteka v jeziku Python s knjižnicami [pytorch](https://pytorch.org/) in [torchvision](https://docs.pytorch.org/vision/stable/index.html).\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8822f3a3",
   "metadata": {},
   "source": [
    "### 2.3. Merjenje uspešnosti rešitve <a class=\"anchor\" id=\"merjenje-uspesnosti-resitve\"></a>\n",
    "\n",
    "Merjenje uspešnosti rešitve temelji na natančnosti (angl. accuracy), ki predstavlja razmerje med pravilno razvrščenimi in vsemi vhodnimi slikami. Ta metrika ponuja osnovno informacijo o tem, kako uspešno model ločuje med resničnimi in z umetno inteligenco ustvarjenimi slikami. Vendar sama natančnost ni vedno zanesljiv pokazatelj učinkovitosti, zlasti v primeru neuravnoteženih podatkovnih množic.\n",
    "\n",
    "Zato je kot dopolnilna metrika uporabljena tudi ploščina pod ROC krivuljo (angl. Area Under the Receiver Operating Characteristic Curve – AUC). ROC krivulja prikazuje razmerje med stopnjo pravilno pozitivnih in stopnjo lažno pozitivnih rezultatov pri različnih pragih odločanja. AUC tako ponuja bolj celovito oceno diskriminacijske sposobnosti modela – vrednost bližje 1 pomeni visoko sposobnost ločevanja med obema razredoma, medtem ko vrednost okoli 0.5 nakazuje naključno odločanje.\n",
    "\n",
    "Z vključevanjem obeh metrik je mogoče natančneje oceniti kakovost modela, še posebej v kontekstu nalog, kjer je pomembna visoka občutljivost na napačno klasifikacijo umetno ustvarjenih slik kot resničnih (ali obratno), na primer v varnostnih in etičnih aplikacijah.\n",
    "\n",
    "</br>\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bbca58cb",
   "metadata": {},
   "source": [
    "## 3. Eksperimentalni del <a class=\"anchor\" id=\"eksperimentalni-del\"></a>\n",
    "\n",
    "Eksperimentalni del sestavlja preslikava učne množice in priprava podatkov, učenje modela ter vrednotenje modela.\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0d84bb96",
   "metadata": {},
   "source": [
    "### 3.1. Podatki <a class=\"anchor\" id=\"podatki\"></a>\n",
    "Vhodni podatki izvirajo iz nabora [CIFAKE](https://www.kaggle.com/datasets/birdy654/cifake-real-and-ai-generated-synthetic-images), ki vsebuje slike iz učne množice [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) ter njihove ponaredke. Nabor vključuje poenotene primere resničnih in sintetičnih slik, kar omogoča učenje modela za razločevanje med obema razredoma. Primeri so ločeni na učne in vrednotenjske podatke, nato pa na prave in ponarejene slike.\n",
    "\n",
    "Za potrebe raziskave so bile vse slike predhodno obdelane s pomočjo Laplaceovega operatorja, pri čemer smo uporabili konvolucijski filter za izračun prostorskega odvoda. Ta postopek je bil izveden s pomočjo Python skripte, razvite posebej za to nalogo. Rezultat te obdelave je nov slikovni nabor poimenovan CIEDGE, ki vsebuje robne in teksturne značilnosti izvornih slik.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae34a386",
   "metadata": {},
   "source": [
    "### 3.2. Učenje modela <a class=\"anchor\" id=\"podatki\"></a>\n",
    "Za model je bil uporabljen ResNet-18. Kot izhodišče je bil uporabljen vnaprej naučen model (angl. pre-trained), dostopen prek knjižnice torchvision. Modelje bil nadalje umerjen (angl. fine-tuned) na naboru [CIFAKE](https://www.kaggle.com/datasets/birdy654/cifake-real-and-ai-generated-synthetic-images).\n",
    "Trening je bil izveden na osebnem računalniku avtorja. Po uspešnem učenju je bil model shranjen za nadaljnjo uporabo kot referenca.\n",
    "\n",
    "V drugem koraku se vnaprej naučen model dodatno umeri na novo ustvarjenem naboru CIEDGE, ki vsebuje Laplaceovo filtrirane slike. Ta korak je omogočil prilagoditev modela na drugačno predstavitev vhodnih podatkov – takšno, ki ohranja samo robove in podrobnosti. Tudi ta model je bil shranjen v obliki .pth za nadaljnjo uporabo.\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e120716c",
   "metadata": {},
   "source": [
    "### 3.2. Eksperimentalni rezultati <a class=\"anchor\" id=\"eksperimentalni-rezultati-1\"></a>\n",
    "#### Natančnost\n",
    "\n",
    "CIFAKE model s CIFAKE podatki: 97.55%\n",
    "CIFAKE model s CIEDGE podatki: 62.73%\n",
    "CIEDGE model s CIFAKE podatki: 50.09%\n",
    "CIEDGE model s CIEDGE podatki: 93.19%\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fb263d01",
   "metadata": {},
   "source": [
    "### 3.3. Eksperimentalni rezultati 2 <a class=\"anchor\" id=\"eksperimentalni-rezultati-2\"></a>\n",
    "#### ROC Krivulje\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c74cc2ad",
   "metadata": {},
   "source": [
    "## 4. Zaključek in razprava <a class=\"anchor\" id=\"zakljucek-in-razprava\"></a>\n",
    "\n",
    "\n",
    "Zaključki - kaj lahko sklepamo neposredno iz eksperimentalnih rezultatov v strogem smislu, to je kar sledi neposredno iz dobljenih rezultatov. \n",
    "\n",
    "\n",
    "Glavni rezultati - povzetek v smislu glavne ugotovitve. Kaj sledi iz doseženih rezultatov. \n",
    "\n",
    "\n",
    "Opažanja in razprava - tu so na mestu širša opazanja, lahko tudi sama mnenja glede doseženih rezultatov. \n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc63b80c",
   "metadata": {},
   "source": [
    "## 5. Doseženi učni izidi <a class=\"anchor\" id=\"dosezeni-ucni-izidi\"></a>\n",
    "\n",
    "\n",
    "Kaj ste se pri izdelavi projekta naučili. Na kratko v poljudnem jeziku, med drugim:\n",
    "- Razumevanje teoretičnih konceptov.\n",
    "- Spoznavanje algoritmov. \n",
    "- Pridobljene izkušnje s podatki.\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b95fe2f",
   "metadata": {},
   "source": [
    "## 6. Literatura in viri  <a class=\"anchor\" id=\"literatura-in-viri\"></a>\n",
    "\n",
    "Seznam literature \n",
    "\n",
    "Explores the VAD (Valence, Arousal, Dominance) model and its application in understanding human emotions.\n",
    "Wickens, C. D. (2008). \"Multiple Resources and Mental Workload.\" Human Factors: The Journal of the Human Factors and Ergonomics Society.\n",
    "\n",
    "\n",
    "\n",
    "<p style=\"margin-bottom:2cm;\"></p>\n",
    "<img src=\"https://raw.githubusercontent.com/andrejkk/ORvTK_SlidesImgs/master/footer_full.jpg\">"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
