人臉識別(基於Caffe)


人臉識別(基於Caffe, 來自tyd)

人臉識別(判斷是否為人臉)

LMDB(數據庫, 為Caffe支持的分類數據源)

  • mkdir face_detect
  • cd face_detect
  • mkdir train val
  • mkdir train/{0,1}
  • mkdir val/{0,1}
  • 將人臉數據放到train/1val/1
  • 將非人臉數據放到val/0val/0
  • vim train.txt

0/xxx.jpg 0
1/xxx.jpg 1
  • vim val.txt

1/xxx.jpg 1
0/xxx.jpg 0
  • 拷貝Caffe自帶的腳本根據上面的train.txt和val.txt制作LMDB數據源, 名為face_detect_lmdb.sh
# 修改部分
EXAMPLE=/home/jh/face_detect
DATA=/home/jh/face_detect
TOOLS=caffe安裝目錄/build/tools

TRAIN_DATA_ROOT=/home/jh/face_detect/train/
VAL_DATA_ROOT=/home/jh/face_detect/val/

# 對輸入的數據進行大小的調整, 大小的調整是要根據我們要使用的網絡模型, 比如AlexNet或者VGG(速度慢)為227x227
RESIZE=true
if $RESIZE; then
    RESIZE_HEIGHT=227
    RESIZE_WIDTH=227
else
    RESIZE_HEIGHT=0
    RESIZE_WIDTH=0
fi

# 接着修改GLOG_logtostderr那里的$DATA/train.txt, 這個為那個train.txt, $EXAMPLE/face_train_lmdb, 這個為生成的lmdb數據源的位置
# 下面也一樣, 修改為val.txt, $EXAMPLE/face_val_lmdb, 這個為val的lmdb數據源生成的位置

  • 指定face_detect_lmdb.sh腳本文件, 如果那些face_val_lmdb已經存在則直接報錯, 在執行過程中, 可能會出現Could not open ..., 這個沒有關系, 執行的細節為, 先配置train, 在配置val
  • 因為數據源很大, 大約4W, 我們生成的lmdb文件為好幾個GB, 再提一下, model大概為好幾百MB

模型調優

  • 選擇更深的網絡, 改用VGG-16
  • 調整學習率
  • 圖像增強

訓練AlexNet網絡(忘了, 去網上找AlexNet的結構圖)

  • 對AlexNet進行簡單的修改, 對最后的全連接層從1000改為2
  • 創建train.prototxt文件, 在里面寫神經網絡結構
  • 創建solver.prototxt文件
    • 指定test_iter, 測試多少個batch
    • test_interval: 1000, 迭代1000次進行測試
    • base_lr: 0.001: 基礎學習率
    • max_iter: 10000: 最大迭代次數
    • gamma: 0.1
    • stepsize: 20000
    • display: 1000: 每1000次迭代顯示一次
    • momentum: 0.9
    • weight_decay: 0.0005
    • snapshot: 10000: 每個10000次保存一次model
    • snapshot_prefix: "/path/to/model": 模型保存的目錄
    • solver_mode: CPU: 使用CPU還是GPU

執行模型

  • 創建一個train.sh腳本

/path/to/caffe train --solver=/path/to/solver.prototxt
  • sh train.sh執行
  • 結束會生成一個模型文件(就一個, 就可以直接拿來用了)

網絡訓練速度限制

  • 網絡大小
  • 輸入數據的大小, 圖片大小

人臉檢測

  • Multi-Scale變換

    • 進行多個Scale變換->會導致有多個bbox, 后續需要NMS
    • 保存原始的bboxes, 在后續的時候通過scale factor映射到原始圖形上
  • 滑動窗口

    • 多尺度的Scale變換, 對小人臉(如50x50)進行放大轉為224x224, 對大臉進行縮小; 對原始圖像進行多此縮放, 也就是不斷的乘以scale factor知道到一個臨界值, 變成一個圖像金字塔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM