Autor Tópico: Marca d'água invisível  (Lida 2690 vezes)

felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Online: 21 de Fevereiro de 2022, 12:53:55
Continuando desse post aqui:

Já viu isso aqui?
https://www.openstego.com/

É um programa que insere marca d'água invisível a olho nu. Funciona por um pequeno deslocamento na cor, que só é perceptível usando o programa que gerou a marca d'água. Não vai inibir a cópia, mas torna fácil identificar que a cópia é de uma imagem sua.

P.S.: é gratuito e código aberto.

Testei esse programa (é um app Java) sem sucesso, pois o Java instalado aqui é meio antigo.

Alguém conseguiu usar esse app com sucesso? Sigo tentando corrigir o Java aqui, mas esse ambiente é mais complicado que eu imaginei.


felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Resposta #1 Online: 21 de Fevereiro de 2022, 13:34:46
Já consegui, mas ainda tá meio gambiarra.

Primeiro, pra quem não tem o último Java instalado, tem a versão Oracle, que pede cadastro, e tem a versão aberta, que pode ser baixada aqui:
https://jdk.java.net/java-se-ri/17

Por hora, eu simplesmente copiei o app java (openstego.jar) pra pasta onde fica o Java acima. O correto seria colocar no Java no Path do windows, mas fiquei com preguiça. Ao rodar o programa você:
1. Clica em Generate Signature, digita usa palavra passe e grava um arquivo .sig, que é a assinatura a ser colocada no arquivo.
2. Clica em Embed watermark, seleciona a imagem e assinatura. Note: se vc colocar a extensão .jpg no arquivo de saída, a compressão é bem ruim. Achei melhor não colocar extensão, que gera um arquivo .bmp. Depois converte o arquivo .bmp pra .jpg.

Imagem original:


Imagem assinada, transformada em bmp e reconvertida a jpg no Paint:


Resultado da verificação:


O problema que observei até agora é que basta uma simples inversão da imagem, e a assinatura não é mais detectada.


André Sena

  • SysOp
  • Trade Count: (32)
  • Referência
  • *****
  • Mensagens: 10.780
  • Sexo: Masculino
  • café & fotografia
Resposta #2 Online: 21 de Fevereiro de 2022, 13:42:45
Não conheço.

A Adobe tem um esquema com a Digimarc, mas nunca testei.
http://payoff.digimarc.com/dgfi-photoshop/index.html

https://helpx.adobe.com/photoshop/using/digimarc-copyright-protection.html


Pelo que pude ver o OpenStego trabalha com dois métodos:
- sequencia aleatória de substituição do bit menos significativo (LSB). Não vi onde ele faz a substituição. Se é em algum canal RGB ou em canal de luminância. Mas tem de ver se o esquema é robusto a operações simples de edição em imagem como "girar". As vezes girar em pelo menos 1 grau pode ser o suficiente para que a marca d'agua não seja reconhecida e por consequência não ser possível provar a "origem da imagem".

- algoritmo de Dugad's: esse parece ser mais robusto. Numa pesquisa rápida parece que é baseado em Wavelet. Mais robusto a operações simples.

No meu Mestrado eu desenvolvi um algoritmo no Matlab para introduzir marca d'água digital invisível em imagem colorida , usando Transformada Rápida de Fourier (FFT), para testar a robustez a um ciclo de impressão e digitalização. Foi muito prazeiroso pois consegui estudar assuntos sobre processamento digital de imagem e ainda amarrar um pouco com gerenciamento de cor.

É legal ver iniciativas abertas e simples de marca d'água digital invisível mais acessíveis ao público.
André Sena
https://linktr.ee/andresena

31/03 - Dia Mundial do Backup - Não deixe para amanhã o backup de hoje.
Lembre-se: A questão não é SE o disco rígido (HD) vai falhar e sim QUANDO vai falhar.


André Sena

  • SysOp
  • Trade Count: (32)
  • Referência
  • *****
  • Mensagens: 10.780
  • Sexo: Masculino
  • café & fotografia
Resposta #3 Online: 21 de Fevereiro de 2022, 13:44:39
O problema que observei até agora é que basta uma simples inversão da imagem, e a assinatura não é mais detectada.

É o problema com algoritmos baseados em substituição no LSB.
André Sena
https://linktr.ee/andresena

31/03 - Dia Mundial do Backup - Não deixe para amanhã o backup de hoje.
Lembre-se: A questão não é SE o disco rígido (HD) vai falhar e sim QUANDO vai falhar.


felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Resposta #4 Online: 21 de Fevereiro de 2022, 15:54:00
É o problema com algoritmos baseados em substituição no LSB.

Criei uma assinatura simétrica, asdfghjjhgfdsa, e ainda assim não funcionou. A intenção do programinha é boa, mas é muito fácil de se enganar.


André Sena

  • SysOp
  • Trade Count: (32)
  • Referência
  • *****
  • Mensagens: 10.780
  • Sexo: Masculino
  • café & fotografia
Resposta #5 Online: 21 de Fevereiro de 2022, 19:42:57
Criei uma assinatura simétrica, asdfghjjhgfdsa, e ainda assim não funcionou. A intenção do programinha é boa, mas é muito fácil de se enganar.
A questão não é a assinatura e sim o método de inserção da marca d'água que não é robusto a transformações geométricas e outras operações.

Como o processo de substituição de LSB é simplesmente uma operação direta nos pixel's da imagem, tem esse detalhe. Por isso, que, outros métodos que utilizam algum tipo de transformada (DST, FFT, Wavelet, etc.), e, fazem alterações nos coeficientes de frequência dessas transformadas, são mais robustos.
« Última modificação: 21 de Fevereiro de 2022, 20:22:13 por André Sena »
André Sena
https://linktr.ee/andresena

