データセットを自分で用意するとき、最初は楽しいものです。
さまざまなデータセットがあるなか、やはり自分でやったものを使ってみたいと思うのもわかります。
数枚程度ならば簡単ですが100枚、1000枚と増えていくとそうは言ってられない。
どんどん辛くなってきていませんか?
一枚一枚写真を撮って、インターネットからダウンロード・・・などやってられない。
そんな時に役立つ方法を紹介します。
それは動画から画像を切り出して使う方法です。
動画を画像に分割する方法
始めはvlcプレーヤーのシーンフィルターを使ったやり方をしていました。
ですがWEBカメラなどで撮影した動画は分割できたんですが、iMovieなどで動画を出力したものを使うと分割できない状態になってしまいました。
そのため現在はffmpegを使って分割した画像を使い画像の水増しを行なっています。
Linuxでのやり方は以下です。
インストール方法
apt update
apt upgrade
apt install ffmpeg
でインストールは終了です。
動画から画像へ分割する
ターミナルから以下のコマンドで動画を分割できます。
作業ディレクトリに移動してから行なってください。
なお動画の名前はsample.mp4
出力フォルダの名前はresults
です。
以下はフレームレートを利用して分割を行う例です。
簡単にできるものをのせているので細かくは説明をしません。
すぐに使えて学習を進められる程度に簡単にしています。
ffmpeg -i sample.mp4 -r 1 results/%03d.jpg
これでresultsフォルダに分割された動画の画像が出来上がります。
より多くの枚数が必要な場合は動画の時間を長くするといいです。
それ以外にもフレームレートで枚数を指定しsての方法、fpsでの方法もあります。
よりこだわった設定をしたい場合は関連の情報がたくさんありますので調べてみてください。
動画から画像を分割するときの注意点
静止画を使って動画を編集する場合、微妙にパーンしたりズームしたりするエフェクトを使ったものを使用して分割をすると大きな変化が分かりにくい状態になります。
そのためそれをデータセットで扱うと、かなり速い段階で収束してしまう可能性があります。
pix2pixやcycleganではその状況になりました。
逆に言えば特徴を早期に捉えられて学習が終わるので簡易的に学習状況がみたい場合などには使えるかもしれません。
よい感触が得られたならば本格的にデータセットを生成してみる、配布されてすぐに使える大規模データセットを使っての学習をしてみてもいいですね。
最後に
データセットを自分でつくるのも良い勉強になると思いますが、そこに力を入れすぎると大きな時間を失ってしまう可能性も潜んでいます。
勉強をするなら数あるデータセットを利用しない手はありません。
使えるものは使って学習を進めてみてください。
そのほうがきっと良い結果になるはずです。
最後まで読んでいただきありがとうございました。
コメント