我正在尝试训练train_shape_predictor_ex以检测印度法案中的后续图像。我点击并扫描了34张不同的图像。
成功训练模型taining error = 0
testing error = 0.35468-6
我尝试将过采样参数从300更改为12000 但结果仍然相同。 我做错了什么?
绘图代码 - 从图像加载到绘图步骤:
image_window win;
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor pose_model;
deserialize("sp.dat") >> pose_model;
while (!win.is_closed())
{
cv::Mat temp;
cap >> temp;
cv_image<bgr_pixel> cimg(temp);
std::vector<rectangle> faces = detector(cimg);
std::vector<full_object_detection> shapes;
for (unsigned long i = 0; i < faces.size(); ++i)
{
full_object_detection shape = pose_model(cimg, faces[i]);
std::vector<rectangle> dets = detector(cimg);
shapes.push_back(pose_model(cimg, faces[i]));
win.clear_overlay();
win.set_image(cimg);
win.add_overlay(dets, rgb_pixel(255, 0, 0));
win.add_overlay(render_face_detections(shapes));
}
}
答案 0 :(得分:1)
正如我现在看到的那样 - 你正在尝试训练自定义shape_predictor,在使用Dlib的render_face_detections
函数时只需要14个点,这个函数需要Dlib的脸部形状有68个点。 render_face_detections
不会正确绘制你的形状,应该抛出异常。
为了使您的形状预测有效,请确保您遵循以下条件: