)
如何用 3 步上手 InsightFace從人臉檢測到自托管識別服務(wù)【免費下載鏈接】insightfaceState-of-the-art 2D and 3D Face Analysis Project項目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是開源人臉分析工具箱覆蓋人臉檢測、人臉識別、人臉對齊與換臉的完整鏈路附帶預(yù)訓(xùn)練模型包、分布式訓(xùn)練腳本和自托管識別服務(wù)。本文先用最小命令跑通效果再給出三個可直接照做的實戰(zhàn)場景。一分鐘看懂項目定位 InsightFace 把人臉方向的三段活兒放在同一個倉庫里推理側(cè)用 Python 包直接加載預(yù)訓(xùn)練 ONNX 模型訓(xùn)練側(cè)提供 ArcFace 官方 PyTorch 實現(xiàn)和 PartialFC 大模型并行方案部署側(cè)則內(nèi)置一個帶 Web 界面和 REST API 的 Docker 服務(wù)。它的差異化在于一條龍——別人只給模型權(quán)重這里從模型獲取、訓(xùn)練代碼到容器化服務(wù)都能自給自足。核心能力入口位置輸入輸出檢測、對齊、屬性python-package/insightface/app/一張圖片人臉框、5 點 landmarks、性別年齡1:1 與 1:N 識別examples/face_recognition/、server/兩張或多張照片特征向量、余弦相似度、搜索結(jié)果人臉換臉examples/in_swapper/源人臉 目標(biāo)圖換臉結(jié)果圖訓(xùn)練新模型recognition/arcface_torch/.rec 數(shù)據(jù)集r50/r100 等模型與 ONNX 導(dǎo)出快速上手3 步跑通第一個結(jié)果 ?準(zhǔn)備環(huán)境拿到倉庫代碼先 clone 倉庫后續(xù)所有示例都基于本地目錄運行g(shù)it clone https://gitcode.com/GitHub_Trending/in/insightface安裝依賴一條命令裝推理庫官方示例要求先安裝 insightface 包它從 0.2 版本起以 onnxruntime 為后端GPU 推理需另裝 onnxruntime-gpupip install -U insightface運行最小命令跑通內(nèi)置演示倉庫自帶的 demo_analysis.py 使用內(nèi)置多人樣本圖一次完成檢測、對齊、特征提取和相似度計算python examples/demo_analysis.py運行后當(dāng)前目錄會生成 t1_output.jpg圖上畫出 6 張人臉的檢測框終端同時打印 6 人臉的兩兩相似度矩陣。三個核心能力實戰(zhàn) ?場景一核對兩張照片是否同一人你想做身份核驗類判斷時功能是把兩張照片各自壓成 512 維特征再算余弦相似度輸入是兩張單人照輸出是相似度分?jǐn)?shù)和是否同一人的結(jié)論。示例腳本默認閾值 0.65跑之前把圖片路徑換成你自己的python examples/face_recognition/insightface_app.py終端打印 Similarity Score 和 Same person? YES/NO 兩行直接得到結(jié)論。場景二把整張圖的人臉批量替換你想做換臉實驗時功能是加載 inswapper 模型把目標(biāo)圖里每張臉都換成指定源人臉輸入是帶臉圖片輸出是 t1_swapped.jpg。注意該換臉模型需單獨下載許可條款以官方文檔為準(zhǔn)python examples/in_swapper/inswapper_main.py示例會把內(nèi)置圖中 6 張人臉全部替換為其中一人的臉另存一張拼接圖便于對比。場景三搭一個 1:N 人臉?biāo)阉鞣?wù)你想把人臉庫服務(wù)化時功能是自托管 Server 容器上傳照片即完成檢測、入庫和搜索輸入是照片和人物注冊信息輸出是 Web 頁面、snake_case REST 接口和 Python SDK。CPU 版三步啟動docker compose -f server/deploy/compose.cpu.yml pull docker compose -f server/deploy/compose.cpu.yml run --rm models install buffalo_l --accept-license docker compose -f server/deploy/compose.cpu.yml up -d打開 http://127.0.0.1:18097/ 即可進入 Dashboard創(chuàng)建 Collection、注冊 Person再用一張陌生照片做 1:N 搜索。參數(shù)與性能調(diào)優(yōu)要點 訓(xùn)練側(cè)的推薦設(shè)置按數(shù)據(jù)規(guī)模和機器數(shù)量分檔配置文件都在 recognition/arcface_torch/configs/ 下使用場景推薦配置啟動方式關(guān)鍵點單卡小數(shù)據(jù)集驗證configs/ms1mv3_r50_onegpupython train_v2.py 加該配置r50、batch 128、fp16 開啟、lr 0.02單機 8 卡configs/ms1mv3_r50torchrun --nproc_per_node8MS1MV3 約 9.3 萬身份雙機 16 卡大模型configs/wf42m_pfc02_16gpus_r100torchrun 加多機參數(shù)r100 PartialFC類別中心顯存是大數(shù)據(jù)集訓(xùn)練的主要瓶頸官方在 Tesla V100 32GB x 8 上實測的吞吐樣本/秒如下摘自 recognition/arcface_torch/README.md身份數(shù)數(shù)據(jù)并行模型并行PartialFC 0.114 萬167230434738550 萬顯存不足138939752900 萬顯存不足顯存不足1855一句話劃重點身份數(shù)在幾十萬以內(nèi)按普通數(shù)據(jù)并行練即可跨過百萬級就打開 PartialFC 采樣否則類別中心裝不進顯存。避坑指南 ??GPU 裝了卻跑在 CPU 上原因默認安裝的是 CPU 版 onnxruntime不會自動啟用 CUDA。解法改裝 onnxruntime-gpu并在 FaceAnalysis 里傳 providers[CUDAExecutionProvider]。模型下載失敗或版本過舊原因0.3.3 之后 FaceAnalysis 初始化時才自動下載模型包網(wǎng)絡(luò)不穩(wěn)就卡在啟動。解法手動下載 buffalo_l 包解壓到 ~/.insightface/models/ 再運行。大身份數(shù)訓(xùn)練直接 OOM原因全量 softmax 要把所有身份的類別中心放進顯存。解法配置文件里開啟 fp16 并把 sample_rate 調(diào)成 PartialFC 模式。誤把公開模型用于商用原因公開預(yù)訓(xùn)練模型僅限非商業(yè)研究用途商用需單獨授權(quán)。解法商用前查看倉庫 README 的許可說明并聯(lián)系官方。訓(xùn)練數(shù)據(jù)格式不對原因訓(xùn)練腳本讀 MXNet .rec 格式直接喂圖片目錄會報錯。解法先用 recognition 目錄下的 rec_builder 工具把數(shù)據(jù)打包成 .rec。學(xué)習(xí)路徑與資源 想最快出結(jié)果讀 python-package/README.md模型包對照表buffalo_l、antelopev2 等和自動下載說明都在這里。想訓(xùn)練自己的模型看 recognition/arcface_torch/README.md訓(xùn)練命令、數(shù)據(jù)集準(zhǔn)備和 ONNX 轉(zhuǎn)換入口都有。想部署服務(wù)按 server/docs/user-guide.md 走首跑流程接口細節(jié)查 server/docs/api.md。想做檢測方向從 detection/scrfd/README.md 入手含 NAS 搜索和 WIDER FACE 評測腳本。InsightFace 把拿模型、跑推理、訓(xùn)新模型、上服務(wù)整條鏈路壓進一個倉庫省去了在多個項目間拼湊的功夫。下一步建議先跑通 examples 里的三條命令再照著場景三把 1:N 搜索服務(wù)在自己機器上搭起來。【免費下載鏈接】insightfaceState-of-the-art 2D and 3D Face Analysis Project項目地址: https://gitcode.com/GitHub_Trending/in/insightface創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考