libtorch c++ 测试程序

在网上找了一个测试程序。使用cmake生成项目时报错:

Unknown cmake build type:
Call Stack (most recent call first):
  D:/libtorch-gpu/share/cmake/Caffe2/Caffe2Config.cmake:88 (include)
  D:/libtorch-gpu/share/cmake/Torch/TorchConfig.cmake:39 (find_package)
  CMakeLists.txt:4 (find_package)

-- Configuring incomplete, errors occurred!
See also "E:/simnet-gpu/build/CMakeFiles/CMakeOutput.log".
See also "E:/simnet-gpu/build/CMakeFiles/CMakeError.log".

解决办法:

点击cnake-gui的右上角的“Add Entry",然后添加

libtorch c++ 测试程序

 

 再一次config则通过。

配置 vs2017 x64 cuda10.0 libtorch1.0.0-cu10

后面再配置opencv就可以使用了。

 测试程序是:

#include <torch/torch.h>
#include <torch/script.h>
#include <memory>
#include <string>
#include <vector>
#include <iostream>
#include <spdhelper.hpp>
#include <opencv2/opencv.hpp>
#include <BTimer.hpp>
#include "MTCNN.h"

int main(int argc, char* argv[])
{
    ENTER_FUNC;
    BTimer timer;

    std::string pnet_weight_path = std::string(MODEL_PATH) + "pnet.pt";
    std::string rnet_weight_path = std::string(MODEL_PATH) + "rnet.pt";
    std::string onet_weight_path = std::string(MODEL_PATH) + "onet.pt";

    TAlgParam alg_param;
    alg_param.min_face = 40;
    alg_param.scale_factor = 0.79;
    alg_param.cls_thre[0] = 0.6;
    alg_param.cls_thre[1] = 0.7;
    alg_param.cls_thre[2] = 0.7;

    TModelParam modelParam;
    modelParam.alg_param = alg_param;
    modelParam.model_path = {pnet_weight_path, rnet_weight_path, onet_weight_path};
    modelParam.mean_value = {{127.5, 127.5, 127.5}, {127.5, 127.5, 127.5}, {127.5, 127.5, 127.5}};
    modelParam.scale_factor = {1.0f, 1.0f, 1.0f};
    modelParam.gpu_id = 0;
    modelParam.device_type = torch::DeviceType::CUDA;



    MTCNN mt;
    mt.InitDetector(&modelParam);
    std::string img_path = std::string(MODEL_PATH) + "/../img/faces2.jpg";
    cv::Mat src = cv::imread(img_path);
    if(!src.data)
    {
        LOGE("cannot load image!");
        return -1;
    }
    std::vector<cv::Rect> outFaces;
    LOGI("warm up...");
    timer.reset();
    for(int i = 0; i < 5; i++)
        mt.DetectFace(src, outFaces);
    LOGI("warm up over, time cost: {}", timer.elapsed());

    timer.reset();
    //for(;;)
    mt.DetectFace(src, outFaces);
    LOGI(" cost: {}", timer.elapsed());

    for(auto& i : outFaces)
        cv::rectangle(src, i, {0,255,0}, 2);

    cv::imshow("result", src);
    cv::waitKey(0);
//    cv::imwrite("res2.jpg", src);
    LEAVE_FUNC;
    return 0;
}

运行结果是:

libtorch c++ 测试程序

 

 只可惜debug版本过不去,只能靠输出查看中间信息。

参考:https://blog.csdn.net/jacke121/article/details/88709686

 

原文链接: https://www.cnblogs.com/juluwangshier/p/13340578.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    libtorch c++ 测试程序

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/368301

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午6:20
下一篇 2023年3月2日 下午6:20

相关推荐