yolov3 yolo_cpp_dll 调用

1.编译

      1.1 如出现 cudnn宏问题 ,查看cudnn版本是否正确

       1.2 包含目录

..\..\3rdparty\include;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include;%(AdditionalIncludeDirectories);$(CudaToolkitIncludeDir);$(cudnn)\include

       1.3包含库目录

$(CUDA_PATH)lib\$(PlatformName);$(cudnn)\lib\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64;%(AdditionalLibraryDirectories)

      1.4包含库

..\..\3rdparty\lib\x64\pthreadVC2.lib
cublas.lib
curand.lib
cudart.lib

可以发现,主要为cuda以及cudnn的依赖

2.test

 

#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/opencv.hpp"
#include "Yolov2Detector.h"
using namespace std;
vector<string> objName = { "person", "Saftyhelmetperson" };
const string CFG_FILE = "\\cfg\\helmet02.cfg";
const string WEIGHTS_FILE = "\\helmet02_59400.weights";
#define  ORG_PIC_WIDTH MAX_PIC_WIDTH
#define  ORG_PIC_HEIGHT MAX_PIC_HEIGHT

#define MAX_PIC_WIDTH  1920
#define MAX_PIC_HEIGHT 1080
int main()
{
    string curPath = "E:/work/yolov3test/yolov3test/";
    string cfgPath = curPath + CFG_FILE;
    string weightsPath = curPath + WEIGHTS_FILE;
    Yolov2Detector *m_pDetector = new Yolov2Detector(cfgPath, weightsPath);
    Mat img(ORG_PIC_WIDTH, ORG_PIC_HEIGHT, CV_8UC3);
    char cPath[MAX_PATH] =  "E:/work/yolov3test/yolov3test/11.jpg" ;
    img =cv::imread(cPath);
    int iDetectObjNums = 0; //报警目标个数
    float m_fProbThres = 0.25;
    int iAllObjCount = 0;  //检测到的所有目标个数
    string obj_name = "Saftyhelmetperson";//需要报警的目标,不含该目标将直接删除服务器发来的路径对应的图片
    vector <string>::iterator sElement = std::find(objName.begin(),
        objName.end(), obj_name);

    auto result = m_pDetector->Detect(img, m_fProbThres);
    result = m_pDetector->TrackingID(result);

    iAllObjCount = result.size();
    std::cout << "检测到 " << iAllObjCount << "个目标" << std::endl;


    int iPosition = distance(objName.begin(), sElement); //报警目标在vector中的position
    for (int i = 0; i < iAllObjCount; i++)
    {
        if (result.at(i).obj_id == iPosition)
        {
            iDetectObjNums += 1;
        }
    }
    m_pDetector->DrawBoxes(img, result, objName);
    cv::imshow("",img);
    cv::waitKey(0);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值