5. Anonimizacja instrukcja
Transkrypt
5. Anonimizacja instrukcja
LABORATORIUM TELEMONITORINGU OBIEKTÓW I AGLOMERACJI Temat: „Metody anonimizacji obrazu” W programie Watermarker.exe dostępny jest graficzny interfejs udostępniający opcje algorytmów anonimizacji. Funkcjonalności realizowane przez program za pośrednictwem GUI podzielone zostały na dwie grupy: przetwarzanie obrazów statycznych oraz przetwarzanie strumieni wizyjnych (Capture i MobieDec, nie wykorzystywane w tym laboratorium). Czarne pole po prawej stronie interfejsu pełni rolę informacyjną, gdzie znajdują się komunikaty o błędach oraz ewentualne wyniki przetwarzania. Podczas przetwarzania pojedynczych obrazów użytkownik zmuszony jest do wykonywania wszystkich operacji samodzielnie. Rys. 1 prezentuje dostępne opcje związane z przetwarzaniem obrazów. (a) (b) (c) (d) (e) Rys. 1. Opcje związane z przetwarzaniem obrazów Operacje możliwe do zrealizowania w procesie przetwarzania obrazów zostały podzielone na pięć grup. Każda grupa została zaznaczona kropkowaną linią na rys. 1 dodatkowo oznaczono wszystkie grupy literami (a - e). Poszczególne grupy oraz ich funkcje opisano w poniższych punktach. Wszystkie etapy przetwarzania opisano w logicznej kolejności, która jest konieczna do skutecznego przeprowadzenia procesu dekodowania. 1 1 Otwieranie i zapisywanie plików (a) Otworzyć nowy obraz - przycisk „Image” w grupie (a). Po zatwierdzeniu wyboru pojawi się okno zatytułowane „Original” prezentujące otworzony plik graficzny. Możliwe jest otwieranie nowych obrazów w dowolnym momencie pracy programu, jednak operacje będą przeprowadzane tylko na ostatnio otworzonym pliku. Zapisywanie wyników - przycisk „Save” w grupie (a). Zapisywany jest zawsze ostatnio wyświetlony obraz niezależnie od tytułu okna. Dla zapisu w formacie JPEG możliwe jest ustawienie parametru jakości zapisywanego pliku za pomocą suwaka znajdującego się w grupie (a), 100 oznacza najlepszą jakość obrazu po kompresji JPEG, wartość parametru jakości wyświetlana jest w tytule pola wyboru JPEG. W polu tekstowym zawierającym domyślnie tekst „OutputFilename” należy wpisać nazwę pliku wynikowego bez rozszerzenia, który zostanie zapisany w katalogu programu „Watermarker”. Aby plik został zapisany w innej lokalizacji należy podać całą ścieżkę dostępu do docelowego katalogu np. „C:\Users\User\Desktop\nazwaPliku”. 2 Detekcja obiektów z wykorzystaniem kaskady Haara (b) Dostępne są klasyfikatory Haara, wytrenowane pod kątem detekcji różnych obiektów. W programie istnieje możliwość wybrania dowolnej kaskady spośród 19 dostarczonych opisanych w plikach xml, do wyboru odpowiedniego pliku służy przewijana lista wyboru umieszczona w grupie (b). Doświadczalnie stwierdzono, że najlepsze rezultaty powoduje zastosowanie wytrenowanej do detekcji twarzy o nazwie „haarcascade_frontalface_alt2”. Ustawienie rozmiaru poszukiwanego obiektu suwakiem po lewej stronie grupy (b), domyślny rozmiar obiektu ustawiono na 40×40 pikseli. Należy mieć na uwadze, że wybór małego rozmiaru obiektu wydłuża proces detekcji natomiast ustawienie za dużego rozmiaru poszukiwanych obiektów zmniejsza dokładność. W celu przeprowadzenia detekcji obiektów w obrazie należy użyć przycisku „Multiple object detect”. Przeprowadzenie detekcji z zaznaczonym polem „show” powoduje wyświetlenie okna zatytułowanego „Detected” zawierającego zaznaczone czerwonym kolorem wykryte obiekty. 3 Ukrywanie obiektów i generacja klucza szyfrującego (c) Funkcje odwracalnego kodowania obiektów realizowane są przez komponenty wchodzące w skład grupy (c). 2 Kodowanie - Przycisk „Code”. Opcje: liczba przeprowadzanych operacji oraz rodzaj wykorzystywanych algorytmów. W celu ustalenia liczby relokacji należy ustawić suwak znajdujący się po prawej stronie grupy (c) na wybraną wartość z przedziału 0 – 10. Przesunięcie suwaka powoduje pojawienie się pól wyboru w grupach po trzy pola. Przykładowe ustawienie parametrów kodowania przedstawiono na rys. 2. (c) Rys. 2. Konfiguracja parametrów kodowania Proces kodowania umożliwia ukrywanie obszarów lub całego obrazu. W celu anonimizacji wyłącznie obiektów należy przeprowadzić detekcję obiektów opisaną poprzednim punkcie. Jeżeli wynik detekcji nie zwraca żadnych parametrów lub procedura detekcji nie została uruchomiona, proces kodowania obejmie cały obszar przetwarzanego obrazu. Obecność jednego wykrytego obiektu jest wystarczająca, aby procedura kodowania została przeprowadzona w danym obszarze zainteresowania. W efekcie kodowania obiektów wyświetlany jest zakodowany obraz wynikowy w oknie „Coded” oraz wygenerowany zostaje klucz szyfrujący w polu tekstowym na górze grupy (c). Pole tekstowe jest tylko do odczytu, możliwe jest skopiowanie klucza szyfrującego. 4 Osadzanie informacji dodatkowych (d) Informacja o lokalizacjach zakodowanych obiektów zapisywana jest w formie znaków wodnych lub w meta danych. Opcje związane z osadzaniem informacji dodatkowych zostały umieszczone w grupie (d): przycisk „Embed” - operacje zapisywania informacji w formie meta danych lub znaków wodnych. Należy zaznaczyć pole reprezentujące dany algorytm. Istnieje pięć możliwych sposobów umieszczania informacji dodatkowych, każdy z algorytmów wykorzystuje informacje otrzymane w wyniku detekcji obiektów. Opcja „XML” umożliwia zapisywanie meta danych w formie pliku „*.xml” z nazwą zgodną z polem tekstowym w grupie (a), domyślnie „OutputFilename.xml”. Ważne, aby zapisany plik „*.xml” miał identyczną nazwę, jak zakodowany plik graficzny. Kolejne pole „LSB” umożliwia osadzanie informacji z wykorzystaniem algorytmu znakowania wodnego LSB. Należy zwrócić uwagę na konieczność zapisywania 3 oznakowanych obrazów w postaci mapy bitowej „*.bmp”. Najmniejsza kompresja stratna JPEG skutecznie zniszczy osadzony znak wodny i uniemożliwi ekstrakcję parametrów. W celach porównawczych możliwe jest zapisywanie obrazów z wykorzystaniem kompresji JPEG, ale nie gwarantuje to prawidłowej detekcji znaku wodnego. Zaznaczenie pola „Line RGB” realizuje zapisanie informacji dodatkowych w postaci sygnatur w poszczególnych składowych barwnych. Słaba odporność algorytmu na kompresję JPEG narzuca zapisywanie oznakowanych obrazów jako pliki „*.bmp”. Możliwe jest zastosowanie kompresji JPEG w celach porównawczo – badawczych. Pole wyboru zatytułowane „Line HPD” realizuje osadzanie informacji o lokalizacjach obiektów z wykorzystaniem zakłóceń wysokoczęstotliwościowych. Oznakowany obraz może zostać zapisany w dowolnym formacie, ponieważ wstępne testy odporności wykazały wystarczającą odporność na kompresję JPEG. Każda opisana metoda z wyłączniem „XML” powoduje wyświetlenie w oknie „Positions watermarked” obrazu wynikowego zawierającego osadzone informacje dodatkowe. Możliwe jest zapisanie oznakowanego obrazu, który zawiera zakodowane obiekty oraz osadzone informacje dodatkowe. 5 Ekstrakcja osadzonych informacji dodatkowych (d) Pierwszym etapem odczytywania zabezpieczonego pliku jest ekstrakcja informacji o lokalizacjach ukrytych obiektów. Procedura wydobywania ukrytych informacji wymaga dokładnej znajomości metody zastosowanej po stronie kodera do osadzania danych. W przypadku korzystania z metody „XML” dodatkowo wymagana jest obecność meta pliku o tej samej nazwie, co przetwarzany plik graficzny. Przycisk „Extract” w grupie (d) – uruchomienie ekstrakcji. Poszczególne pola wyboru umożliwiają wydobywanie informacji z użyciem odpowiedniego algorytmu. W przypadku algorytmu „LSB” dodatkowo wyświetlany jest czarnobiały obraz „Binary watermark” reprezentujący binarną postać ukrytego znaku wodnego. Nie jest możliwy zapis binarnej reprezentacji znaku wodnego. 4 6 Dekodowanie zaszyfrowanych obiektów (c) Na podstawie wyniku ekstrakcji realizowane jest dekodowanie wszystkich ukrytych obiektów. W przypadku braku informacji o obiektach proces dekodowania zostanie przeprowadzony na całym obrazie. przycisk „Decode” na dole grupy (c) - dekodowanie z wykorzystaniem klucza szyfrującego wpisywanego w pole tekstowe po prawej stronie. Klucz szyfrujący musi być dokładnie taki sam, jak ten wygenerowany podczas kodowania. Wynik przetwarzania wyświetlany jest w oknie „Decoded”, jeżeli parametry obiektów zostały wydobyte zgodnie z algorytmem użytym po stronie kodera oraz wprowadzono właściwy klucz obraz wyjściowy powinien być porównywalny z oryginalnym. Możliwe jest pojawienie się artefaktów oraz zaburzenia barw w przetwarzanych obszarach spowodowane wpływem kompresji stratnej. Istnieje możliwość zapisania obrazu wyjściowego. 7 Wydobywanie addytywnych znaków wodnych (e) Procesem równorzędnym do dekodowania obiektów jest wydobywanie addytywnych znaków wodnych. Ze względu na właściwości algorytmu LSB procedura może być stosowana w obrazach zapisywanych bezstratnie w formacie „*.bmp”. Analogicznie do procedury dekodowania, jeżeli wydobyto informacje o ukrytych obiektach proces ekstrakcji zostanie ograniczony do poszczególnych obszarów w przeciwnym wypadku znak wodny zostanie wydobyty z całego obrazu. W celu przeprowadzenia procesu ekstrakcji osadzonego znaku wodnego addytywną metodą LSB należy zaznaczyć pole wyboru „Extract” oraz wybrać liczbę warstw użytych do osadzenia znaku wodnego za pomocą suwaka na dole grupy (e). Proces uruchamiany jest za pośrednictwem przycisku „AdditiveLSB”. Jakość przetworzonego obrazu oraz wydobytych znaków wodnych zależna jest od wykorzystanej ilości warstw bitowych. 8 Zadania do wykonania Wczytać plik zawierający twarz lub kilka twarzy en face Wykonać detekcję twarzy (punkt 2 powyżej), dla różnych ustawień rozmiaru twarzy. Zanotować czas obliczeń pokazany w oknie z dziennikiem zdarzeń (po prawej stronie okna programu) Skonfigurować algorytm relokacji pikseli (punkt 3 powyżej), zapisać klucz szyfrujący 5 Osadzić dane o lokalizacji obiektów (punkt 4 powyżej) korzystając z 2 wybranych metod, zapisać rodzaj zastosowanego algorytmu osadzania, zapisać obraz wynikowy z jakościami JPEG-100, JPEG-25 i JPEG-10, Dokonać ekstrakcji z obrazu wynikowego danych o lokalizacji, odpowiednim algorytmem osadzania (punkt 5 powyżej) Zdekodować oryginalny obraz (punkt 6 powyżej) Ponownie na oryginalnym obrazie wykonać AdditiveLSB, najpierw z opcją Embed, później z opcją Extract z minimalnym, średnim i maksymalnym wykorzystaniem bitów, regulowanym suwakiem. Jakość pliku: JPEG100 JPEG100 JPEG25 JPEG25 JPEG10 JPEG10 Skomentować wyniki uzyskiwane w powyższych krokach. Wypełnić tabelę: Konfiguracje algorytmu relokacji Wpisz tu użyty przez siebie Wpisz tu użyty przez siebie drugi pierwszy algorytm i klucz algorytm i klucz Opisz tu subiektywne spostrzeżenia Opisz tu subiektywne spostrzeżenia i oceń jakość obrazu po kodowaniu i i oceń jakość obrazu po kodowaniu i dekodowaniu dekodowaniu Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. Opisz j.w. 6