每日最新頭條.有趣資訊

百度飛槳口罩人臉檢測與識別模型再升級,視頻教學帶你實戰

機器之心發布

機器之心編輯部

自百度開源業界首個口罩人臉檢測及分類模型之後,開發者社區進行了充分討論並提出了該模型存在的一些問題和不足。在本文中,百度飛槳官方對這些反饋積極回應,同時提出四大升級方案,為開發者一一解惑。

由於目前正值很多企業復工,口罩檢測對於後續復工的安全性毋庸置疑,文章一經發出,在開發者社區引起巨大反響,截至目前發稿,百度飛槳官方技術交流 QQ 群已經達到人數上限,再加入的同學,只能加入新群。

在技術討論群裡,廣大開發者針對口罩人臉檢測與分類模型的技術應用展開了充分的討論,有些開發者實戰反饋,模型在實際場景下還是有一些提升空間。

比如這樣,一張神秘形狀的紙被判斷為口罩,

再比如這樣的,一個銷魂的手指擋住了口鼻,

除了 badcase 本身,很多開發者還遇到了各種各樣的問題,比如實際的環境很複雜,中遠景模型效果還不錯,但是近景就會不太理想。還有的是監控攝影頭的像素分辨率,也會帶來不同的判斷結果。同時,更多的需求也反饋出來:

能不能開放模型的一些接口出來?

在 PC 端,除了 python 部署,有沒有高性能的 C++部署教程呀?

如果想做視頻流的檢測,應該怎麽辦呀?

需求很多,百度飛槳給出的答案是肯定的。

作為國內唯一的開源開放深度學習平台,技術服務支持肯定是沒得說,能給的都給你,四波寵粉的新進展為開發者奉上!

第一波:口罩模型性能升級

針對用戶提出的 badcase 問題,口罩人臉檢測與分類模型研發人員也是高度重視,並且迅速開展了 V1.1.0 的優化,增補了更多的數據集,使得訓練準確率進一步提升。通過開放接口,增加金字塔策略等方式,使得在各種極端尺寸下檢測不到人臉的問題得到改善,召回率也有明顯提升。同時,口罩分類模型也經過一周有效的數據迭代,準確率從之前的 96.5% 提升到 97.27%,優化效果對比:

左側為優化前右側為優化後。

可以看到,新加入大量數據集重訓之後的第二版模型,在一些特別的場景下:比如面部異物、口鼻遮擋、側臉等 case 下都有明顯的質量提升。

而且,隨著更多開發者提供的更加龐大的數據和 badcase 增加,數據模型仍在不斷的改進中,有興趣的開發者也歡迎持續關注。

那麽,有開發者肯定想問了,我想用新模型應該怎麽用啊?非常簡單,1 個參數搞定

第二波:PaddleHub 新 Feature

選擇升級到新版本

# 加載 pyramidbox_lite_server_mask, 選擇最新的模型版本 1.1.0,則會自動升級至該版本

接口新參數

shrink

該參數用於設置圖片的縮放比例,輸入值應位於區間 (0 ~ 1],默認為 0.5

調用示例

參數影響

shrink 值越大,則對於輸入圖片中的小尺寸人臉有更好的檢測效果,反之則對於大尺寸人臉有更好的檢測。同時,shrink 值越大,則模型計算成本越高。

建議用戶根據實際應用場景調整該值,盡可能使輸入圖像的人臉尺寸在縮放後分布於 8 ~ 130pix 之間

use_multi_scale

該參數用於設置是否開啟多尺度的人臉檢測,默認為關閉

調用示例

參數影響

開啟多尺度人臉檢測能夠更好的檢測到輸入圖像中不同尺寸的人臉,但是會增加模型計算量,降低預測速度,建議在對人臉漏檢要求比較低的場景下開啟該設置。

這兩個關鍵參數接口的開放,可以滿足很大一部分場景下的業務需求,迅速提升性能。

升級後的模型,調參之後準確率妥妥的了,但是開發者落地遇到部署問題又不會了,來來來,PaddleHub 來教你!

第三波:基於 PaddleHub 實現口罩佩戴檢測應用落地部署

在第一版的模型發布中,我們提供了一行代碼伺服器端部署,可以通過 PaddleHub 快速體驗模型效果、搭建在線服務,

