dlib物體檢測開發

2021-10-10 02:11:18 字數 2318 閱讀 5126

一、dlib 動態庫編譯

vim dlib/cmakelists.txt 修改部分內容

if (dlib_iso_cpp_only)

option(dlib_jpeg_support $ off)

option(dlib_link_with_sqlite3 $ off)

option(dlib_use_blas $ off)

option(dlib_use_lapack $ off)

option(dlib_use_cuda $ off)

option(dlib_png_support $ off)

option(dlib_gif_support $ off)

#option(dlib_use_fftw $ off)

option(dlib_use_mkl_fft $ off)

else()

option(dlib_jpeg_support $ on)

option(dlib_link_with_sqlite3 $ on)

option(dlib_use_blas $ off)

option(dlib_use_lapack $ off)

option(dlib_use_cuda $ off)

option(dlib_png_support $ on)

option(dlib_gif_support $ on)

#option(dlib_use_fftw $ on)

option(dlib_use_mkl_fft $ off)

endif()

mkdir build

cd build

cmake -dbuild_shared_libs=on -ddlib_use_lapack=1 ..

cmake --build . --config release

編譯完成後在當前目錄生成dlib資料夾,裡面包含動態庫和config.h

為防止報錯需要報config.h覆蓋dlib原始碼目錄的config.h

二、dlib 模型訓練

1、訓練處理

dib-master/tools/imglab可處理,詳細檢視readme.txt

2、模型訓練

dlib-master/python_examples/train_object_detecotr.py例子可參考

三、dlib c++介面呼叫

1、單個模型呼叫

typedef scan_fhog_pyramid> image_scanner_type;

object_detectordetector; 

ifstream fin("./detector.svm", ios::binary);

deserialize(detector, fin);

qimage image_gray = img_rgb.converttoformat(qimage::format_grayscale8);

cv::mat mat_img = cv::mat(image_gray.height(), image_gray.width(), cv_8uc1, (void*)image_gray.constbits(), image_gray.bytesperline());

dlib::cv_imagedlib_img(mat_img);

const std::vectorrects = detector(dilb_img);

2、多個模型同時呼叫

typedef scan_fhog_pyramid> image_scanner_type;

std::vector> detectors; 

auto add_detector = [&](qstring file_name)

add_detector("./detector1.svm");

add_detector("./detector2.svm");

qimage image_gray = img_rgb.converttoformat(qimage::format_grayscale8);

cv::mat mat_img = cv::mat(image_gray.height(), image_gray.width(), cv_8uc1, (void*)image_gray.constbits(), image_gray.bytesperline());

dlib::cv_imagedlib_img(mat_img);

const std::vectorrects = evaluate_detectors(detectors, dlib_img);

平面物體檢測

這個教程的目標是學習如何使用 features2d 和 calib3d 模組來檢測場景中的已知平面物體。測試資料 資料影象檔案,比如 box.png 或者 box in scene.png 等。建立新的控制台 console 專案。讀入兩個輸入影象。mat img1 imread argv 1 cv...

DPM物體檢測相關

deformable parts model dpm 簡介 dpm deformable part model 模型結構初解 關於dpmv5 deformable part model 演算法中model結構的解釋 把訓練出來的模型檔案.mat格式轉為.txt格式的 hog 用於人體檢測的梯度方向直...

物體檢測網路概述

yolo 實時快速目標檢測 yolo詳解 傳統目標檢測系統採用deformable parts models dpm 方法,通過滑動框方法提出目標區域,然後採用分類器來實現識別。近期的r cnn類方法採用region proposal methods,首先生成潛在的bounding boxes,然後...