8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DeepLearningで画像中のモザイク箇所を検出する

Posted at

以前に以下でOpenCVなどを駆使して力技でモザイク検知をしたが、今度は機械学習でやってみる。

利用したコードは以下に。

Deep Learning CNNのsemantic segmentationを使った。
semantic segmentationについては以下等参照。

FCNやDeepLab等いろいろなネットワークがあるが、TensorFlowでの実装があり動作させられた
SegNetのものを利用する。
SegNetの元論文はこれ。

以下のコードを拝借。

画像データはターゲットのモザイクを含むpngファイルと、
モザイクの位置を示す答えのpngファイルが必要。

答えのpngはsemantic segmentationでは一般的(?)な形式で、
ラベル部分(ラベルの順に#000000、#010101、#020202…)に塗り分けられたもの。

今回の場合、モザイクでない部分は#000000で、モザイク部分だけ#010101で塗って学習させてみたが、
うまく判別できず(開発途中だったためこれが原因ではないかも)。
背景は#010101、モザイク部分は#020202で塗ったところうまくいった。

手順。

  • 元画像を用意。train、valid、test用にそれぞれ500枚程度。
  • 001_mosaic_kakeru.shを使ってモザイクをかけたものと、かけた部分を表す答えのpngを作る。
  • 100_list_maker.shでファイルリストを作成。
  • 101_gakusyuu.shで学習。NVIDIA GTX 1060を使い、20000イテレーションで5時間程度。
  • ログディレクトリにできた連番名付きのckptファイルを201_move_model.shで連番名無しに。
  • 202_hantei.shでtest用のファイルを判定。元画像と同じディレクトリに生成される。

以下が実際に判別させたもの。
(画像は http://gahag.net/011032-cat-sunflower-smell/ より拝借)

pic00001_generated_mosaic.png

pic00001_generated_mosaic_hanteikekka.png

精度は完全とは言えないがまあまあか。

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?