動画を線画化してみた

動画を線画化してみた

先日、本bitWave上で各々が書いた線画をAIが彩色してくれるプログラムをご紹介いたしました。
<bitWave関連記事『AIがプロ並の彩色を|『PaintsChainer』の実力検証』>

この時はあくまでも「AIに彩色させる」ことがメインだったため、社内開発員に手書きで線画を描いてもらったわけですが、そもそも線画を作成するツールがあれば、実写から線画を起こし、改めて「AIに彩色させる」ことだって可能ですよね。
Photoshopなどの画像加工ソフトで “二階調化” を施せば、どんな画像も低解像度かさせることは可能でしょう。でも面倒くさい……。
面倒くさがりのオジサンにそっと手を差し伸べるように、15歳以上も年が離れた中村くんがこんなツールの存在を教えてくれました。
<参照:『ドット絵こんばーた』>

さっそく『ドット絵こんばーた』を試してみた

『ドット絵こんばーた』のサイトを見てみる限り、画像をアップロードするだけで細かな設定にも対応できるようです。
では試してみましょう。


オリジナル画像は社内在籍のネパール人の顔! 幸せそうです


色の数:8
ドットの大きさ:2
他設定は「なし」を選択


色の数:4
ドットの大きさ:3
他設定は「なし」を選択


色の数:2
ドットの大きさ:4
他設定は「なし」を選択

一般的な線画とは主旨が異なりますが、ドット化(低解像度化)も線画と同じような用途で使うこともできそうですね。写真の線画化ができるようであれば、ひょっとしたら動画も……。少なくともGIFアニメでも同じようなことができるのでしょうか?

動画ファイルを線画化してみる

『ドット絵こんばーた』は「JPG」か「PNG」ファイルしか対応していません。つまりアニメーションGIFには対応できないということです。
そもそも『ドット絵こんばーた』はどんな仕様なのでしょうか……と思ったところ、グローバルメニューに “せつめい” なるコンテンツがあるではないですか。どれどれ……
・OpenCVを用いてまず画像をn分の1に縮小→元サイズに復元してモザイク化します
・この時必要に応じて平滑化やerodeなどのフィルターを掛けます
・次に全ピクセルの色をk色にkmeansで分類しそれぞれの平均値を求め、色を置き換え減色します
・そして出来上がるのがドット絵っぽい処理画像です

ここでいう「それぞれの平均値を求め、色を置き換え減色」とはクラスタリングのことなのでしょう。
そして「OpenCV」であれば動画として読み込むことができるので、GIFアニメであれば1フレームごとに処理をかけていけば対応が可能なハズです。
では「OpenCV」を使いつつも、一つずつ線画化にむけて加工をしてみます。

ちなみに今回線画化を実践するのは、コチラのGIFアニメです。

元ネタは下記記事内にある動画ですので、気になる方はご覧ください。
<bitWave関連記事『「匂い」をコンセプトにしたIoT「下駄箱“IoT”システム」を発表。』>

1:膨張処理

写真には陰影がつきもので、色味がグラデーションになっているものです。しかし、線画化にとってグラデーションはもはやノイズでしかありません。輪郭線を強調させるために、ノイズを除去していくことになります。
<参照:from umentu import stupid『Python OpenCV3で画素の膨張処理(dilation)と収縮処理(erosion) (ちょっと解説も)』>

2:差分処理

境界線をより強調するために、差分処理を実施します。具体的にはぼかした画像と元の画像を比較し、ぼけた分だけを線とみなす処理になります。
<参照:Qiita『OpenCVで動画の背景と動体を分離してみる』>

3:ネガポジ反転

このままでは線の部分が白く、背景色が黒色になってしまうため、単純に反転処理を施します。
<参照:from umentu import stupid『Python OpenCV3でもっと簡単なネガポジ変換(濃淡の変換)』>

4:モノクロ化

『ドット絵こんばーた』では実践できていませんでしたが、せっかくなのでモノクロ化をしてしまいましょう。
<参照:Qiita『OpenCVで画像をグレースケールに変換(Python)』>

これらをすべて実行した “線画化” GIFアニメーションがコチラです!

容量の問題でリサイズこそしておりますが、完全に線画化することができました。
サングラスの映り込みも線画になっていますね。

前回の記事でご紹介させていただいた『paintschainer』も『ドット絵こんばーた』同様、GIFファイルを対応外としているため、残念ながら「AIによる彩色」にまでは至りませんでしたが、GIFファイルであっても元素材に適した線画に起こすことが可能だったため、試行錯誤すれば「AIによる彩色」も近い将来で実現するものと思われます。
精度が上がれば、アニメーターの職を奪いかねないですね……。

コメント