Poszukuję pojemnego, odpornego algorytmu watermarkingowego (obrazy)

0

Cześć, poszukuję algorytmu o wymienionych niżej cechach:

1 Duża pojemność (w miarę możliwości, na przykład jpg w innym formacie jpg)

2 Wysoka wytrzymałość (druk, foto -> znak wodny powinien być nadal w pełni odczytywalny)

3 Algorytm powinien działać tylko na obrazie nie na nagłówkach plików itp ...

4 Może być całkowicie wykrywalny dla stegoanalizy (nie jest to w ogóle ważne), ale znak wodny powinien być niewidoczny dla ludzkiego oka.

Czy ktoś zna, algorytm, który spełnia te lub podobne wymagania? Gdzie należy szukać więcej informacji?

Bardzo dziękuję za każdą pomoc ;)

Dodam, że nie jest też ważne w jakiej dziedzinie pracuje algorytm

1

To chyba chodzi o steganografię, a nie żaden watermarking. Watermark własnie ma być widoczny przez ludzkie oko.

0

Nie koniecznie, pisze o watermarku ze względu na to, że te algorytmy są odporniejsze na różne ataki i inne wypadki niż steganograficzne. Zresztą nazwa jest nieważna, szukam po prostu algorytmu, który z grubsza spełnia opisane założenia

0

Możesz napisać w jaki sposób ma być odczytywalny z wydruku?

Czy chodzi o coś takiego:
obrazek ->dodanie znaku wodnego ->druk ->skan/zdjęcie ->analiza?

Jeżeli tak to nie bardzo to widzę, bo zdjęcie/skan to będzie już inny obraz niż wejściowy i może się bardzo różnić zarówno w dziedzinie przestrzennej jak i częstotliwości(FFTW odpada).

Żaden gotowy algorytm nie przychodzi mi do głowy, ale ja bym próbował tak:

  1. http://goo.gl/dRCBUV przy czym kombinował bym falką coiflet lub symlet zamiast opisanych w linku
  2. Dodał znak wodny

Odczyt skanu/zdjęcia wyglądał by tak:

  1. Jeżeli da się odczytać to ok
  2. Jeżeli nie da się odczytać to przekształcamy falkowo jak przy dodaniu znaku wodnego
  3. Liczymy korelację z przetransformowanym obrazem oryginalnym z wcześniej dodanym znakiem wodnym
  4. Wykonujemy "na czuja" przekształcenia w dziedzinie transformaty starając się poprawić korelację

Wiem, że określenie "na czuja" nie jest za fajne bo trzeba mieć już trochę wiedzy i doświadczenia w odszumianiu, ale to wszytko zależy od rodzaju zniekształcenia więc ciężko wskazać jakiś konkretny algorytm.

Jeżeli nie jesteś ekspertem to możesz zawsze próbować napisać program który będzie dobierał(bruteforcem, rozmytą czy neuronami z minimalizacją błędu) parametry przekrztałceń za ciebie, ale to jest dodatkowa i nietrywialna złożoność, a sam algorytm do odszumiania i tak musisz dobrać ręcznie.

Problem ogólnie bardzo ciekawy, ale jak na mnie zbyt skomplikowany(w sumie zależy od przypadku).
Jeżeli znajdziesz jakiś papierek na ten temat, albo sam wymyślisz jakieś dobre(bo to ode mnie jest złe, ale najlepsze jakie potrafię wydumać) rozwiązanie to odpisz w tym wątku.

0

Dyskretna transformata falkowa(DWT) to dobry trop. W linku niżej masz przykładowe wykorzystanie i kilka testów m.in. wpływu szumu na odczytanie ukrytego obrazka.
http://www.iis.sinica.edu.tw/page/jise/2006/200601_09.pdf

1 użytkowników online, w tym zalogowanych: 0, gości: 1