Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
b97fc1d9
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
b97fc1d9
编写于
7月 02, 2021
作者:
C
cnn
提交者:
GitHub
7月 02, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix not find dirent.h on windows (#3550)
上级
8c6f05f5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
38 deletion
+13
-38
deploy/cpp/docs/linux_build.md
deploy/cpp/docs/linux_build.md
+2
-2
deploy/cpp/src/main.cc
deploy/cpp/src/main.cc
+11
-36
未找到文件。
deploy/cpp/docs/linux_build.md
浏览文件 @
b97fc1d9
...
...
@@ -35,7 +35,7 @@ fluid_inference
**注意:**
预编译版本除
`nv-jetson-cuda10-cudnn7.5-trt5`
以外其它包都是基于
`GCC 4.8.5`
编译,使用高版本
`GCC`
可能存在
`ABI`
兼容性问题,建议降级或
[
自行编译预测库
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_guide/inference_deployment/inference/build_and_install_lib_cn.html
)
。
### Step
4
: 编译
### Step
3
: 编译
编译
`cmake`
的命令在
`scripts/build.sh`
中,请根据实际情况修改主要参数,其主要内容说明如下:
...
...
@@ -92,7 +92,7 @@ make
**注意**
: OPENCV依赖OPENBLAS,Ubuntu用户需确认系统是否已存在
`libopenblas.so`
。如未安装,可执行apt-get install libopenblas-dev进行安装。
### Step
5
: 预测及可视化
### Step
4
: 预测及可视化
编译成功后,预测入口程序为
`build/main`
其主要命令参数说明如下:
| 参数 | 说明 |
| ---- | ---- |
...
...
deploy/cpp/src/main.cc
浏览文件 @
b97fc1d9
// Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
...
...
@@ -14,8 +15,8 @@
#include <glog/logging.h>
#include <dirent.h>
#include <iostream>
#include <filesystem>
#include <string>
#include <vector>
#include <numeric>
...
...
@@ -127,37 +128,6 @@ static void MkDirs(const std::string& path) {
MkDir
(
path
);
}
void
GetAllFiles
(
const
char
*
dir_name
,
std
::
vector
<
std
::
string
>
&
all_inputs
)
{
if
(
NULL
==
dir_name
)
{
std
::
cout
<<
" dir_name is null ! "
<<
std
::
endl
;
return
;
}
struct
stat
s
;
lstat
(
dir_name
,
&
s
);
if
(
!
S_ISDIR
(
s
.
st_mode
))
{
std
::
cout
<<
"dir_name is not a valid directory !"
<<
std
::
endl
;
all_inputs
.
push_back
(
dir_name
);
return
;
}
else
{
struct
dirent
*
filename
;
// return value for readdir()
DIR
*
dir
;
// return value for opendir()
dir
=
opendir
(
dir_name
);
if
(
NULL
==
dir
)
{
std
::
cout
<<
"Can not open dir "
<<
dir_name
<<
std
::
endl
;
return
;
}
std
::
cout
<<
"Successfully opened the dir !"
<<
std
::
endl
;
while
((
filename
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
filename
->
d_name
,
"."
)
==
0
||
strcmp
(
filename
->
d_name
,
".."
)
==
0
)
continue
;
all_inputs
.
push_back
(
dir_name
+
std
::
string
(
"/"
)
+
std
::
string
(
filename
->
d_name
));
}
}
}
void
PredictVideo
(
const
std
::
string
&
video_path
,
PaddleDetection
::
ObjectDetector
*
det
)
{
// Open video
...
...
@@ -373,17 +343,22 @@ int main(int argc, char** argv) {
if
(
!
PathExists
(
FLAGS_output_dir
))
{
MkDirs
(
FLAGS_output_dir
);
}
std
::
vector
<
std
::
string
>
all_imgs
;
std
::
vector
<
std
::
string
>
all_img_paths
;
std
::
vector
<
cv
::
String
>
cv_all_img_paths
;
if
(
!
FLAGS_image_file
.
empty
())
{
all_imgs
.
push_back
(
FLAGS_image_file
);
all_img
_path
s
.
push_back
(
FLAGS_image_file
);
if
(
FLAGS_batch_size
>
1
)
{
std
::
cout
<<
"batch_size should be 1, when image_file is not None"
<<
std
::
endl
;
FLAGS_batch_size
=
1
;
}
}
else
{
GetAllFiles
((
char
*
)
FLAGS_image_dir
.
c_str
(),
all_imgs
);
cv
::
glob
(
FLAGS_image_dir
,
cv_all_img_paths
);
for
(
const
auto
&
img_path
:
cv_all_img_paths
)
{
all_img_paths
.
push_back
(
img_path
);
}
}
PredictImage
(
all_imgs
,
FLAGS_batch_size
,
FLAGS_threshold
,
FLAGS_run_benchmark
,
&
det
,
FLAGS_output_dir
);
PredictImage
(
all_img_paths
,
FLAGS_batch_size
,
FLAGS_threshold
,
FLAGS_run_benchmark
,
&
det
,
FLAGS_output_dir
);
}
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录