1. 程式人生 > >行人檢測論文筆記:Robust Real-Time Face Detection

行人檢測論文筆記:Robust Real-Time Face Detection

知識點

  • 傅立葉變換的一個推論:

一個時域下的複雜訊號函式可以分解成多個簡單訊號函式的和,然後對各個子訊號函式做傅立葉變換並再次求和,就求出了原訊號的傅立葉變換。

  • 卷積定理(Convolution Theorem):訊號f和訊號g的卷積的傅立葉變換,等於f、g各自的傅立葉變換的積


    整個過程的核心就是“(反轉),移動,乘積,求和”

  • 二維卷積

    • 數學定義

    二維卷積在影象處理中會經常遇到,影象處理中用到的大多是二維卷積的離散形式:

    • 影象處理中的二維卷積,二維卷積就是一維卷積的擴充套件,原理差不多。核心還是(反轉),移動,乘積,求和。這裡二維的反轉就是將卷積核沿反對角線翻轉,比如:

      之後,卷積核在二維平面上平移,並且卷積核的每個元素與被卷積影象對應位置相乘,再求和。通過卷積核的不斷移動,我們就有了一個新的影象, 這個影象完全由卷積核在各個位置時的乘積求和的結果組成。
  • 巴拿赫空間:更精確地說,巴拿赫空間是一個具有範數並對此範數完備的向量空間。

  • 許多在數學分析中學到的無限維函式空間都是巴拿赫空間。

  • 巴拿赫空間有兩種常見的型別:“實巴拿赫空間”及“復巴拿赫空間”,分別是指將巴拿赫空間的向量空間定義於由實數或複數組成的域之上。

  • Overcomplete:

    • 對於Banach space X中的一個子集,如果X中的每一個元素都可以利用子集中的元素在範數內進行有限線性組合來良好近似,則該系統X是完備Complete的。
    • 該完備系統是過完備(Overcomplete)的,如果從子集中移去一個元素,該系統依舊是完備的,則該系統稱為過完備的。
    • 在不同的研究中,比如訊號處理和功能近似,過完備可以幫助研究人員達到一個更穩定、更健壯,或者相比於使用基向量更緊湊的分解。
    • 如果 # (basis vector基向量)>輸入的維度,則我們有一個overcomplete representation.
  • ROC曲線:在訊號檢測理論中,接收者操作特徵曲線(receiver operating characteristic curve,或者叫ROC曲線)是一種座標圖式的分析工具,用於

    • (1) 選擇最佳的訊號偵測模型、捨棄次佳的模型。
    • (2) 在同一模型中設定最佳閾值。
    • 從 (0, 0) 到 (1,1) 的對角線將ROC空間劃分為左上/右下兩個區域,在這條線的 以上的點 代表了一個 的分類結果(勝過隨機分類),而在這條線 以下的點 代表了 的分類結果(劣於隨機分類)。
    • 完美的預測是一個在左上角的點.
    • 曲線下面積(AUC):ROC曲線下方的面積,若隨機抽取一個陽性樣本和一個陰性樣本,分類器正確判斷陽性樣本的值高於陰性樣本之機率=AUC。簡單說:AUC值越大的分類器,正確率越高。

Abstract

  • 介紹一個臉部檢測框架。
  • 三個貢獻:
  • 引入新影象表示——稱為“積分影象”,其允許我們的檢測器非常快速地計算所使用的特徵。
  • 提出一個利用AdaBost學習演算法構建的簡單有效的分類器,來從極大潛在特徵集中選出很少的關鍵視覺特徵。
  • 在級聯中組合分類器,從而快速丟棄影象的背景區域,同時在有可能的面部區域上花費更多的計算。

