逛了逛騰訊的github,確實開源了不少好東西,這不就覺得FaceDetection-DSFD看起來檢測人臉很好用
專案地址是https://github.com/Tencent/FaceDetection-DSFD
年代較為久遠,最近更新也是在15個月之前了,框架還是Torch1.0
但是年代久遠不意味著它不滿足我們的需求,沒有最好的模型,只有最佳的解決方案,
然后嘗試了一番發現它跑不起來,,,
代碼雖然寫的很清楚,但是各種小bug,語焉不詳的配置項,各種包的版本兼容問題很畝訓
issue一查大家都是,這不好心人就出現了:
https://github.com/vlad3996/FaceDetection-DSFD
首先我們沒有那么大的資料集支撐我們從新訓練,就算重新訓練了精度也并不一定比預訓練權重的更好,就算比預訓練的更好也不一定比他的泛化能力更強
其次里面很多代碼都是為訓練用了,推理很多都用不到
這個老哥就把沒用的玩意都干掉了,留下的精簡了一下
import cv2
import torch
from face_ssd_infer import SSD
from utils import vis_detections
device = torch.device("cpu")
conf_thresh = 0.3
target_size = (800, 800)
net = SSD("test")
net.load_state_dict(torch.load('weights/WIDERFace_DSFD_RES152.pth'))
net.to(device).eval();
img_path = './imgs/11_Meeting_Meeting_11_Meeting_Meeting_11_304.jpg'
img = cv2.imread(img_path, cv2.IMREAD_COLOR)
detections = net.detect_on_image(img, target_size, device, is_pad=False, keep_thresh=conf_thresh)
vis_detections(img, detections, conf_thresh, show_text=False)
沒有什么比一個簡短的demo更香的了,
按照騰訊版本的環境搭建就可以了,torch1.0.0+torchvision0.2.1其他的opencv、matplotlib、scipy用pip安裝一下就OK了 環境相當友好
實測demo中推理程序用時0.21秒,issue里面騰訊自己也說了該專案重點是高精度,如果想要速度還提供了一個3M的輕量級權重,效果怎么樣我沒試,

這個太簡單了 整個比較難的

這個角度比較極限,兩個軸都發生旋轉,DSFD也能很好的識別(重寫了畫框函式,自帶的感覺看著怪怪的)
再難一點,白色方塊是我加的~

不得不說DSFD真香~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289954.html
標籤:其他
