2024-09-10 FaradAI T3.1 Dataset Task

EDF (European Defence Fund) projekts FaradAI, kur mums nepieciešams savākt no Telegram kanāliem video ar Ukrainas videos, kur redzama militārā tehnika, bet nedrīkst būt identificējamas cilvēku sejas vai nēētisks saturs, kurā redzami cilvēki.

Plāns:

  1. Ir izveidots Telegram bots, kurš jau ir noskrāpējis 35k videos un ar ffmpeg izvilcis 3 frame no katra video (sākums, vidus, beigas).

  2. Ar Segment Anything Tipa modeļiem Zero-shot learning veidā ir jāatpazīst objekti, kuri varētu mums intresēt. Militārā tehnika, vēlams ar pēc iespējas augstāku segmentācijas un marķējumu pakāpi.

  3. Ar Image Captioning modeļiem ir jāizveido apraksti video frame, lai varētu izvēlēties, kuri video ir mums nepieciešami. Šeit nepieciešams arī notestēt OpenAI GPT4 image captioning modeļus. GPT4 varētu mēģināt, lai marķētu vēlamās kategorijas.

  4. Atlasītajos video jāaizklāj ar blur rectangle cilvēki, izmantojot FFMPEG.

  5. Visbeidzot veiksim manuālo atlasi, lai nofiltrētu video, kurā redzami cilvēki vai nēētisks saturs.

 

Pašreizējais risinājums

 

GIT: https://github.com/evaldsurtans/telegram-war-videos-2024.git

 

  1. 2_scarping.py - Telegram bots, kas skrāpē video ierakstus no definētiem kanāliem

    1. Saglabā datus ./videos/ ar detalizētu informāciju faila nosaukumā par kanālu, video ID image-20241001100027375

    2. Saglabā 3 kadrus video sākumā, vidū un beigās (10% no sākuma un beigām) ./snipplets/ failā ar detalizētu informāciju faila nosaukumā

      image-20241001100528962

  2. 3_image_captioning.py - Segment anything tipa modeļi un Image Captioning modeļi, lai atlasītu video, kuri ir nepieciešami tālākai apstrādei. Saglabā gan katru masku atsevišķi izgrieztu katram kadram, gan kopīgas bildes, gan masku un tekstu informāciju JSON formātā direktorijā ./masks/

image-20241001143550603

 

image-20241001143622519

 

TODO

  1. Pirms Segment anything pielietot pre-processing metodes https://www.scaler.com/topics/blob-detection-opencv/

  2. Izpētīt kā pieejamie attēlu segmentātori YOLOv5 segmentē attēlus, vai var izmantot, lai atlasītu datu kopu. Yolo marķējumus vai vismaz segmentētos apgabalus var izmantot tālāk captioning modelim. Ja modelis neatrod segmentētus apgabalus piemēram tankus, tad rodas problēmas tālākajos soļos. https://github.com/AlexandreSajus/Military-Vehicles-Image-Recognition

    https://github.com/RsGoksel/Military-Vehicles-Detection https://www.kaggle.com/code/killa92/military-vehicles-detection-using-yolov8

  3. Pievienot klasiskos OpenCV algoritmus blob detection, lai atrastu potenciālos objektus priekš captioning. Jāpanāk, ka šis paraugs strādātu https://share.yellowrobot.xyz/quick/2024-10-1-F67A3ACD-CEAE-4087-B55F-4E5352AC2107.zip image-20241001142450424

  4. Izpētīt kā GPT4 veic zero-shot captioning, pievienot to arī, ja neatrod nekādu jēgpinu saturu.

  5. Uzlabot captioning - atrast dažādus modeļus, lai veiktu zero-shot captioning. Veikt detalizētu reportm un izķert whitlesited, backlisted vārdus.

  6. Saglabāt izgrieztas bildes apgabaliem ar caption un pilnu bildi ar caption (ieskaitot arī nevēlamus objektus)

  7. Ar jaunu skriptu 6_video_cutter.py. Video izgriezt pa 0.5 sek intervālu pārbaudot doto objektu (izmantot SA - Segment Anything funkciju norādot objekta atrašanās vietu). Saglabāt gan pilnu video, gan apgabala video ar captions. Saglabāt rezultātus atsevišķā folder. Visi video mp4 formātā. Visticamāk vajadzēs padding un apvienot vairākus apgabalus vienā objektā

  8. Atrast seju, cilvēku segmentēšanas modeļus (YOLOv5) un video blurotu cilvēkus 7_video_blur_humans.py. Saglabāt rezultātus atsevišķā folder. Visi video mp4 formātā.

  9. Nepieciešams atpazīt areal photos, no non-areal photos, pievienot marķējumu JSON

  10. Nepieciešams SLR par esošajiem pētījumiem par šo tēmu - kādi modeļi un metodes pieejamas open-source https://link.springer.com/chapter/10.1007/978-981-99-3691-5_22

    https://www.researchgate.net/figure/Detection-and-classification-of-military-vehicles-on-a-terrain-using-YOLOv8-model0_fig3_384089794

     

 

Pieeja Serverim

Datu un pirmoda atrašanās vieta

SSH access

Scraper palaists screen

image-20241001100217591

image-20241001100240505

 

Python environment