Introduction

  • Haar Basis 函式:

  • Integral image: 類似於計算機圖形學中利用求和區域表來進行紋理對映。

  • Haar-like features:就是mount兩個或多個區域的畫素值之和的差值。

  • AdaBoost:自適應增強, 具體說來,整個Adaboost 迭代演算法就3步:
  • 初始化訓練資料的權值分佈。如果有N個樣本,則每一個訓練樣本最開始時都被賦予相同的權值:1/N。
  • 訓練弱分類器。具體訓練過程中,如果某個樣本點已經被準確地分類,那麼在構造下一個訓練集中,它的權值就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權值就得到提高。然後,權值更新過的樣本集被用於訓練下一個分類器,整個訓練過程如此迭代地進行下去。
  • 將各個訓練得到的弱分類器組合成強分類器。各個弱分類器的訓練過程結束後,加大分類誤差率小的弱分類器的權重,使其在最終的分類函式中起著較大的決定作用,而降低分類誤差率大的弱分類器的權重,使其在最終的分類函式中起著較小的決定作用。換言之,誤差率低的弱分類器在最終分類器中佔的權重較大,否則較小。
  • 級聯檢測過程的結構基本上是簡併決策樹的結構

Features

  • 基於特徵的系統操作肯定比一個基於畫素的系統更更快
  • (Two-rectangle feature)兩矩形特徵的值是兩個矩形區域內的畫素之和的差
  • (Three-rectangle feature)三矩形特徵計算從中心矩形中的和減去的兩個外部矩形的和。
  • (Four-rectangle feature)四矩形特徵計算矩形對角線對之間的差異。

矩陣特徵=從灰色矩形中的畫素的和中減去位於白色矩形內的畫素的和。

Integral Image

  • 矩陣特徵可以通過影象的中間表示來快速計算,從而成為Integral Image.

  • 積分圖的每一點(x, y)的值是原圖中對應位置的左上角區域的所有值得和。

  • 積分圖每一點的(x, y)值是:

  • 位置x,y處的積分影象包含x,y(包括端點)上方和左側的畫素的和:

ii(x, y) is the integral image

i(x, y) is the original image

s(x,y)是累積行和

s(x, −1) = 0, ii(−1, y) = 0)

積分圖可以只遍歷一次影象即可有效的計算出來

  • 使用積分影象,可以在四個陣列參考中計算任何矩形和。

  • Two-rectangle feature:需要6個陣列參考

  • Three-rectangle feature:需要8個陣列參考

  • Four-rectangle feature:需要9個陣列參考

  • 線上性運算(例如f.g)的情況下,如果其逆被應用於結果,則任何可逆線性運算元可以應用於f或g。

  • 例如在卷積的情況下,如果導數運算子被應用於影象和卷積核,則結果必須被雙重積分.

  • 如果f和g的導數稀疏(或可以這樣做),卷積可以顯著加速。

  • 類似的一個認識是:如果其逆被應用於g,則一個可逆線性運算元可以應用於f。

  • 在該框架中觀察,矩形和的計算可以表示為點積i·r,其中i是影象,r是box car影象(在感興趣的矩形內的值為1,外面是0)。 此操作可以重寫:

積分影象實際上是影象的二重積分(首先沿行,然後沿列)。

  • 矩形的二階導數(第一行在行中,然後在列中)在矩形的角處產生四個delta函式。 第二點積的評估通過四個陣列訪問來完成。

Feature Discussion

  • 與可操縱濾波器(Steerable filters)等替代方案相比,矩形特性有點原始。
  • 可控濾波器對邊界的詳細分析,影象壓縮和紋理分析的非常有用。
  • 由於正交性不是這個特徵集的中心,我們選擇生成一個非常大而且各種各樣的矩形特徵集。
  • 從經驗上看,似乎矩形特徵集提供了豐富的影象表示,能支援有效的學習。
  • 為了利用積分影象技術的計算有事,考慮用更常規的方法去計算影象金字塔。
  • 像大多數面部檢測系統一樣,我們的檢測器在許多尺度掃描輸入; 從以尺寸為24×24畫素檢測面部的基本刻度開始,在12個刻度以大於上一個的1.25倍的因子掃描384×288畫素的影象。

