AI超解像比較 2025: リアル/アニメ/文字別モデル選択とアーティファクト対策
AI 超解像は “ディテールが増えた気がする” 主観評価に陥りやすく、モデルごとに 幻覚 (hallucination)、エッジ過剰強調、肌テクスチャ化 の副作用が異なります。この記事では用途別プリセットと CI 回帰検知フレームを統一し再現性を高めます。
短縮結論
写真: Real-ESRGAN 2x → Downscale / アニメ: AnimeSR 2x + 線幅安定 / UI文字: SwinIR 2x or Lanczos / 破損補完: Latent Diffusion SR 4x (構造変化許容時のみ)。
要点(TL;DR)
- モデル選択はカテゴリ固定
動的判定よりも入力命名/ディレクトリ規約で誤適用を防止。 - 前処理: ノイズ / 色域 / ガンマ正規化
異常画素を除去し hallucination トリガ(孤立高周波)を減少。 - 2x 基準 → 必要時 4x
4x 直行は遅延 + バンディング強調。2x → Downscale の方が自然。 - 属性タグ × 指標
平均値のみは危険。face / text_small / flat_color 切り分け可視化。 - 高速モデル優先条件
品質差 ΔLPIPS ≤ 0.01 かつ ΔSSIM ≥ -0.005 なら推論コスト低のモデル選択。
1. 評価セット設計
カテゴリごとに代表 20 枚(肌 / 細線 / 影 / 大面積単色 / 文字小サイズ / 髪)を抽出し 属性タグ を JSON 化。CI でモデル改善 PR が来た際、差分を属性クラス単位で統計比較し回帰検知を自動化します。
- 属性タグ例
face, skin_close, hair_strand, thin_line, dark_shadow, ui_text_small, flat_color, foliage。 - 分層サンプリング
各タグ 5〜10 サンプル確保し統計的分散を安定化。 - ゴールデンセット固定
更新後も比較基準を変えない(楽観的過学習回避)。
2. 前処理と後処理パイプライン
- 前処理 – sRGB 正規化 / 軽度ノイズ除去 / ガンマ統一。
- モデル適用 2x – 汎用 or 専用モデル。
- (条件)4x 再アップスケール – 2x 結果を更に拡大。
- 後処理 – 軽度アンシャープ / 彩度微調整。
- 指標計測 – PSNR / SSIM / LPIPS + 人間二者比較。
# pseudo pipeline load_image → convert_to_srgb → denoise(σ=0.5) → gamma_align(2.2) → upscale(model=RealESRGAN_x2) // or AnimeSR_x2 / SwinIR_x2 → if need_4x: lanczos_resample(2x_result, 4x) → unsharp(radius=1, amount=0.2) → slight_saturation(+2) → metrics(original, result) → export
過剰シャープ閾値
高周波エネルギー比 (HF_ratio) が原画像比 +25% 超でアンシャープ抑制。
3. 公開前チェック
- 幻覚率ログ化
false detail 事例集を蓄積し再現確認。 - カテゴリ別指標安定
平均 ≠ 改善の錯覚を避ける。 - 2x→4x 速度倍率記録
4. モデル比較マトリクス
モデル | 得意領域 | 弱点 | 速度 (rel.) | 幻覚傾向 | 推奨倍率 |
---|---|---|---|---|---|
Real-ESRGAN | 写真肌 / 雑多 | 細線太り | 1.0x | 中 | 2x |
SwinIR | 低ノイズ写真 | 暗部平坦 | 0.8x | 低 | 2x |
AnimeSR | アニメ線/ベタ | 肌ざらつき | 1.1x | 低〜中 | 2x/4x |
Latent Diffusion SR | 破損写真補完 | 構造改変 | 0.3x | 高 | 4x |
ESRGAN-Lite | UI アイコン | 色滲み | 1.4x | 低 | 2x |
速度は Real-ESRGAN FP16 を 1.0 基準の相対。GPU 世代差を吸収するため絶対値でなく相対記録。
5. アーティファクト分類と検知
- 幻覚テクスチャ
平滑領域に微細模様。局所コントラストヒストグラム尖度で検知。 - エッジ誤強調
Canny 線分長が原画像比 +30% 超過。 - 肌ざらつき
肌マスク内 8x8 DCT 中周波エネルギー上昇率 > +20%。 - 線肥大
アニメ線幅ヒスト平均 +0.4px 以上。 - 色滲み
Lab a/b エッジ差分で閾値判定。
6. 指標と限界
PSNR / SSIM は高周波増強を「改善」と誤認しがち。LPIPS は構造改変に敏感だが細部幻覚は取りこぼすため 属性タグ単位分布 を可視化します。
- Z 正規化ダッシュボード
タグ × 指標で平均差の有意 (p<0.05) のみ緑表示。 - 人間評価連携
A/B 30 ペア * 評価者3 → 優勢率 bootstrap CI 95% 超で採用。 - 速度/コスト重み付け
品質差が閾値未満なら高速モデルを採択し GPU/Hr 削減。
7. 実務プリセット例
写真 (Web掲載)
- Denoise σ0.5
- Real-ESRGAN 2x
- Downscale Lanczos to target
- Unsharp amount 0.15
- JPEG Q=82 / AVIF Q=45
アニメ線画
- Gaussian blur 2px
- AnimeSR 2x
- Optional 4x (需要)
- Edge refine (morphology)
- WebP Q=88
UI / 文字
- Vector 再描画優先
- Raster のみ → SwinIR 2x or ESRGAN-Lite
- Gamma correct
- PNG / WebP lossless
破損 / 低解像遺産
- Latent Diffusion SR 4x
- Detail clamp (HF_ratio ≤ +30%)
- Color tone match
- AVIF Q=50
8. CI / 回帰テスト
- 属性タグ比較
PR で生成結果を metrics.json に追記し差分統計。 - 閾値ルール
SSIM -0.01 以上 / LPIPS +0.01 以内 / HF_ratio +20% 以内。 - 例外承認フロー
タグ 1 つのみ軽微劣化で他複数改善→自動コメント。
# pseudo ci step python eval.py --model new --out metrics_new.json python eval.py --model base --out metrics_base.json python compare.py --a metrics_base.json --b metrics_new.json --rules rules.yaml --report report.md
9. まとめ
“なんとなく綺麗” は再現性がないため、分類 → 基準プリセット → 逸脱検出 → 局所再試行 のフレームで運用。指標は万能でなく 属性タグ切り分け + 人間差分検証 を組み合わせ drift を早期検知します。
10. FAQ 追加
- Diffusion SR を常用しない理由
復元より再生成寄りで構造 drift リスク。 - JPEG 先?AI 先?
圧縮 artefact を強調するので非圧縮元(または可逆化)→ SR → 圧縮。 - GPU コスト最適化
Batch=8 / FP16 / Tile=128 で VRAM 8GB 運用。高解像はオーバーラップタイル。 - 色ズレ検知
ΔE2000 平均 2.0 以内を PASS。閾値超過で彩度抑制。