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

流行、団結し、人工知能技術との戦いは、過去に流行の予防とコントロールに適用されています。

2月13日、Baiduは業界初のフリーでオープンソースマスク顔検出と分類モデルを発表しました。裁判官マスクを着用するかどうかをしながら、モデルを効果的に検出し、所有者が顔領域で密な群集を運ぶマスクを着用していなかった運ぶことができます。オープンソースは、数行のコードを開発者の大半はすぐに始めることができ、外PaddleHubパドルを通じて無料通話を飛行しています。

モデルの可視化:赤い枠の付いた緑色のボックスを着用するためのマスクが示されたマスクを着用していません

毎週では、企業が休日の経済が回復し始めた後に仕事に復帰する必要があり、フェイスマスク検出方式は、多くのコミュニティ、大企業、中央企業で重要な需要リワーク潮となっています。このような決定するために、作業領域として新しいクラウン肺炎の流行の下で取り組むべき本当の痛みのポイントをマスクを身に着けていることなど、毎日ブラシ面パンチを完了できるかどうか......、マスクと顔の温度を身に着けている人を識別するための交通センターマークを混雑しているどのようにスタッフ着用マスク、か。

自己宣言した無料のオープンソース研究のマスクの顔検出と分類モデルは、研究論文PyramidBoxに基づいてコンピュータビジョンECCVの一番上の国際会議に含ま2018 Baiduは大量に人の顔を検出することができ、同時に公共の場面を混雑し、着用していただきますマスクやフェイスマスク迅速な識別マークを着用していません。この事前研修モデルに基づいて、開発者が自身のデータのみの少量を使用する必要が、あなたはすぐにシーンの独自のモデルを開発することができます。

百度R&Dエンジニア、マスク、顔検出および分類モデルは、2つの機能ユニットで構成され、それぞれ、分類マスクを顔検出と顔マスクを完了することができます。試験後、顔検出アルゴリズムベースのバックボーンネットワークモデルが症例の98%で正確であることができるデータをトレーニング100,000以上のフェイスマスクを接合faceboxes、再現率は著しく、30%増加しました。フェイスマスクの判定モデルは、フェイスマスクを着用するかどうかを判断達成することができます96.5%のマスクの判別精度率、従来のマスク検査のニーズを満たすために開発者は、データがさらにモデルの精度と再現率を高めることができる2番目のシーンを最適化するために、独自のモデルに基づくことができます。

このような高い精度の背後にある学習データの大量の結果であり、新しいモデルは、適切かつ効果的なサンプルサイズを確保するために、10万写真の上にトレーニングデータを使用しています。一方、顔検出自己開発モデルBaiduのチャンピオンシップアルゴリズム、開発プロセス全体は、オープンソースのBaiduに基づいており、パドル深学習プラットフォームは、効率的で便利なモデル開発、トレーニングおよび展開を可能に飛びます。

オンラインデモンストレーション効果:緑のバウンディングボックスは、マスクの顔を着用しないようにマスク顔、赤いバウンディングボックスを着用しています。興味のある開発者は、モデルの効果をテストするために、自分の写真をアップロードすることができます。

オンラインデモ住所:

https://www.paddlepaddle.org.cn/hub/scene/maskdetect

実際のシーン照明、オクルージョンマスクため、発現、スケール変更して変化等、モデルは、ロバストであり、着陸過程において真に有用であると異なる端縁、クラウドデバイス、種々の実時間で検出することができます。

事前研修モデル、即時展開

あなたが持っている場合、アプリケーションを最大化するために、開発者を容易にするために、Baiduの深い学習プラットフォームは、すばやく呼び出して始めることができ、ちょうど基本的なPythonプログラミングのスキル、簡単に使用できる事前研修モデル管理ツールPaddleHubにより、オープンソースのうち、パドルフェイスマスク検出モデルを飛行します特定の移動端末APP開発能力、モデルはすぐに携帯端末に展開することができます。

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

このプログラムは、2018年における顔認識のためのモデル、コンピュータビジョンECCV論文PyramidBox 2018にBaiduのトップ国際会議、研究開発に基づいて、フライパドルオープンソース学習プラットフォームの自己深度調査に基づいたトレーニング、およびPaddleSlimや他の小型化されたモデルによる技術的なアルゴリズムは、オペレータ力デバイスの限られた数の上で効率的に実行することができます。