Learning Classification Functions

  • 給定檢測器的基本解析度是24×24,矩形特徵的窮盡集是相當大的,160000.
  • 我們的假設是,由實驗證明,非常少數的矩形特徵可以組合形成一個有效的分類器。 主要的挑戰是找到這些功能。
  • Adaboost:將多個弱分類器組合成一個強分類器。(一個簡單學習演算法叫做weak learner)。
  • 傳統的的AdaBoost過程可以容易地解釋為貪心特徵選擇過程。
  • 一個 挑戰 是將大的權重與每個良好的分類函式相關聯,並將較小的權重與較差的函式相關聯。
  • AdaBoost是一個用於搜尋少數具有顯著品種的良好“特徵”的有效程式。
  • 將一個weak learn限制到分類函式幾何中,每一個函式都只依賴於一個單一的特徵。
  • 若學習宣發選擇單一的能夠最好分開正和負樣本的矩形特徵。
  • 對於每一個特徵,weak learner決定最優分類函式閾值,從而可以使得最少數目的樣本被錯分。
  • 一個弱分類器h(x, f, p, θ)因此包含一個特徵f,一個閾值θ,一個顯示不等式方向的極性p:

這裡x是一個圖片24*24畫素的子視窗。

  • 我們使用的弱分類器(閾值單一特徵)可以被視為單節點決策樹。
  • Boosting 演算法 :T是利用每個單個特徵構造的假設,最終假設是T個假設的加權線性組合,其中權重與訓練誤差成反比。

    1. 給定樣本圖片(x1, y1), (x2, y2), …, (xn, yn)。其中yi=0, 1分別為負樣本和正樣本。
    2. 初始化權值w1, i=1/(2m), 1/(2l)分別當yi=0, 1。其中m和l分別是負樣本和正樣本的數量。
    3. For t=1, …, T:

    4. 歸一化權重,

    5. 根據加權錯誤選擇最佳弱分類器:

    6. 定義 ht(x) = h(x, ft, pt,θt) 其中ft, pt, 和 θt 是εt的最小值.

    7. 更新權值:

      其中ei=0當樣例xi被正確的分類,否則ei=1,並且

    8. 最後的強分類器是:


    其中

Learning Discussion

  • 弱分類器選擇演算法過程如下:

    • 對於每個特徵,根據特徵值對樣例進行排序。
    • 該特徵的AdaBoost最佳閾值可以在該排序列表上的單次通過中計算。
    • 對於排序列表中的每個元素,四個和被維護和評估:
    • 正例項權重T+的總和。
    • 負例項權重T-的總和。
    • 當前示例S+之下的正權重的和。
    • 當前示例S-之下的負權重的和。
  • 在排序一個劃分當前和上一示例之間的範圍的閾值的錯誤是:

Learning Results

  • 在現實應用中,假正例率必須接近1/1000000。
  • 所選擇的 第一特徵 似乎集中於屬性即眼睛的區域通常比鼻子和臉頰的區域更暗。
  • 所選擇的 第二特徵 依賴於眼睛比鼻樑更暗的特性。
  • 提高效能最直接技術是新增更多的特徵,但這樣直接導致計算時間的增加。
  • Receiver operating characteristic (ROC)曲線:

The Attentional Cascade

  • 本節描述了用於構造級聯的分類器的演算法,其實現了提高的檢測效能,同時從根本上減少了計算時間。
  • 閾值越低,檢測率越高,假正例率越高。
  • 從雙特徵強分類器開始,可以通過 調整強分類器閾值 以最小化假陰性來獲得有效的面部濾波器。
  • 可以調整雙特徵分類器以50%的假陽性率來檢測100%的面部。
  • 整體的檢測過程形式是簡併決策樹的形式,我們稱之為“級聯”。
  • 在任何點上的否定結果立即導致對該子視窗的拒絕。
  • 更深的分類器面臨的更困難的例子,將整個ROC曲線向下推。 在給定的檢測率下,較深的分類器具有相應較高的假陽性率。

Training a Cascade of Classifiers

  • Given a trained cascade of classifiers, the false positive rate of the cascade is:

  • The detection rate is:

  • The expected number of features which are evaluated is:

  • 用於訓練後續層的負樣例集合是通過執行檢測器收集通過在不包含任何面部例項的一組影象上而找到的所有錯誤檢測來獲得。

  • 構建一個練級檢測器的訓練演算法:

Simple Experiment

