SynthiCheck, metin açıklamasından (prompt) görsel üretebilen ve aynı zamanda görsellerin sentetik (yapay zeka tarafından üretilmiş) olup olmadığını analiz edebilen bir Python projesidir. Bu proje, Üretken Yapay Zeka dersi kapsamında, üretken yapay zeka modelleri ve bunların yaratacağı dezenformasyon problemini adreslemek üzere tasarlanmıştır.
SynthiCheck iki temel amaca hizmet eder:
-
Sorunu Gösterme: Metin-görsel dönüşümü yapan üretken modeller kullanarak ikna edici sentetik görseller üretir ve bu teknolojinin potansiyel risklerini görünür kılar.
-
Soruna Çözüm: Görsellerin sentetik olup olmadığını tespit eden bir analiz modülü sunar ve bu görsellerdeki yapay izleri belirler.
Bu iki yönlü yaklaşım, dijital dezenformasyon sorununa hem farkındalık yaratarak hem de pratik bir çözüm sunarak yaklaşır.
SynthiCheck sisteminin çalışma akışı aşağıdaki adımlardan oluşmaktadır:
graph TD
A[Kullanıcı Girişi] --> B{İşlem Tipi}
B -->|Görsel Üretme| C[Metin Promptu İşleme]
B -->|Görsel Analiz| D[Görsel Yükleme]
C --> E[CLIP Metin Kodlama]
E --> F[Üretici Model Seçimi]
F -->|Stable Diffusion| G1[Diffusion Süreci]
F -->|cGAN| G2[GAN Generator]
F -->|Normalizing Flow| G3[Flow Dönüşümleri]
G1 --> H[Sentetik Görsel]
G2 --> H
G3 --> H
D --> I[Görüntü Ön İşleme]
I --> J[CNN Özellik Çıkarımı]
J --> K[Artifact Analiz Modülleri]
K --> L[Sentetiklik Skoru Hesaplama]
L --> M[Görselleştirme ve Raporlama]
H -.-> I
SynthiCheck projesi yedi ana bileşenden oluşur:
- main.py: Ana uygulama dosyası, kullanıcı arayüzü ve algoritmaların entegrasyonunu sağlar.
- synthetic_generator.py: Metin açıklamasından sentetik görsel üreten algoritmalar (Stable Diffusion, cGAN, Normalizing Flow).
- synthicheck.py: Görsel analiz ve doğrulama algoritması.
- utils.py: Yardımcı fonksiyon ve araçlar.
- huggingface_integration.py: HuggingFace modellerinin indirilmesi ve yönetimi için modül.
- artifact_tracer.py: Görsellerdeki yapay izleri tespit eden ve görselleştiren modül.
- evaluation.py: Model performansını değerlendirme ve görselleştirme araçları.
SynthiCheck'in sistem mimarisi, hem üretici hem de analitik bileşenleri kapsayan modüler bir yapıya sahiptir:
+---------------------------------------------+
| |
| SynthiCheckApp |
| |
+-----+-----------------------------------+---+
| |
v v
+-----+----------------+ +---------+-----------+
| | | |
| Üretken Modül | | Analiz Modülü |
| | | |
| - Stable Diffusion | | - ResNet CNN |
| - cGAN | | - Artifact Tracer |
| - Normalizing Flow | | - Görselleştirme |
| | | |
+-----+----------------+ +---------+-----------+
| |
v v
+-----+----------------+ +---------+-----------+
| | | |
| HuggingFace | | Sonuç Değerlendirme |
| Entegrasyonu | | |
| | | - Metrikler |
+----------------------+ | - Raporlama |
| |
+---------------------+
Gerekli Python paketlerini yüklemek için:
pip install -r requirements.txtProjeyi çalıştırmak için aşağıdaki komutları kullanabilirsiniz:
- Kullanıcı arayüzünü başlatmak için:
python main.py --ui- Metin açıklamasından sentetik görsel üretmek için:
python main.py --prompt "dağın zirvesinde duran panda" --model stable_diffusionFarklı üretici modeller için:
python main.py --prompt "deniz kenarında bir ev" --model cgan
python main.py --prompt "ormanda bir kulübe" --model normalizing_flow- Bir görselin sentetik olup olmadığını analiz etmek için:
python main.py --analyze "gorsel_dosyasi.jpg"- Yapay izleri görselleştirmek için:
python main.py --analyze "gorsel_dosyasi.jpg" --visualizeSynthiCheck, üç farklı üretici model tekniği sunar:
- Çalışma Prensibi: Diffusion temelli bir model olup, metin promptundan iteratif olarak görüntü oluşturur
-
Mimari Bileşenler:
- CLIP (Contrastive Language-Image Pre-training) tabanlı metin kodlayıcı
- UNet tabanlı diffusion modeli (512x512 çözünürlük için 860M parametre)
- Otomatik kodlayıcı (VAE) ile latent uzay dönüşümü
-
Matematiksel Temeli:
- İleri difüzyon süreci:
$x_t = \sqrt{\alpha_t}x_{t-1} + \sqrt{1-\alpha_t}\epsilon$ - Ters difüzyon süreci: $x_{t-1} = \frac{1}{\sqrt{\alpha_t}}(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}t}}\epsilon\theta(x_t, t))$
- İleri difüzyon süreci:
- Eğitim Süreci: LAION-5B veri seti üzerinde minimum 150,000 adım eğitim
-
Hiperparametreler:
- Öğrenme oranı: 1e-4
- Optimizer: AdamW
- Batch size: 256
- Guidance scale: 5.0-15.0 arası (varsayılan 7.5)
- Çalışma Prensibi: Metin koşuluna bağlı olarak görseller üreten Generative Adversarial Network
-
Mimari Bileşenler:
- Generator: Metin gömme vektörünü ve rastgele gürültüyü girdi olarak alır
- Discriminator: Gerçek/sahte görsel ayrımı ve metin-görsel uyumunu değerlendirir
- DAMSM (Deep Attentional Multimodal Similarity Model) metin kodlayıcı
-
Kayıp Fonksiyonları:
- Adversarial kayıp: $\mathcal{L}{adv} = \mathbb{E}{x \sim p_{data}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]$
- Metin-görsel uyum kaybı:
$\mathcal{L}_{align} = -\mathbb{E}[\log P(y|G(z,c))]$
-
Eğitim Detayları:
- MS-COCO ve Flickr30k veri setleri
- İki aşamalı eğitim: önce temel GAN, sonra metin-görsel uyum iyileştirmesi
- Çalışma Prensibi: Basit bir olasılık dağılımını daha karmaşık bir dağılıma dönüştüren tersine çevrilebilir dönüşümler
-
Mimari Bileşenler:
- Ters çevrilebilir sinir ağları (Invertible Neural Networks)
- Coupling katmanları (Affine veya GLOW tabanlı)
- Koşullu dönüşüm blokları
-
Matematiksel Temeli:
- Log olabilirlik maksimizasyonu:
$\log p_X(x) = \log p_Z(f(x)) + \log|\det(\frac{df}{dx}(x))|$ - Afin coupling transformasyonu:
$y_{1:d} = x_{1:d}$ ,$y_{d+1:D} = x_{d+1:D} \odot \exp(s(x_{1:d})) + t(x_{1:d})$
- Log olabilirlik maksimizasyonu:
-
Avantajları:
- Tam olabilirlik hesaplaması yapabilme
- Tam tersine çevirebilirlik
- Stabil eğitim süreci
-
Uygulamalar:
- Yüksek çözünürlüklü görüntü üretimi (1024x1024)
- Stil transferi ve düzenlenebilir üretim
Bu algoritma, verilen bir görselin yapay zeka tarafından üretilmiş olup olmadığını tespit eder ve potansiyel yapay izleri belirler.
-
CNN Mimarisi: ResNet50 omurgası üzerine özelleştirilmiş katmanlar
- Giriş: 224x224x3 RGB görüntü
- Son katman: 2048 boyutlu özellik vektörü
- Sınıflandırma başlığı: 2 çıkışlı softmax (gerçek/sentetik)
-
Özellik Füzyonu: Hem düşük seviye hem yüksek seviye özellikler birleştirilir
- Düşük seviye: Kenar, doku ve gürültü paternleri (Res2, Res3 blokları)
- Yüksek seviye: Semantik ve içerik bilgisi (Res4, Res5 blokları)
-
Dikkat Mekanizması: Şüpheli bölgelere odaklanma için self-attention modülü
- Uzamsal dikkat haritaları:
$A = softmax(W_q Q \cdot W_k K^T / \sqrt{d_k})$ - Kanal dikkat: Squeeze-and-Excitation blokları
- Uzamsal dikkat haritaları:
-
Error Level Analysis (ELA):
- Sıkıştırma artifaktlarını tespit eder
- Matematiksel model:
$ELA(x,y) = |I(x,y) - I'(x,y)|$ -
$I'$ : Belirli bir kalitede yeniden JPEG sıkıştırılmış görüntü
-
Gürültü Paternleri Analizi:
- Lokal gürültü varyans haritası çıkarır
- Wavelet dönüşümü ile çoklu ölçeklerde gürültü analizi
- Gaussian gürültü modeli:
$\sigma^2(x,y) = \frac{1}{N} \sum_{i,j \in \mathcal{N}(x,y)} (I(i,j) - \mu(x,y))^2$
-
Yüz Tutarsızlıkları Tespiti:
- Yüz anatomisi tutarsızlıkları (göz mesafesi, kulak konumu vb.)
- Landmark dedektörü ile 68 yüz noktası çıkarma
- İstatistiksel model:
$S_{face} = \sum_{i=1}^{68} w_i \cdot d(l_i, \hat{l}_i)$
-
Kenar Detayı Analizi:
- Doğal ve yapay kenar geçişlerini ayırt eder
- Sobel, Canny kenar dedektörleri
- Gradient dağılım analizi:
$P(G) = \frac{1}{N} \sum_{x,y} \delta(G - |\nabla I(x,y)|)$
-
Sıkıştırma Artifaktları Analizi:
- DCT (Discrete Cosine Transform) katsayı dağılımları
- JPEG blok sınırları tutarsızlık analizi
- Benford Yasası tabanlı anomali tespiti
-
Frekans Bölgesi Analizi:
- 2D Fourier dönüşümü ile spektral analiz
- GAN artifaktları için spektral imza tespiti
- Anormal frekans kaçakları için model:
$S_{freq} = ||FFT(I) - FFT_{avg}(I_{real})||_2$
Tespit edilen yapay izleri ısı haritaları (heatmaps) olarak görselleştirir:
-
Piksel Seviyesinde Analiz:
- Her piksel için anomali skoru:
$A(x,y) = \sum_{i=1}^{M} w_i \cdot a_i(x,y)$ -
$a_i$ : i. detector'ün anomali skoru,$w_i$ : ağırlık faktörü
- Her piksel için anomali skoru:
-
Multi-modal Görselleştirme:
- RGB görüntü üzerine ısı haritası bindirme (alpha-blending)
- Jet, viridis, plasma renk haritaları
- Eşik değeri ayarlama:
$\tau = \mu + \alpha \cdot \sigma$
-
Birleşik Analiz Raporu:
- Histogram ve istatistiksel değerlendirme
- Bölge tabanlı segmentasyon ile lokal anomali kümeleri
- HTML rapor çıktısı ve interaktif görselleştirme
Üretici ve tespit modellerinin performansını değerlendiren kapsamlı araçlar:
-
İkili Sınıflandırma Metrikleri:
- AUC-ROC:
$AUC = \int_{0}^{1} TPR(FPR^{-1}(t)) dt$ - Precision-Recall AUC:
$AP = \int_{0}^{1} p(r) dr$ - F1-Score:
$F1 = 2 \cdot \frac{precision \cdot recall}{precision + recall}$
- AUC-ROC:
-
Görsel Kalite Metrikleri:
- FID (Fréchet Inception Distance):
$FID = ||\mu_r - \mu_g||^2 + Tr(\Sigma_r + \Sigma_g - 2(\Sigma_r\Sigma_g)^{1/2})$ - LPIPS (Learned Perceptual Image Patch Similarity)
- SSIM (Structural Similarity Index):
$SSIM(x,y) = \frac{(2\mu_x\mu_y + c_1)(2\sigma_{xy} + c_2)}{(\mu_x^2 + \mu_y^2 + c_1)(\sigma_x^2 + \sigma_y^2 + c_2)}$
- FID (Fréchet Inception Distance):
- Grid Visualization: Çeşitli prompt'lar ve modeller için tablo görünümü
- t-SNE/UMAP: Sentetik ve gerçek görüntü özelliklerinin dağılım analizi
- Patchcore: Anomali tespiti için unsupervised öğrenme tabanlı yaklaşım
- Saliency Maps: Model karar süreçlerinin görselleştirilmesi
Gelişmiş model erişim, yönetim ve önbellekleme sistemi:
-
Model İndirme Protokolü:
- Akıllı önbellekleme: Disk ve RAM kulllanımı optimizasyonu
- Parçalı indirme ve yükleme: Büyük modeller için
- Checksum doğrulama: Model bütünlüğü kontrolü
-
Dinamik Model Yükleme:
- Çalışma zamanında model değişimi
- Modeller için bilgisayara özgü optimizasyon (CUDA, MPS, CPU)
- Düşük-bellek konfigürasyonu ve quantization desteği (Int8, FP16)
-
HuggingFace Hub Entegrasyonu:
- Metadata ve model kart erişimi
- Kolay model paylaşımı ve version kontrol
- Community modelleri ile genişletilebilirlik
Gradio tabanlı kullanıcı arayüzü üç ana sekme sunar:
-
Sentetik Görsel Oluştur: Metin açıklamasından görsel üretir ve analizini yapar
- Üretici model seçimi (Stable Diffusion, cGAN, Normalizing Flow)
- Guidance scale ve adım sayısı gibi parametreleri ayarlama
- Rastgele tohumla yeniden üretilebilirlik
-
Görsel Analiz Et: Kullanıcının yüklediği görselleri analiz eder
- Sentetiklik skoru ve tespit edilen yapay izleri gösterir
- Yapay iz görselleştirmesi
-
Gelişmiş Analiz Araçları: Detaylı yapay iz analizi yapar
- Farklı analiz türlerini seçme imkanı (ELA, gürültü, kenar, sıkıştırma, frekans)
- İstenilen analiz türleri için görselleştirme galerisi
SynthiCheck'in potansiyel kullanım alanları:
- Medya Doğrulama: Haber kuruluşları ve fact-checking platformları için dijital içerik doğrulama
- Akademik Araştırma: Üretken AI modellerinin etki analizleri ve sentetik medya tespiti
- Siber Güvenlik: Deepfake tespiti ve dijital manipülasyon analizi
- Eğitim ve Farkındalık: Sentetik medya riskleri konusunda farkındalık yaratma
Bu projede kullanılan modeller için şu veri kaynaklarından yararlanılabilir:
- MS-COCO:
- 330K görsel, 1.5 milyon nesne tanımlama
- 5 açıklama/görsel - toplam 2.5 milyon açıklama
- Flickr8k/30k:
- 8,000 ve 31,000 görsel
- 5 açıklama/görsel
- LAION-5B:
- 5.85 milyar görsel-metin çifti
- Çoklu dil desteği ve geniş konu çeşitliliği
- Conceptual Captions:
- 3.3 milyon görsel-açıklama çifti
- Web'den otomatik olarak toplanmış ve filtrelenmiş
- ImageNet (gerçek görüntüler):
- 1000 sınıf, 1.2 milyon eğitim görüntüsü
- Yüksek kaliteli sınıflandırılmış veri seti
- CelebA (gerçek görüntüler):
- 200,000+ yüz görüntüsü
- 40 nitelik açıklaması ve 5 landmark noktaları
- Sentetik Veri Kaynakları:
- StyleGAN2 üretimi portreler (200,000+)
- Stable Diffusion v1.5/v2.1 çıktıları (150,000+)
- cGAN ve Normalizing Flow üretimi görüntüler (100,000+)
-
Dengeleme Stratejileri:
- Sınıf dengesini korumak için stratified sampling
- Veri artırma (augmentation) teknikleri
-
Önişleme Adımları:
- Standart boyut dönüşümü (224x224, 512x512)
- Normalizasyon:
$x' = (x - \mu) / \sigma$ - Renk uzayı dönüşümleri (RGB, YCbCr, HSV analizi)
- Çapraz Doğrulama: 5-fold stratified cross-validation
- Test Stratejisi:
- Modeller arası çapraz değerlendirme (Model A üretimlerini Model B ile test etme)
- Zaman içinde değerlendirme (zamanla gelişen modeller için)
- Adaptasyon Yeteneği:
- Yeni model türlerine özel fine-tuning
- Domain adaptation teknikleri