JA EN

ブレ除去 (デブラー) の原理と実践 - モーションブラーからピンボケまで

· 約 9 分で読めます

画像のブレとは - 劣化モデルの理解

画像のブレ (Blur) は、撮影時のカメラや被写体の動き、レンズのフォーカスずれなどにより発生する画質劣化です。数学的には、鮮明な画像 f にブレカーネル (PSF: Point Spread Function) h を畳み込み、ノイズ n を加えた劣化モデルで表現されます。

g = h * f + n

ここで g は観測されたブレ画像、* は畳み込み演算です。デブラー (Deblurring) の目標は、g と h (既知の場合) から元の鮮明画像 f を復元することです。

ブレの種類:

デブラーの困難さ: デブラーは本質的に逆問題 (Inverse Problem) であり、ノイズの増幅、リンギングアーティファクト、解の非一意性という 3 つの根本的な課題があります。特にノイズが存在する場合、単純な逆フィルタリングではノイズが爆発的に増幅され、実用的な結果が得られません。

非ブラインドデブラー - PSF 既知の場合の復元手法

非ブラインドデブラー (Non-blind Deblurring) は、ブレカーネル (PSF) が既知の場合に鮮明画像を復元する手法です。周波数ドメインでの処理が基本となり、ノイズ耐性を持つ正則化が鍵となります。

逆フィルタ (Inverse Filter): 最も単純な手法で、周波数ドメインで H(u,v) の逆数を掛けます。F(u,v) = G(u,v) / H(u,v)。しかし H が 0 に近い周波数でノイズが無限大に増幅されるため、実用的ではありません。

ウィーナーフィルタ (Wiener Filter): ノイズとシグナルのパワースペクトル比を考慮した最適フィルタです。

F(u,v) = [H*(u,v) / (|H(u,v)|² + K)] × G(u,v)

K はノイズ対シグナル比 (NSR) で、通常 0.001-0.01 の範囲で設定します。K が大きいほどノイズ抑制が強くなりますが、復元のシャープさが低下します。OpenCV では cv2.filter2D() と FFT を組み合わせて実装可能です。

Richardson-Lucy (RL) デコンボリューション: ポアソンノイズモデルに基づく反復的手法で、天文学や顕微鏡画像で広く使用されます。各反復で推定画像を更新し、通常 20-50 回の反復で収束します。非負制約を自然に満たす利点がありますが、反復回数が多すぎるとノイズを増幅するリンギングが発生します。

全変動 (TV) 正則化: 画像のエッジを保持しながらノイズを抑制する正則化手法です。コスト関数 ||g - h*f||² + λ×TV(f) を最小化します。λ は正則化の強さで、0.001-0.1 の範囲で調整します。エッジの鮮明さとノイズ抑制のバランスを制御できます。

ブラインドデブラー - PSF 推定と画像復元の同時最適化

ブラインドデブラー (Blind Deblurring) は、PSF が未知の状態でブレ画像から鮮明画像と PSF の両方を同時に推定する、より困難な問題です。実際の撮影では PSF が不明なケースがほとんどであり、実用上最も重要な技術です。

MAP (Maximum A Posteriori) 推定: ブラインドデブラーの古典的アプローチは、画像と PSF の事前分布を仮定し、事後確率を最大化する交互最適化です。

粗から細へのマルチスケール戦略: ブラインドデブラーは局所最適解に陥りやすいため、画像ピラミッドを構築し、最も粗いスケールから推定を開始します。粗いスケールでの PSF 推定結果を次のスケールの初期値として使用し、段階的に解像度を上げていきます。通常 4-6 スケールのピラミッドを使用します。

エッジベースの PSF 推定: Cho-Lee (2009) の手法は、画像のエッジ (勾配の大きい領域) のみを使って PSF を推定します。エッジ領域はブレの方向と大きさの情報を強く保持しているため、効率的かつ正確な推定が可能です。ショックフィルタでエッジを強調し、勾配ドメインで PSF を推定する 2 段階アプローチにより、従来手法の 10 倍以上の高速化を実現しました。

深層学習によるデブラー - エンドツーエンドの復元

深層学習ベースのデブラー手法は、PSF の明示的な推定を行わず、ブレ画像から鮮明画像への直接的なマッピングを学習します。2017 年以降急速に発展し、従来手法を大幅に上回る性能を達成しています。

DeblurGAN (2018): GAN ベースのモーションブラー除去手法です。Generator は ResNet ベースのエンコーダ-デコーダ構造で、Adversarial Loss + Perceptual Loss で学習します。GoPro データセット (3,214 ペア) で学習し、PSNR 28.7dB を達成しました。推論速度は 720p で約 50ms (GPU) です。

