MTCNN算法是多任務級聯卷積神經網絡,用于人臉檢測和人臉對齊,它是一種級聯結構,類似Adaboost算法,主要包括三個子網絡:一個是P-Net網絡,主要獲得人臉區域的候選窗口和邊界框的回歸向量,并用該回歸向量對候選窗口進行校準,然后通過非極大值抑制來合并高度重疊的候選框;第二個子網絡是R-Net網絡,也是只做檢測和邊界框回歸兩個任務;最后一個子網絡是O-Net網絡,對前面的候選框做進一步的篩選,回歸邊界框,同時在每個邊界框上計算特征點的位置。而且,MTCNN一種多尺度網絡結構,在輸入圖像數據前,先構建圖像金字塔,獲得不同尺度的圖像再送入P-Net網絡。
SSD算法是one-stage、端到端的目標檢測算法,主要思路是在圖片的不同位置進行密集采樣,采用不同的尺度比和長寬比,利用卷積神經網絡結構提取特征進行分類和回歸,其優勢是速度快。SSD提取不同尺度的特征圖來做檢測,前面的大尺度特征圖用于檢測小目標,后面的小尺度特征圖用于檢測大目標,采用VGG16作為基礎模型。
yolo目標檢測算法的基本思想是利用CNN對輸入圖像提取特征,將輸入圖像劃分成S×S個單元格,如果某個物體的中心位置落入其中一個單元格,那么由該單元格負責檢測這個目標。YOLOV3在之前yolo結構的基礎上,采用多個尺度融合的方式做預測,加強對小目標檢測的精確度。基礎分類網絡類似ResNet殘差網絡,分類任務用Logistic取代了softmax,并利用9種尺度的先驗框,可以很好的檢測大目標和小目標。
MTCNN是專門用于檢測人臉的目標檢測算法,而yolo和SSD算法是通用的目標檢測算法。通用的目標檢測算法還有另一種類型,就是twostage的網絡模型,先利用一些算法產生候選區域,然后再對候選區域進行分類和回歸,這類典型的算法有R-CNN算法、FastR-CNN算法以及FasterR-CNN算法、FPN算法等。這些算法我也是正在學習,感興趣的加關注,一起交流討論!