かんたんに動画の全てのフレームに任意の処理ができるフレームワーク
既存の動画ファイルに好きな処理ができるフレームワークを使って、実写をアニメにします。
動画処理はややこしそう?
動画の読み出し→加工→書き込みの処理は、いろいろ書かなくてはいけなさそうなイメージでややこしそうではないですか?
全てのフレームを処理することなんてできるのか?
結局、動画はすごくたくさんの量の画像が集まったパラパラ漫画のようなもので、
動画を加工するには、その全てのフレームに加工処理を加えないといけないのでは?
SemanticImageで、かんたんに、動画に好きな処理ができる
SemanticImageというライブラリなら、数行のコードでかんたんに動画処理ができます。
パラパラ漫画の一枚(動画の1フレーム)にしたい処理を書くだけで、全てのフレームを加工してくれます。
#具体的手順
SwiftPackageManagerでSemanticImageをプロジェクトに加え、importします。
あとは、動画処理関数を呼ぶだけです。
SemanticImage().applyProcessingOnVideo(videoURL: url, { ciImage in
// 動画のフレームをciImageとして、ここにciImageを加工する処理を書く
return newImage
}, { err, editedURL in
// 加工ずみの動画URLが返ってくる
})
実写をアニメにしてみた
上記関数のフレーム加工部分に、CoreML-ModelsからダウンロードしたAnimeGANで加工をするコードを入れてみました。
フィルターや機械学習画像処理にも
フレーム加工部分に、CIFilterや他の機械学習モデルの処理を入れると、かんたんにいろいろな動画加工ができます。
🐣
フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLやARKitを使ったアプリを作っています。
機械学習/AR関連の情報を発信しています。