跳到正文
DEV Community· LeoJulieta·· 3 小時前AI 評分16

如何用 Python 偵測 Deepfakes 並遵守歐盟指令

Como Detectar Deepfakes e Cumprir a Diretiva UE com Python

AI 導讀

指南説明如何辨識深偽內容,並示範用 Python 建立影片偵測器。程式每 2 秒擷取一格,檢查壓縮痕跡及中繼資料,並查詢 Microsoft Video Authenticator API。文章稱,未有為深偽內容加上標籤的平台,最高可被罰年度營業額的 6%。

正文

LeoJulieta

📢 Diretiva UE sobre conteúdos sintéticos: o que muda, como detectar deepfakes e montar seu próprio detector em Python


Introdução

A Diretiva da UE sobre conteúdos sintéticos entrou em vigor e já está gerando multas de até 6 % do faturamento anual das plataformas que não rotulam deepfakes. Se você pesquisou “como detectar deepfake” ou “ferramentas IA” nos últimos dias, este artigo é a sua solução prática: explicamos a lei, mostramos os sinais que revelam falsificações, comparamos as melhores ferramentas (gratuitas e pagas) e ainda entregamos um passo‑a‑passo para criar seu próprio detector usando Python e APIs públicas.


Por que isso importa agora?

Motivo O que acontece se ignorar
Obrigação legal – Diretiva UE 2024/XX Multas de até 6 % do faturamento anual + risco de remoção de conteúdo
Desinformação em alta – eleições, crises sanitárias e campanhas de marketing Perda de credibilidade, viralização de notícias falsas
Pressão das marcas – anunciantes exigem garantia contra falsificações Contratos cancelados, danos à reputação
Busca em alta – +247 % de pesquisas por “detectar deepfake” no Brasil e Portugal nos últimos 3 meses Demanda imediata por soluções práticas

Como identificar um deepfake: sinais que você pode checar agora

1. Sinais visuais

  • Iluminação inconsistente – sombras que não seguem a fonte de luz.
  • Artefatos de compressão – blocos visíveis em áreas de alta movimentação (JPEG/HEVC).
  • Micro‑expressões – piscadas ou sorrisos fora de ritmo.

2. Sinais de áudio

  • Frequências estranhas – ausência de harmônicos naturais.
  • Desfasamento labial – lábios que não acompanham a fala.

3. Impressões digitais do arquivo

  • Metadados EXIF – data, câmera e software de edição.
  • Watermarks invisíveis – marcas inseridas por geradores como DALL‑E 3 ou Stable Diffusion.

4. Modelos de IA que detectam deepfakes

Tipo O que faz Exemplo de uso
CNN Analisa padrões de pixel Detectar artefatos visuais
RNN / LSTM Processa sequências de áudio Identificar anomalias sonoras
Transformers multimodais (CLIP, Whisper) Combina visão e som Acurácia > 95 % no DFDC

Ferramentas de detecção: o que está disponível (gratuito vs pago)

Categoria Gratuita Pago (planos a partir de)
Análise de vídeo Microsoft Video Authenticator (online, limite de 30 s) Deeptrace (Sensity AI) – R$ 2.500/mês
Análise de áudio Google Cloud Speech‑to‑Text (modo free‑tier) AudioScope – R$ 1.200/mês
Verificação de metadados ExifTool (CLI) MetaGuard – R$ 800/ano
SDK/API DeepFaceLab (open‑source) Microsoft Azure Video Indexer – R$ 3 USD por hora de vídeo

Dica prática: combine uma ferramenta gratuita para triagem (ex.: ExifTool + Video Authenticator) e, só se necessário, acione a solução paga para análise aprofundada.


Montando seu detector caseiro em Python (exemplo completo)

Objetivo: analisar um vídeo, extrair frames, checar artefatos visuais e validar metadados.

# 1️⃣ Instale as dependências
pip install opencv-python ffmpeg-python pillow requests tqdm
import cv2, os, json, subprocess, requests
from tqdm import tqdm
from PIL import Image
import numpy as np