隨著第二版模型的發布,基於飛槳本次開源的口罩佩戴識別模型, 提供了一個完整的支持視頻流的 Web Demo,以及高性能的 Python 和 C++集成部署方案, 適用於不同場景下的軟體集成。

完整的視頻流演示 DEMO:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection

該 Demo 演示了對視頻的實時口罩佩戴檢測,同時可以將沒有佩戴的口罩人臉記錄下來。類似的應用可以部署在大型場館出入口,學校,醫院,交通通道出入口,人臉識別閘機,機器人上,支持的方案有:安卓方案(如 RK3399 的人臉識別機,機器人),Ubuntu 邊緣計算,WindowsPC+攝影頭,識別率 80%~90%。如果對於人臉識別機場景,精度要求會比較高,模型應用時需要對清晰度、距離、圖像大小等因素進行調整後部署。

視頻鏈接:https://www.bilibili.com/video/av88962128

效果分析

可以看到識別率在 80~90% 之前,稍小的人臉有誤識別的情況,有些擋住嘴的場景也被誤識別成了戴口罩,一個人帶著口罩,鼻子漏出來識別成沒有戴口罩,這個是合理的因為的鼻子漏出來是佩戴不規範。這個模型應用在門口,狹長通道,人臉識別機所在位置都是可以的。

感興趣的同學們趕緊試試吧

也有開發者提到,之前的 PaddleHub 一鍵服務化部署方案確實非常簡單,但是無法滿足一些對速度敏感的場景和軟體集成得需求。那沒問題啊,高性能的部署集成方案百度飛槳也提供哈。

高性能 Python/C++部署方案

1、首先需要安裝 PaddleHub

環境依賴 Python==2.7 or Python>=3.5 for Linux or Mac,Python>=3.6 for Windows,PaddlePaddle>=1.5

安裝方式:pip install paddlehub

2、從 PaddleHub 導出預測模型

在有網絡訪問條件下,執行 python export_model.py 導出兩個可用於推理部署的口罩模型,其中:pyramidbox_lite_mobile_mask 為移動版模型, 模型更小,計算量低;pyramidbox_lite_server_mask 為伺服器版模型,在此推薦該版本模型,精度相對移動版本更高,也是本次重點精度升級的模型。

成功執行代碼後導出的模型路徑結構:

3. Python 預測部署編譯

支持在 Windows 和 Linux 上編譯並部署 Python 項目,內容比較長,建議可以直接參考鏈接文檔:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection/python

4. C++預測部署編譯

本項目支持在 Windows 和 Linux 上編譯並部署 C++項目,流程比較複雜,建議直接參考鏈接文檔:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection/cpp

綜合預測性能評測

通過內部的數據評測,相比於 PaddleHub 原生 API,借助飛槳高性能預測引擎,在 GPU 條件下速度提升了 300%,CPU 可以提速 50%。

簡直效果炸裂,如果對於預測速度有要求的開發者,歡迎使用高性能預測方案部署。

第四波:文檔教程豐富與開發者生態貢獻交流

2 月 13 日稿件發出後,也有開發者在 QQ 群反饋說之前對 PaddleHub 特性了解不夠深入,能不能提供一些系統性的介紹。以下為飛槳團隊為開發者提供的教程資源:

AIStudio 在線教程:https://aistudio.baidu.com/aistudio/projectDetail/267322

B 站視頻:https://www.bilibili.com/video/av89960161?from=search&seid=3613394603372565887

目前,開源的口罩人臉檢測與識別模型,已經在中油瑞飛等多家企業實際應用落地,對於企業的順利復工提供安全保障,也歡迎更多的開發者和企業能夠加入進來,發揮 AI 的力量,眾志成城,抗擊疫情。

如果您想詳細了解更多飛槳 PaddlePaddle 的相關內容,請參閱以下文檔。

官網地址:https://www.paddlepaddle.org.cn/

項目地址:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo

口罩人臉檢測與分類模型介紹:https://www.paddlepaddle.org.cn/hubdetail?name=pyramidbox_lite_server_mask&en_category=ObjectDetection

本文為機器之心發布,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

獲得更多的PTT最新消息
按讚加入粉絲團