Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sq975
openpose
提交
e4a02122
O
openpose
项目概览
sq975
/
openpose
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
openpose
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e4a02122
编写于
11月 16, 2018
作者:
G
gineshidalgo99
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OpenCV DNN disabled by default
上级
eedc7540
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
10 deletion
+17
-10
src/openpose/net/netOpenCv.cpp
src/openpose/net/netOpenCv.cpp
+17
-10
未找到文件。
src/openpose/net/netOpenCv.cpp
浏览文件 @
e4a02122
// TODO: After completely adding the OpenCV DNN module, add this flag to CMake as alternative to USE_CAFFE
// #define USE_OPEN_CV_DNN
// Note: OpenCV only uses CPU or OpenCL (for Intel GPUs). Used CUDA for following blobs (Resize + NMS)
#include <openpose/core/macros.hpp> // OPEN_CV_IS_4_OR_HIGHER
#ifdef USE_CAFFE
#include <caffe/net.hpp>
#endif
#if defined(USE_CAFFE) && defined(USE_CUDA) && defined(OPEN_CV_IS_4_OR_HIGHER)
#define OPEN_CV_DNN_AVAILABLE
#include <opencv2/opencv.hpp>
#include <openpose/gpu/cuda.hpp>
#ifdef USE_OPEN_CV_DNN
#if defined(USE_CAFFE) && defined(USE_CUDA) && defined(OPEN_CV_IS_4_OR_HIGHER)
#include <opencv2/opencv.hpp>
#include <openpose/gpu/cuda.hpp>
#else
#error In order to enable OpenCV DNN module in OpenPose, the CMake flags of Caffe and CUDA must be \
enabled, and OpenCV version must be at least 4.0.0.
#endif
#endif
#include <numeric> // std::accumulate
#include <openpose/utilities/fileSystem.hpp>
...
...
@@ -16,7 +23,7 @@ namespace op
{
struct
NetOpenCv
::
ImplNetOpenCv
{
#ifdef
OPEN_CV_DNN_AVAILABLE
#ifdef
USE_OPEN_CV_DNN
// Init with constructor
const
int
mGpuId
;
const
std
::
string
mCaffeProto
;
...
...
@@ -60,7 +67,7 @@ namespace op
#endif
};
#ifdef
OPEN_CV_DNN_AVAILABLE
#ifdef
USE_OPEN_CV_DNN
inline
void
reshapeNetOpenCv
(
caffe
::
Net
<
float
>*
caffeNet
,
const
std
::
vector
<
int
>&
dimensions
)
{
try
...
...
@@ -79,13 +86,13 @@ namespace op
#endif
NetOpenCv
::
NetOpenCv
(
const
std
::
string
&
caffeProto
,
const
std
::
string
&
caffeTrainedModel
,
const
int
gpuId
)
#ifdef
OPEN_CV_DNN_AVAILABLE
#ifdef
USE_OPEN_CV_DNN
:
upImpl
{
new
ImplNetOpenCv
{
caffeProto
,
caffeTrainedModel
,
gpuId
}}
#endif
{
try
{
#ifndef
OPEN_CV_DNN_AVAILABLE
#ifndef
USE_OPEN_CV_DNN
UNUSED
(
caffeProto
);
UNUSED
(
caffeTrainedModel
);
UNUSED
(
gpuId
);
...
...
@@ -111,7 +118,7 @@ namespace op
{
try
{
#ifdef
OPEN_CV_DNN_AVAILABLE
#ifdef
USE_OPEN_CV_DNN
upImpl
->
mNet
.
setInput
(
inputData
.
getConstCvMat
());
upImpl
->
mNetOutputBlob
=
upImpl
->
mNet
.
forward
();
// 99% of the runtime here
std
::
vector
<
int
>
outputSize
(
upImpl
->
mNetOutputBlob
.
dims
,
0
);
...
...
@@ -136,7 +143,7 @@ namespace op
{
try
{
#ifdef
OPEN_CV_DNN_AVAILABLE
#ifdef
USE_OPEN_CV_DNN
return
upImpl
->
spOutputBlob
;
#else
return
nullptr
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录