凄い!DaVinci Resolveのオプティカルフロー

こんばんはsumizoonです。

 

sumizoon.hatenablog.com

に記載したように、やっとこDaVinciResolve16のβ版をインストールしました。

で、いろいろ機能が追加されている中で真っ先に試したかったオプティカルフローを試したので、記事にしたいと思います。(前置きが長すぎますが)

 

 

DaVinci Resolve16β4をインストールしました

いやはや、毎度機能アップする速度に学習速度が全然追いつかないです。 このソフトの急速な進化はとんでもない状態になっています。

そして、ほとんどの機能が無料で使えるので、これは使わない手はないでしょう。あまりに高機能なので初心者の方はメニューをみただけで卒倒しかねないのですが、慣れれば「基本機能」に関しては、何のこともない普通の編集ソフトです。(かなり語弊があるかも。。。)まぁDaVinciの神髄はカラーコレクション、カラーグレーディングの機能だと思いますが、編集機能に関してももの凄い勢いで進化しています。

ダウンロードは下記から

www.blackmagicdesign.com

 

 

で、今回試したかったのはDaVinciのVer16から自由度のあがったOPTICAL FLOW(オプティカルフロー)になります。

オプティカルフローとは実際に撮影していない時刻の映像を前後フレームから賢いアルゴリズムを使って生成してしまおうという処理になります。

以前のVerのDaVinciでも使えましたが、これが使い勝手が悪すぎて使う気になれなかったのでした。

 

OPTICAL FLOWは他のソフトでも使える

そもそもオプティカルフローははFCPXでも使えます。まだ私が4K60pの撮影が不可能だったGH4を使ってなんとか4K60pの滑らかで高精細なスローをソフト処理で実現したいと思ってあれやこれや試した時期があります。

 

↓これは4K30pをオプティカルフローで無理やりFCPXで疑似4K60pに変換する方法


GH4でも4K60pに!?「4K30pから4K60pへ変換する」方法

 

4K30pを4K60pとして変換、公開した作品


[Mavic Pro] Convert 4K30p to 4K60p TEST Footage

 

ただし処理には限界がある

まずは、ええ感じに処理できたかな思う4K60p動画です。


[4K] -Bautiful Japan- 奈良県 吉野郡 天川村

この映像は4K30oの動画をOPTICAL FLOWを使って疑似的に4K60pに変換したものです。1秒間に表示される60フレームのうち疑似的に生成した映像が30コマある。という状態です。この映像の1フレームあたりの表示時間は1/60secとなります。

だたし、人間の目は結構いい加減なので?不自然なカットはほどんど人間の目に映らない様です。加えて、この映像の中の動きは特に激しい部分がなく、動きも直線的なものが多いです。

 

一方下記を見てみましょう。これも以前私が撮って4K60pもしくは4K120p相当にした動画になります。

 


[4K] Osaka Umeda Overcrank with pseudo 60p/120p

それっぽくなっていますが下記の映像は良く見ると(よく見なくても)不自然なカットがかなり含まれています。

また、この映像自体は30p(30フレーム)の映像として作っています。OPTICAL FLOWを使って4K60pに変換したカットは50%のスローとして使っています。

このとき1秒間に表示される30フレームのうち疑似的に生成した映像が15コマある。という状態です。この映像の1フレームあたりの表示時間は1/30secとなります。

勝手な推測ですが、人間の目の認識能力は1/30と1/60の間に大きな隔たりがあるのではないかと思っています。テレビでも30pと60pは違いが良くわかりますよね。人間の目&脳は1/30ははっきりと映像の1フレームを認識できるけど1/60になるとはっきりと一枚一枚を人間は認識しないのではないかと思います。

また、この映像は、ランダムに人が歩く。人と人が交差するなどの複雑かつそこそこ速い動きをしています。ソフト的に疑似的なフレームを作り出すのが困難であると容易に想像がつきます。

 

そもそもFCPX のOPTICAL FLOWで生成されたフレームがごく自然で前後とのつながりの良い品質であれば不自然さはないでしょうけど、FCPXで試した時はそうもいかなかったのでした。

DaVinciのOPTICAL FLOW適用

前置きが長くなりました。m(_ _)m

DaVinci ResolveのOPTICAL FLOWの適用方法は非常に簡単です。カットを選んでスロー(リタイミング 例えば25%)に設定した後に、インスペクタの「リタイム&スケーリング」の「リタイム処理」から「オプティカルフロー」を選ぶだけです。Motion Estimationが本来はSpeedWarpを選ぶのが良いのかもしれませんが、現時点で私の環境ではGPU(GTX1060 OC 6G)のメモリ不足でマトモに動作しません。これに関してはちゃんと動く様になったらレポートをしなおしたいと思います。

 

「リタイム&スケーリング」内のダイアログ「Motion Estimation」はOPTICAL FLOWの処理に関する品質設定です。この動画では画質は「(処理の)速度優先(高品質)」にあたるEnhances Fasterに設定して処理を行いました。(プロジェクト設定で変更しています)

 

f:id:sumizoon:20190619222540j:plain

ダンサー&振付師のEIJIさん いつもかっこいい!

 


DaVinci Resolve OPTICAL FLOW TEST

 

どうでしょうか。基本は4K60p→25%スロー(疑似120p)とFHD150p(20%スロー30p記録)→10%スロー及び5%スローでの結果となります。

黄色いキャプションでOPTICAL FLOWと記載しているカットがDaVinciの処理によるものです。

ところどころ不自然なフレームはあります。たとえば手を大きく速く動かすカットではオリジナルのフレームとフレームの間に大きなギャップが生じるためにどうしても不自然なフレームが生成されるようです。しかしながら、それ以外の通常の動きでは、かなり自然な状態で処理できていると感じました。60p以上で撮影したというのもあって、動きが激しいにも関わらずうまく処理できていると思います。少なくとも私が以前使っていたVerのFCPXではこれだけのクオリティは難しかったと思います。

 

DaVinciのOPTICAL FLOWは使えるのか

かなり使えます。てか4K60pで撮ってさえいればそこそこの動きがある被写体でも4K120p(あるいはそれ以上)が疑似的に作り出せてしまう状態です。尚、4K30pでの手持ちのデータも試しましたが、やはり4K60pをベースにした方が圧倒的に処理は綺麗に決まります。

 

撮影に使用したカメラ

LUMIX DC-S1 ボディ

LUMIX DC-S1 ボディ