Joint Cascade Face Detection and Alignment(JDA)文檔

地址:https://github.com/luoyetx/JDA

一、算法流程圖:

訓練過程:

檢測過程:

二、類圖:

從上圖可以看出整個系統主要分爲兩大模塊,數據存儲模塊與CART模塊,兩個模塊集中於JDA分類器上,整個系統只實例化一個JDA分類器,存儲於Config中。

三、細節實現:

  • 訓練分爲5個stage,每個stage訓練一個cart森林,這裏採用的是Real Adaboost算法:
    待補充…………
  • 在每一輪訓練中,會訓練K個cart樹,訓練每一個cart樹前開始都會做hard negative mining補充負例,採用的方法如下:
    在所有的負例圖片中,從第一張開始,滑窗圖片上的每個區域,窗口大小固定,與原始人臉圖片大小一樣,對每一個區域做旋轉和反轉變換(共八種),然後用該區域通過當前的檢測器,如果被檢測爲負例則丟棄,如果檢測爲正例,則加入訓練集,直至數量達標爲止,當訓練未結束而負例數據已經用完時,訓練會被迫中止。
  • 每一棵cart樹訓練開始前還會對正例和負例數據做一次排序,根據score由大到小排列,採用的排序算法是快排,注意,這裏會大量用到增加內存負載的swap操作。
  • 做完hard negative mining和排序後,會計算所有數據得分的density_graph:
    這個函數並沒有實際意義,主要用來輔助理解,引用作者的話
    add a function draw_density_graph to view the density distribution of scores
    + means density of positive scores
    x means density of negative scores
    * means at point both positive and negative have the same density”
    其輸出的是得分的分佈情況,橫軸表示的是閾值區間,縱軸縱軸表示的是某閾值區間下的樣本數量佔該類別樣本數量的比例,輸出如下所示:


    從圖上可以看出,正例樣本分佈越靠右,負例樣本越靠左,其分類效果越好。
    下圖是經過一段時間訓練後的樣本分佈,可以看出其差別:
  • 所有數據權重的計算公式:


    其中fi是其score,yi是其label,取值{1(正例),-1(負例)},計算完之後會將所有正例和負例分別歸一化爲1。
  • 關於特徵的提取:
    每一層的特徵維度可以設置爲不同大小,默認爲1000。
    訓練數據會以原尺寸,二分之一尺寸和四分之一尺寸分別存儲,這麼做的目的是因爲提取特徵時,會隨機的在三種尺度中選擇一種尺度的圖片,論文原句如下:
    “During split test for an internal node, we extend the shape indexed pixel difference features in [4] to multi-scale. Specifically, we generate three scales of images by down sampling the input image to half and one fourth. To generate a feature, we randomly choose an image scale, pick up two random facial points in the current shape, generate two random offsets with respect to the points and take the difference of the two offsetted pixels as the feature. We found the multi-scale pixel difference feature is more robust to noises and necessary for detection learning. ”

    接下來會隨機選擇兩個特徵點,也就是人臉關鍵點作爲提取基點,然後以這兩個基點爲中心,在給定的半徑內(每一層的半徑不同,越往後半徑越小)各隨機定位一個像素點,然後計算這兩個像素點的差值作爲特徵。

    容易計算,假如特徵維度爲1000,數據數量爲10000,那麼一個cart樹上每個結點的特徵數量爲10000*1000。

  • 關於樹上每個結點是用作迴歸還是分類,以概率p隨機選擇,概率p隨層熟增大而減小。p越大,分類概率越大。
  • cart劃分採用gini度量指標,迴歸以最小像素差指標。
發佈了46 篇原創文章 · 獲贊 19 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章