DeblurGAN-v2 (2019): Feature Pyramid Network (FPN) を導入し、マルチスケールの特徴を活用します。バックボーンに MobileNet-v2 を使用した軽量版は、品質を維持しながら 10 倍の高速化を実現し、モバイルデバイスでのリアルタイム処理を可能にしました。

MPRNet (2021): Multi-Stage Progressive Restoration Network は、3 段階の処理で段階的に画像を復元します。各段階でエンコーダ-デコーダの出力を次の段階に渡し、残差学習で細部を補正します。GoPro データセットで PSNR 32.66dB を達成し、当時の最高性能を記録しました。

Restormer (2022): Transformer アーキテクチャを画像復元に適用した手法です。Multi-Dconv Head Transposed Attention により、高解像度画像でも効率的にグローバルな依存関係を捉えます。GoPro で PSNR 32.92dB、HIDE データセットで 31.22dB を達成しています。計算コストは 1,280 × 720で約 300ms (A100) です。

NAFNet (2022): Nonlinear Activation Free Network は、活性化関数を使わないシンプルなアーキテクチャで、Restormer と同等の性能を半分の計算コストで実現します。SimpleGate と Simplified Channel Attention の 2 つの革新により、PSNR 33.69dB (GoPro) を達成しました。

空間変動ブレと動画デブラー

実際の撮影では、画像内の位置によってブレの方向や大きさが異なる空間変動ブレ (Spatially-Varying Blur) が一般的です。また、動画のデブラーでは時間方向の情報を活用した手法が有効です。

空間変動ブレの原因:

空間変動ブレへの対処: 画像を小領域 (パッチ) に分割し、各パッチで局所的な PSF を推定する手法が基本です。パッチサイズは 64x64 から 128 × 128が一般的で、隣接パッチ間の PSF の連続性を制約として加えます。深層学習では、Deformable Convolution を用いて空間的に適応的なフィルタリングを実現する手法が主流です。

動画デブラー: 連続フレームの情報を活用することで、単一フレームのデブラーより高品質な復元が可能です。EDVR (Enhanced Deformable Video Restoration) は、隣接 5 フレームの情報を Deformable Convolution でアラインメントし、統合することで PSNR を 1-2dB 向上させます。

イベントカメラとの融合: イベントカメラ (DVS) はマイクロ秒単位の時間分解能を持ち、ブレの発生過程を記録できます。通常カメラの露光中のイベントデータを活用することで、従来不可能だった大きなモーションブラーの復元が可能になっています。E-CIR (Event-guided Cascaded Image Restoration) は、イベントデータをガイドとして使用し、PSNR 34dB 以上の復元を実現しています。

実践的なデブラーツールと品質評価

デブラー技術を実務で活用するための具体的なツール、パラメータ設定、品質評価方法を解説します。用途に応じた最適な選択肢と、よくある失敗パターンの回避策を示します。

デスクトップツール:

Python ライブラリ:

品質評価指標:

よくある失敗と対策: リンギングアーティファクト (エッジ周辺の波紋) は正則化パラメータの調整で軽減できます。ノイズ増幅は事前にデノイズ処理を適用するか、デブラーとデノイズを同時に行う手法を選択します。過度なシャープニングによるハロー効果は、処理強度を控えめに設定することで回避できます。

関連記事

シャープネス処理の種類と使い分け - 画像の鮮鋭化を極める実践ガイド

アンシャープマスク、ハイパスフィルタ、デコンボリューションなど主要なシャープニング手法の原理と最適な使い分けを具体的なパラメータとともに解説します。

画像ノイズ除去の原理と実践 - デジタル写真のノイズリダクション完全ガイド

画像ノイズの発生原因から除去アルゴリズム、実践的なワークフローまで解説。高感度撮影や暗所撮影で発生するノイズへの対処法を紹介します。

カメラキャリブレーションの基礎 - 内部パラメータと歪み補正の実践ガイド

カメラキャリブレーションの原理から実践まで完全解説。ピンホールモデル、Zhang 法、歪み補正の手順を OpenCV コード例とともに詳しく紹介します。

ステレオビジョンと距離計測 - 視差から 3D 情報を復元する技術

ステレオビジョンの原理から実装まで完全解説。エピポーラ幾何、ステレオマッチング、視差マップから距離計算までの手順をコード例とともに紹介します。

パノラマ合成のアルゴリズム詳解 - 特徴点検出からシームレスブレンディングまで

複数画像からパノラマを合成する技術を詳解。特徴点マッチング、ホモグラフィ推定、画像ワーピング、マルチバンドブレンディングの各ステップを実装レベルで解説します。

GAN の画像応用 - スタイル変換、画像生成、修復における敵対的生成ネットワーク

GAN の画像処理応用を体系的に解説。StyleGAN、Pix2Pix、CycleGAN の原理と実装、スタイル変換・画像生成・修復での活用パターンを具体例とともに紹介します。

関連用語