また、二次開発ツールコンポーネント塊を提供するパドルを飛ぶ、および関連する検出アルゴリズムより、人間の顔、上記の技術およびツールの全ては、オープンソースとフリーです。

練習

コードの5行限り、あなたは自分のコンピュータ上の顔検出マスクを扱うことができます。実際のCPUの場合は、実質的にリアルタイムに検出し、非常に高速推定。以下は、そのテスト画像の現在のフォルダ分権における事前学習モデルを呼び出すコアコードです。

import paddlehub as hub
# 加载模型,本例为服务器端模型pyramidbox_lite_server_mask# 移动端模型参数可以换成pyramidbox_lite_mobile_maskmodule = hub.Module(name="pyramidbox_lite_server_mask")
# 设置输入数据input_dict = {"image": ["test.jpg"]}for data in module.face_detection(data=input_dict):    print(data)

さらに重要なこと、また、サーバやモバイルデバイスにモデルを展開する方法を検討する必要がありますローカル推論に加えて、完全なオープンソースの仕事、など。我々はすぐにすべてのプラットフォームにデプロイすることができれば、それは実際にそれが基本的なツールとして使用することができ、「伝染」を意味しています。

現在、Baiduはマスク、さまざまな下流のタスクを満たすことができ、どちらもサーバー側の顔検出および分類モデル「pyramidbox_lite_server_mask」モバイル端末マスクと顔検出と分類モデル「pyramidbox_lite_mobile_mask」、という2つの事前研修のモデルを提供します。

1.ステップ展開サーバー

PaddleHubでは、サーバはまた、非常にシンプルである展開、リスト上のコマンド・ライン・サーバの起動マスク、顔検出と分類モデルを直接使用:

hub serving start -m pyramidbox_lite_server_mask -p 8866

2.携帯端末に配備

パドルLiteは特に携帯端末推論モデルの展開のために、パドルエンド推論エンジンを飛びます。あなたがマスク顔検出と分類モデルを配置する必要がある場合は、携帯電話などのモバイル機器に組み込まれているので、この辺パドルLiteの推論エンジンは、多くの作業節約することができます。

展開マスク顔検出や携帯端末での分類モデルは、たった3つのステップが必要になります。

①ダウンロード予測ライブラリは、パドルLiteは予測コンパイルされたライブラリを提供します。

②最適化モデル、最適化モデルを実現するためにmodel_optimize_toolツールを使用しました。

③実装では、APIを予測することによって呼び出されます。

開発者は、PaddleHubダウンロード人々によってマスク認識モデルに直面することができます。通常のインストールPaddleHubした後、次のコードは、pythonのダウンロードによって実行され、一例として、ダウンロードモバイルエンドフェイスマスク認識モデルを保存するためにモデルを保存することができます。

ハブpaddlehub ASインポート
モジュール= hub.Module(名前= "pyramidbox_lite_mobile_mask")
でtest_programフォルダ内のモデル保存#
module.processor.save_inference_model(dirnameは= "test_program")

上記のコードを、あなたは顔検出とマスクを着用して推定モデルを得ることができ、ディレクトリtest_program内のフォルダの下にpyramidbox_liteとmask_detectorサブフォルダに格納されています。__model__モデルがファイルを構造化されているフォルダ、__ param__ファイルは、ファイルの重みです。

パドルライトの説明:

https://github.com/PaddlePaddle/Paddle-Lite

もっと重要なのは、モバイル端末でのAPIの呼び出し方法は、下記のアドレスのパドルLite固有の実装例を参照してくださいです。


// 读取图片

cv::Mat img = imread(img_path, cv::IMREAD_COLOR);

// 加载人脸检测或者口罩佩戴判别模型

MobileConfig config;

config.set_model_dir(model_dir);

PaddlePredictor* predictor =

      CreatePaddlePredictor<MobileConfig>(config);

// 设置输入

Tensor* input_tensor = predictor->GetInput(0);

input_tensor->Resize({1, 3, img.rows,img.cols});

set_input(img, input_tensor); //调用自定义函数

// 执行

predictor->Run();

// 输出结果

Tensor* output_tensor = predictor->GetOutput(0);

show_output(img, output_tensor); //调用自定义函数

フェイスマスクを着用し、携帯端末のアドレスの典型的な展開を決定します。

https://github.com/PaddlePaddle/Paddle-Lite/tree/develop/lite/demo/cxx

おすすめ

転載: www.oschina.net/news/113372/paddlepaddle-news