AIが疫病と戦う:百度がマスク顔検出・分類モデルをオープンソース化

AIが疫病と戦う:百度がマスク顔検出・分類モデルをオープンソース化

仕事に戻るにあたり、各地域はどのように流行を予防すべきでしょうか?人工知能技術は、新型コロナウイルス感染症との闘いに必要な支援を提供している。

2019年新型コロナウイルス肺炎の流行は人々の移動に大きな変化をもたらした。武漢市が1月24日に都市封鎖を発表して以来、各省市は人口移動を制御するため、重大な公衆衛生上の緊急事態に対するレベル1の対応を相次いで開始した。多くの都市ではすでに、公共交通機関を利用する前にマスクの着用と体温測定を義務付けている。 2月10日の職場復帰を前に、上海や北京などの主要都市も相次いで新たな規制を発表し、空港、鉄道、長距離バスの駅、医療機関、ショッピングモール、スーパーマーケットなどの公共の場所に出入りする際にマスクを着用しない人は控えるよう呼びかけている。

外出時にマスクを正しく着用することは、疫病の蔓延を防ぐためであり、この動きは広く人々から支持されている。しかし、それは多くの課題ももたらします。高密度な人の流れにより、草の根の検査担当者は人手不足に陥り、疑いのある患者と接触するリスクがあります。新たな状況に適応する人工知能技術だけが、彼らの仕事のプレッシャーを軽減することができます。

[[314886]]

2月13日、Baidu PaddlePaddleは業界初のマスク顔検出・分類モデルのオープンソース化を発表した。このモデルを基に、公共の場で大量の顔を検出し、マスクを着用している人と着用していない人の顔を区別することができます。これにより、さまざまなシーンでウイルス対策に注意を払っていない人や、ウイルス対策に気を配っていない人、さらにはまぐれで感染した人などを素早く識別し、公共の場での安全上の危険を軽減することができます。同時に、防疫のための公共福祉アプリケーションをさらに構築します。

このテクノロジー企業は、災害に直面して、民政部の陳月良部長の呼びかけに行動で応えた。「役に立つ公共福祉ソフトウェアは、10億元を寄付するよりも効果的です!」

業界初のオープンソースマスク顔検出および分類モデル

マスク顔検出および分類モデルは、マスク顔検出とマスク顔分類をそれぞれ実行できる 2 つの機能ユニットで構成されています。テストの結果、マスク顔検出部分の精度は98%に達し、マスク顔分類部分の精度も96.5%に達し、性能面でも業界トップレベルに達しました。

同時に、究極の軽量モデルを実現し、ほとんどのエッジクラウドデバイスでリアルタイム処理を実現できます(HiSilicon 3559チップではわずか17msしかかかりません)。 Baidu はこのモデルを継続的に更新し、結果を継続的に改善していきます。

百度は、このような高い精度率は大規模なデータトレーニングの結果であると述べた。新しいモデルは、サンプルサイズが十分で効果的であることを保証するために、10万枚以上の写真のトレーニングデータを使用している。一方、顔検出モデルは、Baiduが独自に開発したChampionアルゴリズムに基づいています。研究開発プロセス全体は、BaiduのオープンソースPaddlePaddleディープラーニングプラットフォームに基づいており、効率的で便利なモデル開発、トレーニング、展開を可能にします。

まず、マスク顔検出および分類モデルの効果を見てみましょう。緑の境界ボックスはマスクを着用した顔を表し、赤の境界ボックスはマスクを着用していない顔を表します。 Baidu チームは、画像をアップロードしてモデルの効果をテストできるオンライン デモ ページも提供しています。

オンラインデモのアドレス: https://www.paddlepaddle.org.cn/hub/scene/maskdetect

事前トレーニング済みのモデル、すぐにデプロイ可能

独自のニーズとデータがある場合は、ディープラーニング フレームワークを使用してゼロからトレーニングすることも非常に良い選択です。しかし、コストが高いことは間違いありません。同時に、Baiduは、トレーニング済みのマスク顔検出および分類モデルを事前トレーニング済みモデルの形で公開しており、開発者がリソースを節約し、効率を向上させるのに大いに役立ちます。

Baidu PaddlePaddle は、事前トレーニング モデル管理ツール PaddleHub を通じて、マスク顔検出および分類の事前トレーニング モデルをオープンソース化しました。開発者が基本的な Python プログラミング スキルを持っている限り、ローカルまたはサービング サービス呼び出しモデルをすぐに構築できます。一定のモバイル アプリ開発能力があれば、モデルをモバイル端末に素早く展開することもできます。

