機械学習記事Machine Learning Blog

2019/11/19リアルタイムで顔にモザイクをかけたい

お題

社内のSlackで、「これはなるほどと思った」とある激安弁当屋が"店内をYouTubeで生配信"することで店長がタワマンに住むほど繁盛してしまった話 というリンクが流れてきました。

実際のライブ映像はこちらで確認できます。
ライブ映像が非公開になってしまったようです。


なるほど。とても面白いです。

ただし、お客様の顔が公開されていることが気になりました。
※YouTubeの概要欄に記載されておりますが、今回のケースではお店側が動画を取ることに対し、
 お客様は同意しているとのことで、問題はありません。

理想的な状態は、顔にモザイクがかかり、誰が何を購入しているか? という情報が画面から伝わってこないことです。
しかし、都度モザイクをかけていては、ライブ配信もできません。また、時間がいくらあっても足りません。 
そこで、AIでリアルタイムに顔を検出し、顔にモザイクをかける方法を考えました。


実現すること

撮影した動画から顔を抽出しモザイクをかける。


使う技術

物体検出と言われる手法を使います。
画像から顔を検出し、検出された部分にモザイクをかけます。


結果

一人で撮影した動画

左: モザイクなし  右: モザイクあり






少し遅延がありますが、右の画像では顔にモザイクがかかっています。
また、途中顔をノートで隠すと、モザイクが消えます。
そして、またノートを外すとモザイクがかかります。

これで顔が流出することがなくなったので一安心です。


複数人で撮影した動画






後ろで激しい動きをしている人がいます。
動きが激しいため、遅延が分かりやすくなっていますが、
右の画像では、ふたりとも顔にモザイクがかかっています。
これで、複数人でも問題なくモザイクをかけられることが分かりました。


YouTubeで配信

こちらに書いてあるようなことを行うと、動画配信できそうです。
しかし、アカウントを認証してから最大24時間待たなければ、YouTubeでのライブ配信は行えないようで、
まだ試すことができていません。

時が来たら試そうと思います。


問題点

モザイク処理に時間がかかっていることが問題点です。
手元のMacBook Proで実行しましたが、顔検出の処理に0.1程度かかりました。
その結果、約8FPS (1秒間に8回描画)ぐらいしか出ませんでした。
動画にしては遅すぎるので、もっと高速化する必要があります。
GPUを搭載したマシンでも推論速度に関する実験を行う必要がありそうです。

まとめ

無事、顔を隠すことができました。  
また、複数人で動いた場合や激しく動いた場合など、難しいと思われる条件下でも
問題なく顔にモザイクをかけることができました。

GPUを使った場合の結果や今回構築した環境については改めてFusic Tech Blogにまとめたいと考えています。
記事の公開までしばらくお待ちください。



参考にしたサイト

顔画像検出

ビデオストリーミング


最後に

Fusic 機械学習チームでは、案件のご相談を随時受け付けております。
お気軽にお声がけくださいませ。  


【お問い合わせ先】
 092-737-2616 (平日10:00〜17:00)
 sugimoto@fusic.co.jp
 (担当:先進技術部門 機械学習チーム 杉本)