Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
44862b02
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
285
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
44862b02
编写于
3月 30, 2020
作者:
S
sjtubinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix coding style
上级
06190691
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
22 deletion
+27
-22
contrib/RealTimeHumanSeg/python/infer.py
contrib/RealTimeHumanSeg/python/infer.py
+27
-22
未找到文件。
contrib/RealTimeHumanSeg/python/infer.py
浏览文件 @
44862b02
...
...
@@ -15,10 +15,6 @@
import
os
import
sys
import
ast
import
time
import
json
import
argparse
import
numpy
as
np
import
cv2
...
...
@@ -27,6 +23,9 @@ import paddle.fluid as fluid
def
LoadModel
(
model_dir
,
use_gpu
=
False
):
"""
Load model files and init paddle predictor
"""
prog_file
=
os
.
path
.
join
(
model_dir
,
'__model__'
)
params_file
=
os
.
path
.
join
(
model_dir
,
'__params__'
)
config
=
fluid
.
core
.
AnalysisConfig
(
prog_file
,
params_file
)
...
...
@@ -53,7 +52,7 @@ class HumanSeg:
self
.
eval_size
,
fx
=
0
,
fy
=
0
,
interpolation
=
cv2
.
INTER_
CUBIC
)
interpolation
=
cv2
.
INTER_
LINEAR
)
# HWC -> CHW
im
=
im
.
swapaxes
(
1
,
2
)
im
=
im
.
swapaxes
(
0
,
1
)
...
...
@@ -98,51 +97,57 @@ def PredictVideo(seg, video_path):
fps
=
cap
.
get
(
cv2
.
CAP_PROP_FPS
)
# Result Video Writer
out
=
cv2
.
VideoWriter
(
'result.avi'
,
cv2
.
VideoWriter_fourcc
(
'M'
,
'J'
,
'P'
,
'G'
),
cv2
.
VideoWriter_fourcc
(
'M'
,
'J'
,
'P'
,
'G'
),
fps
,
(
int
(
w
),
int
(
h
)))
# Start capturing from video
while
(
cap
.
isOpened
()
):
while
cap
.
isOpened
(
):
ret
,
frame
=
cap
.
read
()
if
ret
==
True
:
im
=
seg
.
Predict
(
frame
)
out
.
write
(
im
)
;
else
:
out
.
write
(
im
)
else
:
break
cap
.
release
()
out
.
release
()
# Do Predicting on a camera video stream
# Do Predicting on a camera video stream
def
PredictCamera
(
seg
):
cap
=
cv2
.
VideoCapture
(
0
)
if
cap
.
isOpened
()
==
False
:
if
not
cap
.
isOpened
()
:
print
(
"Error opening video stream or file"
)
return
# Start capturing from video
while
(
cap
.
isOpened
()
):
while
cap
.
isOpened
(
):
ret
,
frame
=
cap
.
read
()
if
ret
==
True
:
if
ret
:
im
=
seg
.
Predict
(
frame
)
cv2
.
imshow
(
'Frame'
,
im
)
if
cv2
.
waitKey
(
1
)
&
0xFF
==
ord
(
'q'
):
break
else
:
else
:
break
cap
.
release
()
if
__name__
==
"__main__"
:
if
len
(
sys
.
argv
)
<
3
:
def
main
(
argv
):
"""
Entrypoint of the script
"""
if
len
(
argv
)
<
3
:
print
(
'Usage: python infer.py /path/to/model/ /path/to/video'
)
exit
(
0
)
return
model_dir
=
sys
.
argv
[
1
]
input_path
=
sys
.
argv
[
2
]
use_gpu
=
int
(
sys
.
argv
[
3
])
if
len
(
sys
.
argv
)
>=
4
else
0
# Init model
model_dir
=
argv
[
1
]
input_path
=
argv
[
2
]
use_gpu
=
int
(
argv
[
3
])
if
len
(
argv
)
>=
4
else
0
# Init model
mean
=
[
104.008
,
116.669
,
122.675
]
scale
=
[
1.0
,
1.0
,
1.0
]
eval_size
=
(
192
,
192
)
seg
=
HumanSeg
(
model_dir
,
mean
,
scale
,
eval_size
,
use_gpu
)
# Run Predicting on a video and result will be saved as result.avi
PredictVideo
(
seg
,
input_path
)
if
__name__
==
"__main__"
:
main
(
sys
.
argv
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录