事前トレーニング済みモデルの紹介: https://www.paddlepaddle.org.cn/hubdetail?name=pyramidbox_lite_server_mask&en_category=ObjectDetection

事前トレーニング済みモデルのサンプルコード: https://aistudio.baidu.com/aistudio/projectDetail/267322

トップアルゴリズムとデータ

このソリューションでは、顔認識に使用されるモデルは、2018年にBaiduが世界最高峰のコンピュータビジョンカンファレンスECCV 2018で発表した論文「PyramidBox」に基づいて開発されています。これは、自社開発のオープンソースディープラーニングプラットフォーム「PaddlePaddle」でトレーニングされ、paddle-slimなどのモデル小型化技術を使用して、計算能力が限られたデバイスでもアルゴリズムを効率的に実行できるようにします。

アルゴリズムコードアドレス: https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/face_detection

マスク顔検出および分類モデルは、人混みが密集する公共の場で、マスクを着用している人と着用していない人の顔を素早く識別してマークすることができます。この事前トレーニング済みモデルに基づいて、開発者は少量のコードのみを使用して独自のシナリオ モデルの開発を迅速に完了できます。

このモデルは、税関、鉄道駅、公園コミュニティの入り口など、さまざまなタイプのエリアで幅広く使用できます。また、サーバーバージョンとモバイルバージョンも提供されており、開発者がさまざまなシナリオの要件を満たすためにさまざまな種類のハードウェアプラットフォームに統合するのに便利です。重要なエリアを監視し、マスクを着用していない人にタイムリーに警告するのに非常に適しています。

マスク顔検出および分類モデルが広く使用される場合、検出結果の統計データは、より詳細な研究の基礎を提供することもできます。百度は、検査結果は疫病分析、スマートシティ、スマートコミュニティなどのシナリオで重要な役割を果たすことができると述べた。

この期間中、多くのテクノロジー企業が温度検知、顔認識、その他のタスク用の AI アルゴリズムを立ち上げました。 Baidu が提案した方法は、最初のオープンソースのマスク顔検出および分類モデルです。 PaddlePaddle ディープラーニング テクノロジー プラットフォームから、効率的で正確な顔検出および認識アルゴリズム、ハードウェア展開ソリューションまで、Baidu が提案する方法により、他のツールとの完全かつ効率的な全体的な連携を実現できます。

実際の使い方

事前トレーニング済みのモデル全体に​​必要なのは、PaddlePaddle と PaddleHub のインストールのみで、実行するには基本的な Python を理解するだけで済みます。次の短いビデオは、マスクを着用した人物の顔検出モデルのテストを示しています。

上記のように、最も単純なローカル推論が行われます。わずか 5 行のコードで、自分のコンピューターでマスク顔検出を処理できます。効果を示すために、各画像を 2 秒間表示するよう設定しました。実際、CPU を使用すると、検出は基本的にリアルタイムで行われ、推論速度は非常に速くなります。以下は、事前トレーニング済みモデルを呼び出すためのコア コードです。ここでは、現在のフォルダーにテスト イメージを配置します。

  1. paddlehub をハブとしてインポートする
  2.  
  3. # モデルをロードします。この例では、サーバー モデルは pyramidbox_lite_server_mask です。
  4.  
  5. # モバイルモデルのパラメータは pyramidbox_lite_mobile_mask に置き換えることができます
  6.  
  7. モジュール = hub.Module(名前 = "pyramidbox_lite_server_mask" )
  8.  
  9. # 入力データの設定
  10.  
  11. input_dict = { "画像" : [ "test.jpg" ]}
  12.  
  13. module.face_detection(data=input_dict) のデータの場合:
  14.  
  15. 印刷(データ)

Baidu はマスク顔検出と分類のサンプル コードを提供しています。ノートブック ファイルを通じて、モデルの使用プロセス全体をより鮮明に理解できます。

アドレス: https://aistudio.baidu.com/aistudio/projectDetail/267322

さらに重要なのは、完全なオープンソース作業であるため、ローカル推論に加えて、モデルをサーバーまたはモバイル デバイスに展開する方法も考慮する必要があることです。さまざまなプラットフォームに迅速に展開できれば、まさに「疫病と戦う」ための基本的なツールとして活用できることになる。

現在、Baidu は、サーバー側マスク顔検出および分類モデル「pyramidbox_lite_server_mask」とモバイル側マスク顔検出および分類モデル「pyramidbox_lite_mobile_mask」という 2 つの事前トレーニング済みモデルを提供しており、どちらもさまざまなダウンストリーム タスクに対応できます。

1. ワンステップでサーバーを展開する

PaddleHub では、サーバー側の展開も非常に簡単です。コマンドラインを使用して、サーバー上でマスク顔検出および分類モデルを起動するだけです。

  1. ハブサービス開始 -m pyramidbox_lite_server_mask -p 8866  

