**:
68個關鍵點的訓練資料集(1.7gb):
194個關鍵點的資料集(需要翻牆):
dlib中examples中的**。
dlib/examples/train_shape_predictor_ex.cpp
// dlib/examples/train_shape_predictor_ex.cpp
#include #include #include using namespace dlib;
using namespace std;
std::vector> get_interocular_distances (
const std::vector>& objects
);int main(int argc, char** ar**)
const std::string faces_directory = ar**[1];
dlib::array> images_train, images_test;
std::vector> faces_train, faces_test;
// 1. 載入訓練集,測試集
// load_image_dataset(images_train, faces_train, faces_directory+"/training_with_face_landmarks.xml");
// load_image_dataset(images_test, faces_test, faces_directory+"/testing_with_face_landmarks.xml");
// 68個點的訓練資料集:
load_image_dataset(images_train, faces_train, faces_directory + "/labels_ibug_300w_train.xml");
load_image_dataset(images_test, faces_test, faces_directory + "/labels_ibug_300w_test.xml");
shape_predictor_trainer trainer;
// 測試中調節了 tree_depth引數:2,4, 5, 10
// 測試機器為8核,set_num_threads使用8,訓練時cpu:70%
trainer.set_oversampling_amount(300);
trainer.set_nu(0.05);
trainer.set_tree_depth(5);
trainer.set_num_threads(8);
trainer.be_verbose();
// 訓練
shape_predictor sp = trainer.train(images_train, faces_train);
cout << "mean training error: "<<
test_shape_predictor(sp, images_train, faces_train, get_interocular_distances(faces_train)) << endl;
cout << "mean testing error: "<<
test_shape_predictor(sp, images_test, faces_test, get_interocular_distances(faces_test)) << endl;
// 儲存模型
serialize("sp.dat") << sp;
std::string str;
std::cin >> str;
}catch (exception& e)
}double interocular_distance (
const full_object_detection& det
) l /= cnt;
cnt = 0;
for (unsigned long i = 42; i <= 47; ++i)
r /= cnt;
return length(l-r);
}std::vector> get_interocular_distances (
const std::vector>& objects
) }
return temp;
}
194關鍵點訓練情況:
tree_depth=2,num_threads=2,
release版本訓練時間 5+小時
debug版本訓練時間 148+小時(訓練一定要使用release版本)
tree_depth=2,sp.dat=44.6mb,占用記憶體最大11gb
tree_depth=10,sp.data=11gb
68關鍵點訓練結果:
tree_depth=2,num_threads=8,cpu:70% 記憶體:20+gb 6+小時 sp.data=15.8mb
tree_depth=4,num_threads=8,cpu:70% 記憶體:20+gb 12+小時 sp.data=63.3mb
tree_depth=5,num_threads=8,cpu:70% 記憶體:20+gb 16+小時 sp.data=126mb
tree_depth=5,num_threads=8
mean training error: 0.0479476
mean testing error: 0.0586204
使用dlib中examples中的**測試。
dlib/examples/face_landmark_detection_ex.cpp
也可食用dlib提供的訓練模型:
原圖:
檢測效果圖:
caffe 人臉關鍵點檢測 密集人臉關鍵點檢測
mtcnn聯合人臉檢測和對齊任務提供了5點關鍵點的能力,但是對於姿態姿態恢復等應用是遠遠不夠的,經常會出現某個點錯誤導致大幅抖動,顯然需要更密集的關鍵點.常見的資料集都是68點和106點。人臉關鍵點檢測主要面臨下面幾個挑戰 區域性變化 現實場景中人臉的表情,廣告,以及遮擋情況都有較大的變化,如fig...
python安裝dlib,關鍵點檢測
python 安裝dlib face landmark detection dlib是人臉識別比較有名的庫,有c python的介面。使用dlib可以大大簡化開發,比如人臉識別,特徵點檢測之類的工作都可以很輕鬆實現。關於dlib的安裝,直接執行pip install dlib即可。e.g.pip i...
人臉關鍵點檢測1 SDN
題目 effective face landmark localization via single deep network 常用的資料增強 平移 旋轉 映象 縮放 stage1 抖動人臉框位置加角度偏移和映象 stage2 對訓練資料中的hard examples errors 0.02 進行資...