独自の顔ぼかしツールを構築する方法

独自の顔ぼかしツールを構築する方法

OpenCVを使用して顔認識をカスタマイズする方法

[[412851]]

匿名化とは、データを匿名化するプロセスを指します。欧州連合の GDPR や他の国の同様の措置の実施により、データセットの準備や個人情報の処理において、PII (個人を特定できる情報) を保護することが必須のステップになります。もちろん、人の顔は人のアイデンティティの最も顕著な特徴の 1 つであるため、顔を検出して匿名化するソリューションは数多くあります。ただし、カスタマイズや自動化は困難です。これは、オープンソースを使用して自分でやりたい人のための DIY ガイドです。コード例全体は Colab で実行でき、こちらから入手できます。 GDPRはこちら: https://github.com/changsin/DL/blob/main/notebooks/deidentify_faces_opencv.ipynb

顔を自動的に匿名化する手順は次のとおりです。

1. 顔検出

顔検出は物体検出の一種なので、この目的にはディープラーニング ネットワークを使用できます。 OpenCV には、公開されているデータセットを使用して顔を検出するように事前トレーニングされたディープラーニング ニューラル ネットワークが含まれています。 Caffe ディープラーニング フレームワークを使用しており、モデル定義と事前トレーニング済みの重みファイルをダウンロードできます。ダウンロードしたら、それらをロードして、画像内の顔を検出できるディープ ニューラル ネットワークを作成します。 Caffe ディープラーニングフレームワーク

ここで、次のコード スニペットに示すように、画像をロードして DNN に渡し、顔を検出するだけです。

各予測には、カテゴリ ID (インデックス = 1)、信頼度 (インデックス = 2)、および検出された顔の座標が含まれます。

  1. # DNNからのサンプル予測出力
  2. 配列([ 0 . , 1 . , 0.8745881 , 0.68375957 , 0.47576728 , 0.75310016 , 0.62532324 ], dtype=float32)

私たちは顔検出だけに興味があるので、信頼確率だけに焦点を当て、それを使って予測を受け入れるか拒否するかを決めることができます。

今にしましょうか? euro™ によるサンプル画像の処理。この公開画像を選択したのは、People-uro™ の顔がさまざまな角度や肌の色で写っているためです。

[[412852]]

信頼度しきい値が 0.5 (つまり、顔である確率が 50%) に設定されている場合、正面を向いている人物の顔だけが検出されます。

これは理解できることであり、すべての顔検出アルゴリズムに共通する問題です。この問題を解決する正しい方法は、横顔やその他の角度を含む、より多様な画像を追加することです。これを行う簡単で安価な方法は、単に自信を下げることです。たとえば、信頼度レベルを 0.12 に設定すると、結果ははるかに良くなります。

しかし、新たな問題が発生しました。信頼しきい値がこのように低い場合、偽陽性と偽陰性が多くなることが予想されます。左側にラベルの付いたボックスが 3 つ表示されます。良いニュースは、モデルの予測をある程度制御できることです。

2. 顔の匿名化

顔が検出されると、次のステップはそれを匿名化/非識別化する方法です。さまざまなテクニックが存在します。 2 つのぼかしテクニックとピクセル化方法の 3 つの方法を紹介します。

a. 長方形のぼかし

最も簡単な方法は、畳み込みカーネル内のピクセル値を平均化することによって機能する OpenCVâuro™ のぼかし方法を使用することです。つまり、畳み込みは平滑化フィルターとして機能します。カーネル サイズを調整することで、多少粗いぼかし効果を得ることができます。画像は多次元整数配列として処理されるため、1行のコードで関心領域をぼかしたピクセルに置き換えることができます。OpenCVのぼかし

  1. 画像[開始Y:終了Y, 開始X:終了X] = cv2.blur(画像[開始Y:終了Y, 開始X:終了X], カーネルサイズ)

kernel_size(20, 20) を使用した場合の結果は次のとおりです。

b. 省略記号のぼかし

