
InsightFace 人臉分析三步跑通本地人臉檢測與 1:1 比對完整指南【免費下載鏈接】insightfaceState-of-the-art 2D and 3D Face Analysis Project項目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是一個開源的 2D/3D 人臉分析工具箱人臉檢測、人臉識別、關(guān)鍵點對齊、屬性估計全部可在本地完成數(shù)據(jù)不離開你的機器。裝上 Python 包和預訓練模型包后幾分鐘內(nèi)就能跑通一個離線的人臉比對 Demo——這篇指南帶你完成環(huán)境安裝、最小示例、模型包選型和常見坑的排查。一張圖看懂 InsightFace 的能力邊界InsightFace 把檢測 → 對齊 → 識別 → 屬性整條鏈路打包成了可直接安裝的 Python 包一次調(diào)用即可跑完全部環(huán)節(jié)。下圖展示了它覆蓋的典型能力人臉框與關(guān)鍵點標注、性別年齡屬性、閉眼/活體狀態(tài)判斷、多人合影識別與口罩場景檢測。默認能力包是buffalo_l約 326MB內(nèi)含 SCRFD-10GF 檢測模型、ResNet50WebFace600K 識別模型、2D 106 點 3D 68 點關(guān)鍵點模型和性別年齡屬性模型首次運行會自動下載到~/.insightface/models/。如果你不需要對齊和屬性最小的buffalo_sc只有 16MB。環(huán)境要求與安裝兩條命令裝好依賴推理只需 onnxruntime不需要裝 PyTorch 或 MXNet那是倉庫內(nèi)訓練模塊的需求master 分支基于 PyTorch 1.6 或 MXNet 1.6~1.8。CPU 推理裝onnxruntime即可想用 GPU 需自行安裝onnxruntime-gpu。pip install -U insightface pip install onnxruntime裝好后用下面這段最小腳本就能完成第一次人臉分析——圖片用的是倉庫自帶的示例圖t1.jpg里面有 6 個人import cv2 from insightface.app import FaceAnalysis app FaceAnalysis(namebuffalo_l) app.prepare(ctx_id-1) # -1 表示 CPU img cv2.imread(python-package/insightface/data/images/t1.jpg) faces app.get(img)跑通后faces是一個 Face 對象列表圖里有幾張臉就有幾個對象。每個對象里裝著四樣東西bbox人臉框左上角 x/y 右下角 x/y、kps雙眼、鼻尖、雙嘴角共 5 個關(guān)鍵點坐標、det_score檢測置信度、embedding512 維識別向量可以理解為這張臉的數(shù)字指紋此外還有g(shù)ender/age屬性字段。模型包下載位置在~/.insightface/models/第二次運行就不再重復下載。核心功能拆解人臉檢測框出每一張臉和它的 5 個關(guān)鍵點檢測就是app.get(img)這一步內(nèi)部由 SCRFD 模型完成v1.0 起prepare()默認用 128×128 和 640×640 兩檔尺寸做檢測、再統(tǒng)一 NMS 合并小臉不容易漏。上面示例圖t1.jpg會被檢出 6 個人倉庫的人臉交換示例 examples/in_swapper/ 正是用它并斷言len(faces)6。如果不想手動處理坐標直接調(diào)app.draw_on(img, faces)就能在原圖上畫出紅色人臉框、關(guān)鍵點圓點并在框旁標注性別年齡文字如M,23配合cv2.imwrite即可存盤。1:1 比對用 embedding 余弦相似度判斷是否同一人判斷兩張照片是不是同一個人只需用各自face.embedding算余弦相似度再和閾值比較。官方示例 examples/face_recognition/insightface_app.py 默認閾值取 0.65并明確提醒要按你的業(yè)務場景調(diào)整import numpy as np emb1, emb2 faces1[0].embedding, faces2[0].embedding sim float(emb1 emb2 / (np.linalg.norm(emb1) * np.linalg.norm(emb2))) print(同一人 if sim 0.65 else 不是同一人)輸出的sim取值在 -1 到 1 之間越接近 1 越像同一人。一圖多人時注意自己選定要比的那張臉官方示例取檢出的第一張否則會拿錯人。性能數(shù)據(jù)與模型包怎么選下表是倉庫公布的 SCRFD 檢測模型在 WIDERFace 上的 mAPVGA 分辨率、單尺度測試出處為 detection/scrfd/README.md模型Easy (mAP)Medium (mAP)Hard (mAP)參數(shù)量 (M)推理耗時 (ms)SCRFD-0.5GF90.5788.1268.510.573.6SCRFD-2.5GF93.7892.1677.870.674.2SCRFD-10GF95.1693.8783.053.864.9SCRFD-34GF96.0694.9285.299.8011.7識別側(cè)各模型包的精度出處為 python-package/README.md模型包體積MR-ALLLFWCFP-FPAgeDB-30IJB-C(E4)buffalo_l默認326MB91.2599.8399.3398.2397.25buffalo_s159MB71.8799.7098.0096.5895.02選型一句話追求精度用默認的buffalo_l端側(cè)或低配設(shè)備選buffalo_s只想要檢測和識別、不要對齊和屬性就選最小的buffalo_sc16MB精度與buffalo_s相同antelopev2407MB用 ResNet100Glint360K是倉庫中識別配置最重的一檔。5 條避坑指南 首次運行報模型缺失或卡在下載→ 原因是 pip 安裝的包里不含預訓練模型自動下載需要網(wǎng)絡(luò)且首次較慢 → 保持網(wǎng)絡(luò)通暢等它下載完緩存在~/.insightface/models/離線環(huán)境則手動下載 zip 解壓到該目錄后再運行。遠處小臉漏檢→ 原因是把prepare()改成了固定的小det_size小臉在縮圖上被壓沒了 → 保持默認的 Auto 檢測128×128 640×640 雙尺度 統(tǒng)一 NMS只在追求極致速度時才改固定尺寸。GPU 沒生效、CPU 占用 100%→ 原因有兩個只裝了 CPU 版onnxruntime或沒指定 CUDA 執(zhí)行器 → 安裝onnxruntime-gpu并在FaceAnalysis(providers[CUDAExecutionProvider, CPUExecutionProvider])中聲明后端、ctx_id0指定顯卡。比對結(jié)果時準時不準→ 原因是拿 0.65 這個示例默認值當萬能閾值 → 調(diào)低會增加誤認、調(diào)高會增加漏認建議收集你業(yè)務里的真實壞例該同判不同、該不同判同來回調(diào)閾值。?? 商用時發(fā)現(xiàn)授權(quán)邊界問題→ 原因是代碼是 MIT 協(xié)議、學術(shù)和商用都不受限但附帶的預訓練模型buffalo 系列等僅限非商業(yè)研究使用 → 商用含inswapper換臉系列、buffalo_l等識別模型包需按 README.md 中的說明聯(lián)系官方獲取授權(quán)不要直接搬進商業(yè)產(chǎn)品。延伸閱讀 Python 庫安裝、模型包列表、調(diào)用自定義 ONNX 模型python-package/README.md人臉檢測訓練與 WIDERFace 評測SCRFDdetection/scrfd/人臉識別訓練ArcFace 的 PyTorch/MXNet/Paddle 多實現(xiàn)、Partial FCrecognition/模型倉庫與精度榜單model_zoo/README.md1:1 比對示例腳本examples/face_recognition/人臉交換示例inswapper需 v0.7examples/in_swapper/自建人臉搜索服務容器化 Web UI REST APIserver/README.md桌面 GUIInsightFace Evaluation Studiopip install insightface[gui]python-package/docs/gui.md3D 人臉重建、視線估計等進階方向reconstruction/寫在最后整個最小閉環(huán)其實只有三步pip install裝好庫和 onnxruntimeFaceAnalysis().prepare()拉起模型app.get(img)讀回每張臉的 bbox、關(guān)鍵點和 embedding——本地離線的人臉檢測與比對就通了。之后可以順著兩個方向繼續(xù)深挖想訓練自己的檢測器看 detection/scrfd/ 的訓練與 NAS 搜索流程想做大規(guī)模人臉搜索或 3D 重建則看 server/ 和 reconstruction/ 兩個模塊 ?【免費下載鏈接】insightfaceState-of-the-art 2D and 3D Face Analysis Project項目地址: https://gitcode.com/GitHub_Trending/in/insightface創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考