MozFace開発チームです。動画にモザイクをかけたとき、再生してみたら途中でモザイクが顔からズレていた——これは動画編集でもっとも起きやすい失敗です。この記事では、なぜズレるのか、どうすればズレなくなるのかを説明します。
モザイクがズレるのはなぜか
動画は静止画の連なりです。30fpsの動画なら1秒間に30枚、1分では1800枚の画像が並んでいます。モザイクをかけるということは、このすべての画像に対して「どこを隠すか」を決めるということです。
ところが被写体は止まっていません。人は歩き、振り向き、しゃがみます。カメラを手で持っていれば、それだけでも画面全体が揺れます。ある1枚で顔にぴったり合わせた範囲は、次の瞬間にはもう合っていません。1枚目に合わせた位置をそのまま最後まで使えば、途中から顔がむき出しになるのは当然の結果です。
キーフレームで対処する方法とその限界
一般的な動画編集アプリでは、キーフレームという機能でこれに対処します。「0秒の時点ではここ」「3秒の時点ではここ」と位置を手で指定すると、その間の動きをアプリが自動で補間してくれる仕組みです。
真っ直ぐ一定の速さで歩いているだけなら、これで十分きれいに追えます。問題は、人の動きが直線的ではないことです。立ち止まる、急に方向を変える、しゃがんで持ち上げる。そのたびに指定するポイントを増やす必要があり、動きが複雑になるほど作業量が跳ね上がります。
さらに厄介なのが複数人です。3人が別々の方向に歩いていれば、3人分のキーフレームをそれぞれ管理することになります。動画が長ければ長いほど、確認と修正の往復も増えていきます。
顔追尾なら位置指定がいらない
もう一つのやり方が顔追尾(フェイストラッキング)です。人が手で位置を教えるのではなく、アプリ側が映像の中の顔を見つけ、それが動画のどこにいるかを時系列で追いかけます。
MozFaceはこの方式を採っています。動画を読み込むと顔を自動で検出し、それぞれの顔について、動画の中での位置の変化を記録します。被写体が画面の端から端まで移動しても、モザイクはその動きに沿って移動します。キーフレームを打つ操作は一度もありません。
複数人でも扱いは同じです。検出された顔はそれぞれ独立して追跡されるので、3人が別々に動いていても、3人分の作業に増えることはありません。人数が多い動画ほど、手作業との差は大きくなります。
「全員隠れた状態」から始める
追尾と同じくらい大事なのが、作業の順番です。MozFaceでは検出された顔に最初から全員モザイクがかかった状態で編集が始まります。そこから、見せてよい人だけをタップで解除していきます。
隠し忘れは「隠す操作を忘れたとき」に起きます。最初から全部隠れていれば、忘れる対象そのものが存在しません。動画は写真と違って通して再生しないと確認できないぶん、初期状態が安全側に倒れていることの価値は大きくなります。
追尾が苦手な場面もある
自動追尾は万能ではありません。顔が完全に後ろを向いている、他の人や物に隠れて見えなくなる、極端に暗い、ぶれて輪郭が潰れている——こうした場面では顔として検出されないことがあります。書き出す前に一度通して再生し、人が横切る瞬間、カメラが大きく動く場面、後ろ向きの顔が振り返る瞬間を重点的に確認してください。顔として検出されない対象は、範囲を手動で置いて隠せます。なお、隠した動画を公開してよいかどうかの最終判断はご自身でお願いします。
よくある質問
キーフレームを打たなくてもモザイクは追従しますか?
はい。MozFaceは検出した顔ごとに動画内での位置の変化を追跡するので、被写体が動いてもモザイクがついてきます。位置を手で指定する操作は必要ありません。
複数人が別々に動いていても追えますか?
検出された顔はそれぞれ独立して追跡されます。人数が増えても、一人ずつ位置を指定し直す作業は発生しません。
後ろを向いた顔もモザイクされますか?
完全に後ろを向いている、物陰に隠れている、極端に暗いなどの場面では検出されないことがあります。書き出す前に通して再生して確認し、必要なら範囲を手動で置いて隠してください。
動画は外部に送信されますか?
いいえ。顔の検出から書き出しまですべて端末内で処理されるため、動画が外部のサーバーへ送信されることはありません。