Scripts
experiment_sweep
Demo script to test wandb sweep configuration and logging. This is a dry run to verify the setup works correctly.
main()
Main function that handles both sweep and standalone runs.
Source code in src/scripts/experiment_sweep.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | |
process_video
Ekstrakcja danych z nagrania ekranu aplikacji
Skrypt do utworzenia zbioru danych (robocza nazwa Rococo2) z nagrania ekranu aplikacji obsługującej system autoryzacji osób na koncercie przez rozpoznawanie twarzy. Na ekranie wyświetlany jest obraz z kamery oraz w lewym dolnym rogu: zdjęcie rozpoznanej osoby z bazy danych lub statyczna ikona.
Osoba podchodzi do kamery, kiedy zostanie rozpoznana, w rogu przez pewien czas wyświetla się jej zdjęcie z bazy.
W niektórych momentach w aplikacji otwiera się popup, który zasłania zarówno obraz z kamery i ikonę/zdjęcie w lewym dolnym rogu.
Uruchomienie
Uruchomienie
just process_video
Usunięcie plików wygenerowanych przez skrypt
just process_video_clean
Działanie skryptu
TODO
Notatki
Wycięcie fragmentu wideo
ffmpeg -i input.mp4 -ss 00:20:00 -t 00:01:00 -c copy output.mp4
Indeksowanie klatek w filmie
- Indeksowanie klatek przez
cap.set(cv2.CAP_PROP_POS_FRAMES,myFrameNumber)może dać nieco inny rezultat niż dojście do klatki o tym indeksie przy sekwencyjnym przejściu (klatki kluczowe, kodowanie mp4) - Dla spójności, żeby dostać tę samą klatkę po indeksie trzeba iterować sekwencyjnie
Problemy
- Pop-up w 20:00-21:00
Format może nie być dobry do ewaluacji modeli
- Występują opóźnienia w rozpoznawaniu i w wyświetlaniu zdjęcia w lewym-dolnym rogu
- Klatka z filmu będzie oznaczona id osoby rozpoznanej przez model bazowy
- Id osoby jest dopisywane do tych klatek, dla których model dokonał autoryzacji i w lewym dolnym rogu wyświetliła się twarz
- Powiedzmy że osoba pojawia się w klatce 1000
- Model rozpoznaje ją w klatce 1100
- Klatki 1000-1099 są podpisane jako puste, chociaż jest na nich osoba
- Powiedzmy, że osoba została rozpoznana w klatce 1100
- W lewym dolnym rogu wyświetla się jej zdjęcie, aż do klatki 1300
- W klatce 1200 rozpoznana osoba już wyszła z kadru
- Na środku kadru stoi ktoś inny
- Mamy klatkę podpisaną jako osoba A, chociaż jest na niej osoba B
Objętość danych
- Zapisywanie każdej klatki jako jpg (wycięty tylko obraz z kamery) -> 1GB na minutę nagrania
- Pomysł - najpierw wyznaczyć mapowanie numer klatki -> id osoby (lub 0 jeśli brak) - ground truth
- Potem na podstawie tego mapowania - podpróbkowanie
- np. 10 równomiernie rozłożonych klatek z każdej sekwencji