A képkocka önmagában csak egy pillanat. A valódi kihívás – és a támadási felület – akkor jelenik meg, amikor ezek a pillanatok sorozattá, vagyis videóvá állnak össze. Az időbeli ellenséges példák (Temporal Adversarial Examples) nem csupán egymás után fűzött, manipulált képek. Sokkal kifinomultabbak: a támadás lényege az időbeli dimenzióban, a mozgásban, a változásban rejlik.
Amíg egy statikus képnél a pixelek térbeli elrendezését zavarjuk meg, addig egy videónál a pixelek időbeli változását, a dinamikát vesszük célba. Ez egy teljesen új játszótér a red teamer számára, ahol a modellek oksági és szekvenciális következtetéseit tehetjük próbára.
A statikus és időbeli támadások különbsége
Gyakori tévedés, hogy a videó-alapú támadás csupán annyit jelent, hogy minden egyes képkockára lefuttatunk egy standard, kép-alapú támadást (pl. FGSM). Bár ez is egy valid technika, a valódi időbeli támadások ennél mélyebbre mennek. Az alábbi táblázat segít megérteni a legfontosabb különbségeket.
| Jellemző | Statikus ellenséges példa (Kép) | Időbeli ellenséges példa (Videó) |
|---|---|---|
| Dimenzió | 2D (szélesség, magasság) + csatornák | 3D (szélesség, magasság, idő) + csatornák |
| Támadás célja | A pixelek térbeli mintázatának megzavarása. | A képkockák közötti mozgás, változás és konzisztencia megzavarása. |
| Perturbáció természete | Statikus zaj, ami minden képen ugyanaz lehet. | Dinamikus, időben változó zaj, ami a mozgásvektorokat célozza. |
| Észlelhetőség | Egyetlen képkockán kell rejtve maradnia. | A képkockák közötti „villódzás” (flickering) elkerülése kritikus. A perturbációnak időben konzisztensnek kell lennie. |
| Tipikus célmodell | CNN (pl. ResNet, VGG) | RNN, LSTM, 3D CNN, Transformer-alapú videó modellek (pl. ViViT) |
Támadási vektorok: Ahol a sebezhetőség rejlik
Az időbeli támadásoknak két fő kategóriáját különböztetjük meg aszerint, hogy hol és hogyan avatkozunk be a videófolyamba.
1. Képkocka-szintű, de időben konzisztens perturbációk
Ez a legegyszerűbb megközelítés. Lényegében egy klasszikus ellenséges támadást alkalmazunk, de egy fontos megkötéssel: a zajt úgy tervezzük, hogy az képkockáról képkockára csak minimálisan változzon, elkerülve a feltűnő villogást. A támadás itt még mindig a pixelek térbeli elrendezését célozza, de figyelembe veszi az időbeli folytonosságot.
- Előny: Relatíve egyszerű implementálni, ha már van tapasztalatod a kép-alapú támadásokkal.
- Hátrány: Kevésbé hatékony a mozgást és dinamikát elemző modellek ellen, mert nem magát a mozgást támadja.
2. Valódi időbeli manipulációk
Itt lépünk szintet. A célpontunk már nem a képkocka tartalma, hanem a képkockák közötti kapcsolat. Ezek a támadások sokkal kifinomultabbak és nehezebben detektálhatók.
- Mozgásvektorok manipulálása (Optical Flow Attack): A legtöbb videóelemző modell valamilyen formában számol optikai áramlást (optical flow), ami leírja a képpontok elmozdulását két egymást követő képkocka között. A támadó kis mértékben megváltoztatja ezeket a mozgásvektorokat. Az eredmény? Az emberi szem számára a mozgás változatlannak tűnik, de a modell teljesen más cselekvést „lát bele”. Például egy integetésből egy ütő mozdulatot, vagy egy sétáló emberből egy eleső alakot.
- Időzítési és szekvencia támadások: A modell a képkockák sorrendjére és időzítésére is támaszkodik. Mi történik, ha egy-két kulcsfontosságú képkockát törlünk? Vagy ha felcserélünk kettőt? Esetleg ha beillesztünk egy szinte teljesen fekete, de minimális zajt tartalmazó képkockát? Ezek a beavatkozások összezavarhatják a modell időbeli kontextusértelmezését.
Pszeudokód: Optikai áramláson alapuló támadás
Az alábbi pszeudokód egy egyszerűsített logikát vázol fel, ami egy videó optikai áramlását manipulálja a klasszifikáció megváltoztatása érdekében.
Ez nem egy teljes, futtatható kód, hanem a koncepció megértését szolgálja!
# Pszeudokód egy időbeli ellenséges támadás generálására
függvény generalj_idobeli_tamadast(eredeti_video, cel_osztaly, erosseg):
# A videó képkockákra bontása
kepkockak = video_kockakra_bont(eredeti_video)
perturbacio_gyujto = []
# Iteráció a képkocka párokon
ciklus i = 0-tól (kepkockak.hossza - 2)-ig:
kepkocka1 = kepkockak[i]
kepkocka2 = kepkockak[i+1]
# 1. Optikai áramlás (mozgásvektorok) számítása
optikai_aramlas = szamits_optikai_aramlast(kepkocka1, kepkocka2)
# 2. A modell gradiensének kiszámítása a mozgásvektorokra nézve
# Azt vizsgáljuk, hogyan kellene a mozgást megváltoztatni,
# hogy a modell a cél_osztály felé tolódjon.
gradiensek = szamits_gradienst(modell, optikai_aramlas, cel_osztaly)
# 3. A perturbáció létrehozása a gradiens alapján
# Ez a "zaj", amit hozzáadunk a mozgásvektorokhoz.
mozgas_perturbacio = erosseg * normalizal(gradiensek)
# 4. A perturbáció hozzáadása a gyűjtőhöz
perturbacio_gyujto.append(mozgas_perturbacio)
# 5. Az új, manipulált videó összerakása a perturbált mozgás alapján
manipulalt_video = allitsd_ossze_a_videot(kepkockak, perturbacio_gyujto)
visszaad manipulalt_video
AI Red Teamer nézőpont
Amikor időbeli támadásokkal dolgozol, a gondolkodásmódodnak is meg kell változnia. Nem elég a „hogyan néz ki”, a „hogyan mozog” kérdésre kell koncentrálnod.
- Célpontok: A legizgalmasabb célpontok a cselekvésfelismerő rendszerek (pl. sportközvetítések elemzése), a megfigyelőrendszerek (pl. gyanús viselkedés detektálása), és az autonóm járművek percepciós moduljai (pl. egy gyalogos szándékának félreértelmezése).
- Rejtőzködés: A legfőbb kihívás a perturbáció rejtve tartása. Egy apró, de konzisztens változás a mozgásban sokkal hatékonyabb és észrevétlenebb, mint egy nagy, hirtelen zaj. A „flicker detection” (villódzás-érzékelés) a legegyszerűbb védekezés, ezt mindenképp el kell kerülnöd.
- Fizikai megvalósíthatóság: Míg egy digitális videót könnyű manipulálni, a fizikai világban egy időbeli támadás sokkal nehezebb. Hogyan tudnád egy valós kamera képén a mozgásvektorokat finomhangolni? Ez már a fény manipulálásának, projektorok használatának vagy speciális anyagoknak a területe, ami jelentősen növeli a komplexitást.
Az időbeli perturbációk megértése és alkalmazása alapvető fontosságú a modern, videó-alapú AI rendszerek tesztelésében. Ezek a támadások rávilágítanak arra, hogy a modellek mennyire törékenyek lehetnek, amikor nem csupán statikus mintázatokat, hanem dinamikus folyamatokat kell értelmezniük. A következő szinteken azt vizsgáljuk majd meg, hogyan lehet ezeket a technikákat konkrét, magas szintű cselekvések felismerésének szabotálására használni.