# 2️⃣ Função: extrair 1 frame a cada 2 segundos
def extract_frames(video_path, out_dir="frames"):
    os.makedirs(out_dir, exist_ok=True)
    cap = cv2.VideoCapture(video_path)
    fps = cap.get(cv2.CAP_PROP_FPS)
    interval = int(fps * 2)          # 2 s
    count = 0
    while True:
        ret, frame = cap.read()
        if not ret:
            break
        if int(cap.get(cv2.CAP_PROP_POS_FRAMES)) % interval == 0:
            fname = f"{out_dir}/frame_{count:04d}.jpg"
            cv2.imwrite(fname, frame)
            count += 1
    cap.release()
    return count
# 3️⃣ Função: detectar artefatos de compressão usando diferença de blocos JPEG
def detect_artifacts(img_path, block=8, threshold=15):
    img = Image.open(img_path).convert("L")
    arr = np.array(img, dtype=np.int32)
    h, w = arr.shape
    score = 0
    for y in range(0, h - block, block):
        for x in range(0, w - block, block):
            block_pixels = arr[y:y+block, x:x+block]
            # variância dentro do bloco
            var = block_pixels.var()
            if var < threshold:
                score += 1
    return score / ((h//block)*(w//block))   # proporção de blocos suspeitos
# 4️⃣ Função: consultar a API gratuita do Microsoft Video Authenticator (demo)
def check_video_authenticator(frame_path, api_key):
    url = "https://api.videoauthenticator.microsoft.com/v1/analyze"
    with open(frame_path, "rb") as f:
        files = {"file": f}
        headers = {"Ocp-Apim-Subscription-Key": api_key}
        r = requests.post(url, files=files, headers=headers)
    return r.json()
# 5️⃣ Orquestração
if __name__ == "__main__":
    video = "exemplo.mp4"
    api_key = "SUA_CHAVE_AQUI"

    n = extract_frames(video)
    print(f"✔️ {n} frames extraídos")

    suspeitos = 0
    for f in tqdm(sorted(os.listdir("frames"))):
        path = f"frames/{f}"
        art_score = detect_artifacts(path)
        if art_score > 0.30:               # >30 % de blocos suspeitos
            resp = check_video_authenticator(path, api_key)
            if resp.get("syntheticLikelihood", 0) > 0.6:
                suspeitos += 1
                print(f"⚠️ Deepfake provável em {f}")

    print(f"\n🔎 Total de frames suspeitos: {suspeitos}/{n}")

O que o script faz?

  1. Extrai frames a cada 2 s (custo baixo).
  2. Analisa compressão – blocos com baixa variância costumam ser sinais de geração artificial.
  3. Consulta a API do Microsoft Video Authenticator (gratuita para até 30 s).
  4. Reporta os frames com alta probabilidade de serem sintéticos.

Ajuste rápido: aumente threshold ou reduza interval para maior sensibilidade.


Checklist prático – o que fazer hoje

✅ Ação Prazo Responsável
1 Mapear todas as plataformas que hospedam vídeos da sua marca 1 dia Equipe de compliance
2 Implementar a extração automática de frames (script acima) nos pipelines de ingestão 1 semana DevOps
3 Integrar API de detecção (Video Authenticator ou Azure Video Indexer) ao workflow 2 semanas Squad de IA
4 Criar política interna de rotulagem conforme a Diretiva UE (selo “conteúdo sintético”) 3 semanas Jurídico + Marketing
5 Treinar a equipe de suporte para responder a denúncias de deepfake 1 mês RH
6 Auditar mensalmente a taxa de falsos positivos/negativos e ajustar thresholds Recorrente Segurança da informação

Casos reais de 2024

Setor Caso Como a detecção evitou prejuízos
Jornalismo BBC usou Microsoft Video Authenticator para bloquear um vídeo falso de um político antes da transmissão ao vivo. Correção em < 2 h; evitou 1,2 mi de

Herramienta mencionada: GitHub Copilot

來源:DEV Community · dev.to