31/03 - Dia Mundial do Backup - Não deixe para amanhã o backup de hoje.
Lembre-se: A questão não é SE o disco rígido (HD) vai falhar e sim QUANDO vai falhar.


Gabriel Büll

  • Trade Count: (0)
  • Colaborador(a)
  • ****
  • Mensagens: 2.535
  • Sexo: Masculino
Resposta #6 Online: 23 de Fevereiro de 2022, 09:49:55
Achei meio complicado, preciso de mais tempo para verificar...


felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Resposta #7 Online: 23 de Fevereiro de 2022, 10:54:43
Achei meio complicado, preciso de mais tempo para verificar...

Não estressa muito, não. Essa solução é muito frágil. Só funciona se o pirata usar exatamente a mesma foto tirada da sua galeria. Se girar, inverter, diminuir ou qualquer outra operação, a assinatura não é mais lida.


AFShalders

  • Trade Count: (28)
  • Referência
  • *****
  • Mensagens: 10.297
  • Sexo: Masculino
  • слава україна !!!
    • Old Good Light
Resposta #8 Online: 23 de Fevereiro de 2022, 16:06:23
Nenhum desses algoritmos garante nada.

Basta fazer uma série de flips, rotações em valores estranhos , blurs e sharpens que literalmente ferra tudo.
Isso sem contar resize e alterações nas curvas.


felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Resposta #9 Online: 23 de Fevereiro de 2022, 17:54:20
Nenhum desses algoritmos garante nada.

Basta fazer uma série de flips, rotações em valores estranhos , blurs e sharpens que literalmente ferra tudo.
Isso sem contar resize e alterações nas curvas.

O que eu indiquei é bastante fraco, e dá pra quebrar sem precisar de muito.

Mas essas coisas que vc citou normalmente estragam uma foto (ou melhoram, dependendo da foto...  :assobi:).


AFShalders

  • Trade Count: (28)
  • Referência
  • *****
  • Mensagens: 10.297
  • Sexo: Masculino
  • слава україна !!!
    • Old Good Light
Resposta #10 Online: 23 de Fevereiro de 2022, 18:05:23
O que eu indiquei é bastante fraco, e dá pra quebrar sem precisar de muito.

Mas essas coisas que vc citou normalmente estragam uma foto (ou melhoram, dependendo da foto...  :assobi:).


Depende das operações e dos valores aplicados.


nandoespinosa

  • Trade Count: (3)
  • Colaborador(a)
  • ****
  • Mensagens: 3.213
  • Sexo: Masculino
    • Nando Espinosa Fotografia
Resposta #11 Online: 24 de Fevereiro de 2022, 09:55:38
Pois é... Logo que li imaginei.. "Deve alterar a qualidade da imagem..."
Na realidade a única coisa que prova que a foto é nossa é o arquivo RAW ou JPG original da câmera.
Em casos de pessoas meio toscas, os metadados ajudam.
Mas juridicamente falando, em caso de processo por direitos autorais, a prova cabal é o arquivo original.


André Sena

  • SysOp
  • Trade Count: (32)
  • Referência
  • *****
  • Mensagens: 10.780
  • Sexo: Masculino
  • café & fotografia
Resposta #12 Online: 24 de Fevereiro de 2022, 11:29:14
Pois é... Logo que li imaginei.. "Deve alterar a qualidade da imagem..."

Dependendo do método de inserção da marca d'água ,visualmente, a diferença é imperceptível. A questão mesmo é a robustez da marca d'água.

Métodos mais robustos levam em consideração características do SVH (Sistema Visual Humano) para a implementação.
André Sena
https://linktr.ee/andresena

31/03 - Dia Mundial do Backup - Não deixe para amanhã o backup de hoje.
Lembre-se: A questão não é SE o disco rígido (HD) vai falhar e sim QUANDO vai falhar.


AFShalders

  • Trade Count: (28)
  • Referência
  • *****
  • Mensagens: 10.297
  • Sexo: Masculino
  • слава україна !!!
    • Old Good Light
Resposta #13 Online: 24 de Fevereiro de 2022, 14:14:16
Pois é... Logo que li imaginei.. "Deve alterar a qualidade da imagem..."
Na realidade a única coisa que prova que a foto é nossa é o arquivo RAW ou JPG original da câmera.
Em casos de pessoas meio toscas, os metadados ajudam.
Mas juridicamente falando, em caso de processo por direitos autorais, a prova cabal é o arquivo original.

Ou então se você tiver a imagem armazenada em algo tipo o Flicker, que retém a data de upload.


felipemendes

  • Moderador(a) Global
  • Trade Count: (9)
  • Referência
  • *****
  • Mensagens: 8.548
  • Sexo: Masculino
    • Meu Flickr
Resposta #14 Online: 24 de Fevereiro de 2022, 18:05:15
Ou então se você tiver a imagem armazenada em algo tipo o Flicker, que retém a data de upload.

Eu tava pensando aqui.

Um plate solver compara uma série de pontos em uma imagem com uma série de estrelas a fim de identificar a exata posição e rotação da imagem no céu noturno. Fico imaginando se não há como colocar círculos de gradientes espalhados pela imagem, desviando de um valor médio da imagem, que seriam detectados pelo programa de detecção da marca d'água.

Por que gradientes? Porque, como vc disse, basta um blur pra despistar o software. Só que se algo já estiver desfocado, precisa de muito desfoque pra desfigurar completamente. Se aumentar o sharp, os gradientes podem até diminuir, mas a imagem estraga mais rápido que os gradientes somem. Teria que reduzir muito a imagem pra que os círculos desapareçam.

Se o software for capaz de selecionar onde colocar os círculos, a fim de deixá-los discretos, pode ser que dê pra criar um software capaz de identificar a imagem mesmo depois de editada.