Detector Cascade Discussion

  • 將檢測器訓練為分類器序列的隱藏好處是:最終檢測器看到的有效數目的負樣例數目可能非常大。
  • 在實踐中,由於我們的檢測器的形式和它使用的特性是非常高效的,所以在每個尺度和位置評估我們的檢測器的 攤銷成本 比在整個影象中找到並分組邊緣更快。

Results

Training Dataset

  • 事實上,包含在較大子視窗中的附加資訊可以用於在檢測級聯中較早地拒絕non-face。

Structure of the Detector Cascade

  • 最終的檢測器是38層分級器,包括總共6060個特徵。
  • 級聯中的第一個分類器是使用兩個特徵構造的,在檢測100%的面部時可以拒絕50%的non-faces.
  • 下一個分類器具有十個特徵,並且在檢測幾乎100%的面部時拒絕80%的非面部。
  • 接下來的兩層是25個特徵分類器,其後是三個50特徵分類器,再之後是具有根據表2中的演算法選擇的各種不同數目的特徵的分類器。
  • 新增更多層,直到驗證集上的假陽性率接近零,同時仍保持高的正確檢測率。

Speed of the Final Detector

  • 級聯檢測器的速度直接與每個被掃描的子視窗的特徵數量相關。

Image Processing

  • 用於訓練的所有示例子視窗被 方差歸一 化以使不同照明條件的影響最小化。
  • 可以使用 一對積分影象 來快速計算影象子視窗的方差。
  • 在掃描期間,可以通過對特徵值進行後乘,而不是對畫素進行操作來實現影象歸一化的效果。

相關推薦

行人檢測論文筆記Robust Real-Time Face Detection

知識點 傅立葉變換的一個推論: 一個時域下的複雜訊號函式可以分解成多個簡單訊號函式的和,然後對各個子訊號函式做傅立葉變換並再次求和,就求出了原訊號的傅立葉變換。 卷積定理(Convolution Theorem):訊號f和訊號g的卷積的傅立葉變換

經典計算機視覺論文筆記——《Robust Real-Time Face Detection

        第一次讀這篇傳奇之作大概是九年前了,也就是2007年,而那時距論文正式發表(2004年)也已經有四年之久了。現在讀來,一些想法,在深度學習大行其道的今天仍然具有借鑑意義,讓人敬佩不已。         VJ人臉檢測器應該是歷史上第一個成功商業應用的實時人臉檢

魯棒的實時人臉檢測Robust Real-Time Face Detection

2.2 特徵討論        矩形特徵較其替代品是有些原始的,如可控濾波器(Freeman和 Adelson,1991年,Greenspan 等人,1994年)。可控波濾器,及其相關濾波器,對於邊界的詳細分析,影象壓縮,紋理分析是很好的。然而矩形特徵對邊緣,條狀和其他簡單的影象結構的表示也是敏感的,不過相當

10年後再看Robust Real-Time Face Detection(一)

這篇論文是人臉檢測上的經典之作。 作者是PAUL VIOLA。相較於其他的人臉檢測演算法, 該篇論文中提到的演算法的主要有點就是在保證較高的人臉檢測率的前提下, 實現了超高的檢測速度。 真正做到了實時性(Real Time), 當之無愧。 可以說之前的各種人臉檢測演算法均無

10年後再看Robust Real-Time Face Detection(二) 之學習分類函式

給定我們一個特徵集合, 一個訓練樣本集(也就是一幅幅樣本影象。 影象可能是有人臉的影象(稱為positive images), 影象也可能不含人臉的影象(negative images))。 那麼我們的任務就是採用機器學習的演算法學習一個分類函式。一旦學習到了這個函式, 我

10年後再看Robust Real-Time Face Detection(二) 之積分圖

   我們知道, 如果採用Naive 的方法去計算矩形特徵值是相當的麻煩和不現實的。 所以論文中作者引用了積分圖的概念, 那麼這樣我們只需要常數的時間內就可以計算任何一個矩形區域覆蓋的畫素灰度值之和。 那麼什麼是積分圖(Integral Image)呢?    積分, 故名

目標檢測論文閱讀Relation Networks for Object Detection

Relation Networks for Object Detection 論文連結:https://arxiv.org/abs/1711.11575 程式碼連結:暫無,尚不清楚是否會公開 這個是CVPR 2018的文章,雖然並沒有什麼巧妙的設