はい、サーバー側ではまったく問題ありません。さまざまなパラメータを手動で設定したり、さまざまなフレームワークを呼び出したりするのに比べて、PaddleHub デプロイメント サーバーは非常に使いやすいです。

サーバー側でのデプロイメントが完了していれば、クライアント側での残りの呼び出しに大きな問題は発生しません。 Baidu は、次のように推論のためにサーバーを呼び出す例を示しています。予測する画像のリストを作成し、推論要求を発行し、推論結果を返して保存します。

  1. # コーディング: utf8
  2.  
  3. 輸入リクエスト
  4.  
  5. jsonをインポート
  6.  
  7. base64をインポート
  8.  
  9. インポートOS
  10.  
  11. # 検出する画像を指定してリストを生成します [( "image" , img_1), ( "image" , img_2), ... ]
  12.  
  13. ファイルリスト = [ "test.jpg" ]
  14.  
  15. files = [( "image" , (open(item, "rb" ))) for item in file_list]
  16.  
  17. # 検出方法を pyramidbox_lite_server_mask として指定し、POST リクエストを送信します
  18.  
  19. url = "http://127.0.0.1:8866/predict/image/pyramidbox_lite_server_mask"  
  20.  
  21. r = リクエスト.post(url=url, files=ファイル)
  22.  
  23. 結果 = eval(r.json()[ "結果" ])
  24.  
  25. # 検出によって生成された画像を出力フォルダに保存し、モデル出力結果を印刷します
  26.  
  27. os.path.exists( "output" ) が存在しない場合は:
  28.  
  29. os.mkdir( "出力" )
  30.  
  31. 結果内の項目:
  32.  
  33. open(os.path.join( "output" , item[ "path" ]), "wb" ) を fp として実行します。
  34.  
  35. fp.write(base64.b64decode(item[ "base64" ].split( ',' )[- 1 ]))
  36.  
  37. アイテム.pop( "base64" )
  38.  
  39. print(json.dumps(結果、インデント= 4 、ensure_ascii=False))

Pythonの基礎知識があれば、ローカル予測やサーバーへの展開は問題ないと思います。PaddleHubはすでにさまざまな処理プロセスで役立っています。

2. モバイルデバイスに展開する

Paddle Lite は、モバイル デバイスでのモデル推論の展開用に特別に設計された、PaddlePaddle のエンドツーエンドの推論エンジンです。マスク顔検出および分類モデルを携帯電話などのモバイルデバイスに組み込む必要がある場合、Paddle Lite のようなエンドサイド推論エンジンを使用すると、多くの作業を節約できます。

マスク顔検出および分類モデルをモバイル端末に展開するには、次の 3 つの手順のみが必要です。① 予測ライブラリをダウンロードします。Paddle Lite はコンパイルされた予測ライブラリを提供します。② モデルを最適化し、model_optimize_tool ツールを使用してモデルの最適化を実現します。③ 予測 API を介して呼び出します。

Paddle Lite の紹介: https://github.com/PaddlePaddle/Paddle-Lite/

さらに重要なのは、モバイル API の呼び出し方法です。具体的な実装については、以下に示す Paddle Lite のサンプル アドレスを参照してください。

  1. // 画像を読み取る 
  2.  
  3. cv::Mat img = imread(img_path, cv::IMREAD_COLOR);
  4.  
  5. // 顔検出またはマスク着用判別モデルをロードする 
  6.  
  7. MobileConfig 設定;
  8.  
  9. config.set_model_dir(model_dir);
  10.  
  11. PaddlePredictor* 予測子 =
  12.  
  13. パドル予測子を作成します。<MobileConfig>(config);
  14.  
  15. // 入力を設定する 
  16.  
  17. テンソル* input_tensor = predictor->GetInput( 0 );
  18.  
  19. input_tensor->Resize({ 1,3 , img.rows ,img.cols});
  20.  
  21. set_input(img, input_tensor); //カスタム関数を呼び出す 
  22.  
  23. // 埋め込む 
  24.  
  25. 予測子->実行();
  26.  
  27. // 出力結果 
  28.  
  29. テンソル* output_tensor = predictor->GetOutput( 0 );
  30.  
  31. show_output(img, output_tensor); //カスタム関数を呼び出す 

モバイル端末での顔認識とマスク着用判定の例のアドレスは、https://github.com/PaddlePaddle/Paddle-Lite/tree/develop/lite/demo/cxx です。

開発者が協力して伝染病と戦うのを手伝ってください

