夜行性生体の撮影動画をPythonでカラー化 その1

シェアする

撮影したままの画像では、岩や水草、魚の形はわかるので、自分が楽しむぶんには十分だと思っていました。しかし、YouTubeにアップロードしたときにこの動画を再生したいかといわれると、いまいちぱっとしないなと思い、色を付けてみようという次第です。

まず、動画を作成する手順は

①  一定時間おきに画像の撮影(参考:Jetson nanoでタイムラプス動画の撮影 – 秋屋

②  VirtualDubで動画化(VirtualDub download (at SourceForge) – virtualdub.org

③  Wondershare UniConverterで動画サイズを圧縮(【公式】Wondershare UniConverter | 高速・高質・高機能 動画変換ならユニコンバーター

②で作成した動画サイズが30GBくらいあり再生するにもかくつくので、③で動画を圧縮しています。

以上のような方法をとっています。この画像をカラーにするためにはすべての工程が終わったあとに動画をカラー化する、もしくは、①で撮影した画像を1枚ずつカラー化する方法の2つがあります。今回は以下のサイトを参考にして、画像をカラー化する方法を試してみます。

白黒画像を 畳み込みニューラルネットワーク(CNN)を用いてカラー化する – 株式会社ライトコード

元画像

撮影した画像は一応カラーの画像になるので、まずこれを白黒にします。

f:id:akiya1:20210915224502j:plain

白黒にした画像を32×32のサイズにして100枚並べてみました。ディープラーニングで計算するときにメモリの制限が来てしまうので、32ピクセルのサイズにしています。わが家のGPUは8GBのメモリを積んでいるのですが、なかなかメモリを食います。

f:id:akiya1:20210915222250p:plain

出力画像

参考サイトのコードをコピペして100枚の画像をカラー化してみました。若干、色がついているように見えるのですが、そもそも画像が小さすぎてわかりませんね。画像サイズを大きくしようとすると、どうしてもメモリの上限に達してしまいます。

f:id:akiya1:20210915223414p:plain

次回は、もっと大きな画像サイズでディープラーニングを学習できるよう、ほかのプログラムを試していきたいと思います。