faced: CPU Real Time face detection using Deep Learning

What is the problem?There are many scenarios where a single class object detection is needed. This means that we want to detect the location of all objects

CPU Real-time Face Detection and Alignment-68 using MTCNN

mtcnn的landmark採用了5點迴歸,博主嘗試了68點迴歸,發現效果不錯! 主要特點:同時完成人臉檢測和特徵點回歸,演算法速度實時! 開源地址:https://github.com/samylee/mtcnn_landmark68(歡迎star和fork)   1

論文筆記目標追蹤-CVPR2014-Adaptive Color Attributes for Real-time Visual Tracking

exploit orm dom ons tail red 最好 早期 形式化 基於自適應顏色屬性的目標追蹤 Adaptive Color Attributes for Real-Time Visual Tracking 基於自適應顏色屬性的實時視覺追蹤 3月講的第一

論文閱讀筆記二十六Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

論文源址:https://arxiv.org/abs/1506.01497 tensorflow程式碼:https://github.com/endernewton/tf-faster-rcnn 摘要       目標檢測依賴於區域proposals演算法對目標的位置進

論文筆記Perceptual Losses for Real-Time Style Transfer and Super-Resolution[doing]

1.transformation: image to image  2.perceptual losses:      psnr是per-pixel的loss,值高未必代表圖片質量好,廣泛應用只是因為

論文閱讀筆記(六)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

采樣 分享 最終 產生 pre 運算 減少 att 我們 作者:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian SunSPPnet、Fast R-CNN等目標檢測算法已經大幅降低了目標檢測網絡的運行時間。可是盡管如此,仍然

《You Only Look Once: Unified, Real-Time Object Detection論文筆記

1. 論文思想 YOLO(YOLO-v1)是最近幾年提出的目標檢測模型,它不同於傳統的目標檢測模型,將檢測問題轉換到一個迴歸問題,以空間分隔的邊界框和相關的類概率進行目標檢測。在一次前向運算中,一個單一的神經網路直接從完整的影象中預測邊界框和類概率。由於整個檢測管道是一個單一的網路,

Train C4: Real-time pedestrian detection models——C4行人檢測演算法訓練過程

1.樣本的準備         樣本可以使用之前訓練的模型,通過OpenCV的imwrite截圖儲存然後再人工篩選,這個C4-Real-time-pedestrian-detection工程裡面我有實現。也可以自己寫一個程式,手動截圖。將正樣本都裁剪成只包

C4: Real-time pedestrian detection——C4實時行人檢測演算法

http://cs.nju.edu.cn/wujx/projects/C4/C4.htm Jianxin Wu實現的快速行人檢測方法。 Real-Time Human Detection Using Contour Cues: http://c2inet.sce.ntu.edu

論文筆記目標檢測演算法(R-CNN,Fast R-CNN,Faster R-CNN,YOLOv1-v3)

R-CNN(Region-based CNN) motivation:之前的視覺任務大多數考慮使用SIFT和HOG特徵,而近年來CNN和ImageNet的出現使得影象分類問題取得重大突破,那麼這方面的成功能否遷移到PASCAL VOC的目標檢測任務上呢?基於這個問題,論文提出了R-CNN。 基本步驟:如下圖

論文閱讀You Only Look Once: Unified, Real-Time Object Detection

Preface 注:這篇今年 CVPR 2016 年的檢測文章 YOLO,我之前寫過這篇文章的解讀。但因為不小心在 Markdown 編輯器中編輯時刪除了。幸好同組的夥伴轉載了我的,我就直

論文筆記】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

寫在前面:      我看的paper大多為Computer Vision、Deep Learning相關的paper,現在基本也處於入門階段,一些理解可能不太正確。說到底,小女子才疏學淺,如果有錯

【目標檢測】[論文閱讀][yolo] You Only Look Once: Unified, Real-Time Object Detection

論文名稱《You Only Look Once: Unified, Real-Time Object Detection》 摘要 1、之前的目標檢測方法採用目標分類思想解決檢測問題,本文提出一個基於迴歸的框架,用於目標的定位及識別。 2、一個網路,一次預