マスク顔検出・分類モデルプロジェクトの研究開発担当者は、Baiduが春節期間中にコミュニティやパートナーからの技術的ニーズに頻繁に遭遇し、すぐにドッキングとアプリケーション開発アクションを開始したとMachine Heartに語った。これを受けて、百度は新型コロナウイルス感染症対策に特化した技術研究開発チームを立ち上げた。議論の結果、開発者らは最終製品がオープンソースを通じてより多くの開発者に力を与えるべきであると満場一致で合意した。

Baidu はすぐに複数の部門からなる生産研究チームを組織し、複数の部門の協力を得て、エンジニアはすぐに計画の実行段階に入りました。

多くの都市では交通規制が行われているため、ほとんどの人がリモート開発という形でプロジェクト開発プロセスに参加します。 Baidu の研究開発担当者は、Baidu の効率的な社内共同オフィスと開発システムのおかげで、全体的な研究開発の進捗は迅速な反復を維持できると述べています。

これまで、マスク顔検出モデルに実現可能なソリューションを提供できるメーカーはわずかしかなく、これらの技術の認識効果は密集した群衆の下では変化していました。しかし、データセットとモデル開発の経験が不足しているため、多くのソリューションでは、公園やチェックポイントなどのセグメント化されたシナリオに直面したときに、どこから始めればよいかわからないようです。

マスク顔検出および分類モデルは、多くのアプリケーションの基礎となる可能性があります。公共の場での着用状況をスクリーニングすることに加えて、マスクが正しく着用されているかどうかを検出したり、体温を監視したりするアプリケーションを、この機能の助けを借りてより迅速に実装できます。 Baidu はオープンソース モデルに加えて、二次開発ツール コンポーネントも提供しているため、より適したモデルを開発できます。

サポートされているハードウェアに関しては、このモデルは Baidu 公式およびサードパーティ認定のハードウェア プラットフォームで効率的に実行できます。さらに、このモデルは現在市場に出回っている多くの主流のハードウェア プラットフォームもサポートしています。

オープンソース化されたばかりのアルゴリズムに加え、百度のAI技術はCOVID-19パンデミック対策の多くの分野で役割を果たしてきた。同社は政府部門と積極的に協力し、北京市公式の新型肺炎医師相談プラットフォームを立ち上げ、「発熱診療マップ」を発表し、疫病デマ反駁チャンネルを開設し、各地の最前線の疫病予防・抑制機関にインテリジェントアウトバウンドコールプラットフォームを開放し、草の根レベルにAI技術サポートを提供した。

百度は春節期間中に、完全な百度AI温度測定システムをリリースし、すぐに新型コロナウイルス感染症の予防と制御に投入した。北京清河駅では、百度のAI体温測定システムが1月末の導入以来、2月8日時点で3万2000件以上の迅速な体温測定を完了した。体温異常の疑いのある人は計190人以上が発見され、職員が手動で再検査した。

<<:  今は2020年です。ディープラーニングの今後はどうなるのでしょうか?

>>:  2020年にAIに適した5つのプログラミング言語

ブログ    
ブログ    
ブログ    

推薦する

前進を続けましょう: TensorFlow 2.4 の新機能を見てみましょう。

TensorFlow 2.4 が利用可能になりました!このリリースには、新しい機能、パフォーマンス...

気候変動との戦い: AIはエネルギーソリューションをリードできる

AI と機械学習をエネルギーと組み合わせることで、再生可能エネルギーの導入を加速することができます。...

李開復氏:反復労働の代替として、農村地域はAIロボットの着陸に最適な場所

人工知能技術は農業にどのような力を与えるのでしょうか?将来、農業に変化をもたらす最も重要な技術は何で...

フロントエンドではアルゴリズムを理解する必要はないと思いますか?実際の例を見てみましょう。

[[431020]]アルゴリズムは、問題を解決するための手順です。同じ問題でも複数の解決策が存在す...

機械学習は金融自動化においてどのような役割を果たすのでしょうか?

金融やその他の分野における自動化は避けられません。しかし、金融サービスの自動化は、高いレベルの注意、...

...

モノのインターネットにおける人工知能と機械学習の役割は何ですか?

人工知能 (AI) と機械学習 (ML) をモノのインターネット (IoT) システムに統合すること...

...

2021 年を総合的に振り返ると、これら 10 社の AI スタートアップには「材料」がある!

今年の AI スタートアップ リストには、AI 音声アシスタントを構築するためのコード不要の Web...

...

世界経済フォーラムの報告: 5年以内に8,500万の仕事が機械に置き換えられる可能性がある

世界経済フォーラム(WEF)のウェブサイトが21日に報じたところによると、同組織はこのほど「仕事の未...

...