GitHub Repository:
https://github.com/Miraium/FlashbackPhoto
最近自分の子供を一眼で連写撮影することが増えてきていて、カメラでボーッと撮影した画像を流して閲覧していた時に、これを単純に結合したらコマ撮り風動画になって面白いのではないか?と思い立ち、AIに相談しながらササッと作ったコマンドラインツールです。
あるイベントの中で撮影した写真をすべて1つのフォルダにおき、このツールに渡してあげると、そのフォルダに入った写真を結合してフラッシュバック的な動画を作成してくれます。
カメラを持ち出して出かけると、連写撮影しまくる都合で(RAW画像+JPEG画像の同時撮影とはいえ、)ギガバイト単位の写真を持ち帰ってくることが多いのですが、その中からごく限られた枚数の写真しか他人に共有したりすることはなく、残りの共有しなかった写真の活用方法に少し悩んでいました。
共有しなかったということは、他に良い写真があった、ピントが合っていなかった、邪魔なものが写っていた、、などなどいろいろな理由があってボツになったわけですが、フラッシュバック的に一瞬だけ表示されるようなものであればあまり気にならないでしょう。
使い慣れたPythonやOpenCVを使っての開発だったので、日曜プログラミング的に半日程度でベースを作り切ることができました。動画の書き込み部分でOpenCVのVideoWriterがどうにもうまく動かず結構つまづきはしましたが・・・(どうやら解像度が高すぎるという問題だったようです)
連写撮影しなかった写真は本当に一瞬しか表示されず、チラチラして動画が見づらくなったりはあるので、何らかの方法でシーン判定をして投影する時間を動的に変えるなど、ちょっとずつ改善していきたいところです。
(画像のメタデータやEXIFデータを読んだら、このシーンは連写した/しないがわかるような気がしており。)