3. Deblur研究: ペアを必要としないDeblurGAN

## はじめに
[ニューラルグループ株式会社](https://www.neural-group.com/)でインターンをしている酒井です。
この記事は、深層学習を用いたブレ除去法（Deblurring）シリーズの3項目です。

1. [Deblur概観: 古典〜2023最新の汎用手法](https://qiita.com/yusuke_s_yusuke/items/0878338e17616b83f388)
1. [Deblur応用: ナンバープレート/超解像](https://qiita.com/yusuke_s_yusuke/items/bc77b831c35f774d724a)
1. Deblur研究: ペアを必要としないDeblurGAN

1、2項目の記事では、ブレ除去手法の学習データとして、同一シーンのブレ画像シャープ画像のペアを要求する手法が多くありました。しかし、ペア画像の取得は非常にコストがかかるため、現場のドメインでの学習が困難となります。そこで、ペアを必要としないブレ除去手法の研究も進められています。

[ニューラルグループ株式会社](https://www.neural-group.com/)でも、2022年の11月に情報処理学会にて「 [Unpaired DeblurGAN: 同一シーンでのブレ画像・シャープ画像のペアを必要としない単一画像モーションブラー除去法, 著者: 酒井 優輔 (立教大), 吉田 明広, 佐々木 雄一 (ニューラルポケット)](https://jglobal.jst.go.jp/detail?JGLOBAL_ID=202302272602868362)」という内容で、ペア画像を必要としない研究成果を発表しました。

本記事では、ペア画像不要の学習の先行研究の紹介から、開発した手法について紹介します。

## ペア画像不要のSingle-Image deblurring サーベイ


<table>
  <thead>
    <tr>
      <th rowspan="2">研究</th>
      <th rowspan="2">学習データの集めやすさ<br>(⚪︎:同一シーン対必須、×:類似シーン対でOK)</th>
      <th colspan="2">画像のクオリティ</th>
      <th rowspan="2">学習時の画像枚数</th>
      <th rowspan="2">手法の引用数<br>(※2023/08 時点)</th>
      <th rowspan="2">Codeの有無</th>
    </tr>
    <tr>
      <th>PSNR↑</th>
      <th>SSIM↑</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Unsupervised Class-Specific Deblurring (2018)</td>
      <td>⚪︎</td>
      <td>PSNR:23.22</td>
      <td>SSIM:0.88</td>
      <td>~100,000</td>
      <td>52</td>
      <td>×</td>
    </tr>
    <tr>
      <td>Unsupervised Domain-Specific Deblurring via Disentangled Representations (2019)</td>
      <td>⚪︎</td>
      <td>PSNR:22.56</td>
      <td>SSIM:0.95</td>
      <td>~100,000</td>
      <td>136</td>
      <td>⚪︎</td>
    </tr>
    <tr>
      <td>Deblurring by Realistic Blurring (2020)</td>
      <td>⚪︎</td>
      <td>PSNR:31.10</td>
      <td>SSIM:0.94</td>
      <td>~2,000</td>
      <td>222</td>
      <td>⚪︎</td>
    </tr>
  </tbody>
</table>


### Unsupervised Class-Specific Deblurring (2018)

Unpaired画像を用いた最初のブレ除去手法です。アーキテクチャは以下になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/084eb9a2-1ba2-1465-5f9d-3bdfa5a9e5cf.png)

GANの識別器による$L_{adv}$ loss、 ブレ除去画像からブレ画像を生成するネットワークでの$L_{reblur}$ loss(色合いを自然に保つため)、ブレ画像とブレ除去画像間のエッジに関する$L_{grad}$を用いています。

$L_{grad}$は、下図のようなイメージで、様々なスケールをエッジのlossを使っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/bf5b0619-8f4a-ddd0-4fcb-03bfb00f9ccd.png)

上図の読み方は、図(a)は、左側からシャープ画像、シャープ画像のエッジ、ブレ画像のエッジ、ブレ画像です。解像度を落とすと2つの画像のエッジに関する特徴が似てきます。
図(b)は、横軸は画像の縮小度合い、縦軸はエッジのブレ・シャープ画像の差分、各色はドメインを表しています。このように縮小するほど差分が小さくなる傾向が見られます。この論文の手法の前提として、シャープな画像を使用することができないため、縮小したブレ画像のエッジ画像ほど重みを強くしてさまざまなスケールの画像でのピクセル間のlossを使っています。

### Unsupervised Domain-Specific Deblurring via Disentangled Representations (2019)
[CycleGAN](https://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_ICCV_2017_paper.pdf)のアイデアをもとにした手法です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/82b44132-a836-9736-9658-d6ea053b40d7.png)

### Deblurring by Realistic Blurring (2020)
ブレ画像を生成するGANとブレ除去するGANの2つのGANを用いた手法です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/7ab7eee6-accc-eefd-4912-e69b133003ab.png)

この手法は、本物に近いブレを学習するために、下図(b)のようにブレ画像（ラベル: 0）とシャープ画像（ラベル: 1）が区別できないようにそれぞれが平均的に0.5となるように学習しています。そして、多様な本物のブレ画像を大量に用意して、ブレ生成器の生成画像の多様性を高めています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/78cf599a-4a6e-96d8-49e9-12a40eb5eb44.png)

## 発表内容の概要
当社では、ナンバープレートの読取性能および物体検知性能の向上に取り組んでおり、局所的なブレにも対応できるブレ除去手法の研究・開発を進めています。この手法は同一シーンのペア画像を必要としない特長を持っています。ここでは、同一シーンのペア画像を必要としないブレ除去手法について情報処理学会で発表した内容について説明します。

2022年の情報処理学会での発表では、「DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better (2019)」を基にした手法を開発しました。DeblurGAN-v2をベースにした理由は、[GeneratorにFeature Pyramid Network (FPN)](https://openaccess.thecvf.com/content_cvpr_2017/papers/Lin_Feature_Pyramid_Networks_CVPR_2017_paper.pdf)を利用することで、多岐にわたるスケールの特徴を活用できる点と、Discriminatorに[Patch GAN](https://openaccess.thecvf.com/content_cvpr_2017/papers/Isola_Image-To-Image_Translation_With_CVPR_2017_paper.pdf)を採用することで、様々なスケールの局所ブレに対応できる点にあります。

下図が、DeblurGAN-v2と本手法のアーキテクチャです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/2416dfc6-fa3a-7262-5986-874af378d980.png)

基本的にDeblurGAN-v2と同じネットワーク構造ですが、以下の違いがあります。
ブレ除去画像(Restored)とシャープ画像(Sharp)でlossを取っていますが、本手法では同一シーンのペア画像を使えないため、そのlossの項を省いています。
その代わりに、ブレ画像(Blurred)からのGeneratorの出力するブレ除去画像がモード崩壊を起こさないようにするために、ブレ画像とブレ除去画像間でピクセル間のlossを追加しています。

### 学習データ
DeblurGAN-v2と同じ学習データ、ただし同一シーンとならないようにブレ画像シャープ画像を独立にシャッフルさせて使用しています。

### モデルの評価
#### 定量評価
検証データでのPSNRとSSIMの結果が以下になります。

||本手法|DeblurGAN-v2|
|---|---|---|
PSNR↑|22.30|30.16|
SSIM↑|0.731|0.875|

本手法では、ペア画像を用いていないため、DeblurGAN-v2に比べてPSNR、SSIMは低い値となっています。

#### 定性評価
下図のように検証データでの結果より、視覚的なブレの改善が見られています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1599258/48b04e5f-3959-5482-d1b3-c595dc5ecbf4.png)

## 謝辞
本記事の執筆にあたり、[ニューラルグループ株式会社](https://www.neural-group.com/)のCTOの見上 敬洋さんと社員の吉田 明広さんから、熱心なアドバイスと専門的な知識を惜しみなく提供いただきました。見上さんは、記事の構造や内容を深化させる助言を賜りました。吉田さんとは、約1年半にわたる共同研究で、技術的なアドバイスや記事の論理的な表現に対する親身な添削をいただきました。
また、以前のCTOであり現[Spiral.AI株式会社](https://go-spiral.ai/)のCEOである佐々木 雄一さんには、約1年間のインターンで、技術的なアドバイスをいただき、楽しく研究を進めることができました。
ここに感謝の意を表します。