長方形をぼかすと目的の匿名化が達成されますが、結果として得られる画像はむしろ不自然に見えます。カーネル サイズを小さくすると、不均一なぼかしを滑らかにすることができますが、別の方法としては、楕円形でぼかしを行うという方法があります。 uro™の表面は楕円形です。これを行うには、マスクを作成し、いくつかのビット演算を実行するという少しの作業を行う必要があります。カーネル サイズ (10, 10) の結果は次のとおりです。

c. ピクセル化

顔を匿名化するもう一つの一般的な方法は、ピクセル化を使用することです。ピクセル化では、関心領域がいくつかの小さなブロックに分割されます。 -euro� ピクセル化では、関心領域がいくつかの小さなブロックに分割されます。各チョークの平均 RGB 値が計算され、チョーク全体に適用されます。ご覧のとおり、結果の画像は非常に自然に見えます。

結論は

顔認識をキャンセルすることはプライバシーを保護するための第一歩です。既成のソリューションは数多くありますが、この記事では OpenCV を使用したカスタマイズと自動化のための簡単な DIY 手順を示します。ソースコード全体は Jupyter ノートブックにあり、ここから入手できます。 https://github.com/changsin/DL/blob/main/notebooks/deidentify_faces_opencv.ipynb

参考文献

  • OpenCV と Python を使用して顔をぼかし、匿名化する
  • OpenCVとディープラーニングに基づく顔検出

<<:  AIがすぐに作家に取って代わることはないだろうが、その未来はあなたが思っているよりも近いかもしれない

>>:  AIが復活! GPT-3を使用して亡くなった婚約者を複製し、アメリカ人男性は愛する人をデジタル形式で永遠に生きさせました

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ChatGPT以外の14の大規模言語モデル

翻訳者 | 李睿レビュー | Chonglou今日、多くの企業幹部は人工知能を将来の発展方向と見てお...

今日、私たちはすべてのお金を AI に与える勇気があるでしょうか?

お金を稼ぐこと以上に満足できることがあるでしょうか? もちろん、何もせずにお金を稼ぐことです。私たち...

オリンピックチャンピオンでさえ正しく答えられなかった質問が ML モデルのテストに使用されているのですか? GPT-3: できない

機械学習モデルの数学解答能力を測定するために、カリフォルニア大学バークレー校とシカゴ大学の研究者らは...

自動運転のための LiDAR とビジョンフュージョン認識の理解

2022年は、インテリジェント運転がL2からL3/L4に飛躍する絶好のチャンスです。ますます多くの自...

DeepMind の新しい研究: ReST は大規模なモデルを人間の好みに合わせて調整し、オンライン RLHF よりも効果的です

過去数か月間、私たちは大規模言語モデル (LLM) が高品質のテキストを生成し、幅広い言語タスクを解...

モデルの一般化にはSGDに匹敵するフルバッチGDのランダムトレーニングは必要ない、ネットユーザー:計算コストは​​手頃ではない

[[431688]]最近、機械学習モデルは、モデルパラメータが増えながらも一般化性能が良好な大規模モ...

Pythonでシンプルな遺伝的アルゴリズムをゼロから実装する

遺伝的アルゴリズム遺伝的アルゴリズムは、自然選択のプロセスを模倣した最適化アルゴリズムです。 彼らは...

テクノロジートレンド年末レビュー: デロイトの 2020 年テクノロジートレンドレポートの解釈

[[348166]]導入2020年は世界にとって激動の年です。経済状況は流行病の影響を受けており、不...

マイクロソフト、医療病理学の症例を分析する LLaVA-Med AI モデルを発表

6月14日、マイクロソフトの研究者らは、主に生物医学研究に使用され、CTやX線画像に基づいて患者の病...

...

MotionLM: 言語モデルとしてのマルチエージェント動作予測

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

スタンフォード大学とOpenAIがメタプロンプティングを提案し、最も強力なゼロショットプロンプティング技術が誕生した。

最新世代の言語モデル (特に GPT-4、PaLM、LLaMa) は、自然言語処理と生成の限界を押し...

...

人工知能の新たなブレークスルー:ニューラルネットワークが画像内の物体を自律的に識別できる

海外メディアの報道によると、フィンランドのコンピューター科学者は神経生物学的手法を用いて人工知能研究...