Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
94c8204a
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看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
94c8204a
编写于
3月 31, 2020
作者:
S
sjtubinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix coding style
上级
06190691
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
16 deletion
+16
-16
contrib/RealTimeHumanSeg/python/infer.py
contrib/RealTimeHumanSeg/python/infer.py
+16
-16
未找到文件。
contrib/RealTimeHumanSeg/python/infer.py
浏览文件 @
94c8204a
...
...
@@ -49,11 +49,8 @@ class HumanSeg:
self
.
predictor
=
LoadModel
(
model_dir
,
use_gpu
)
def
Preprocess
(
self
,
image
):
im
=
cv2
.
resize
(
image
,
self
.
eval_size
,
fx
=
0
,
fy
=
0
,
interpolation
=
cv2
.
INTER_CUBIC
)
im
=
cv2
.
resize
(
image
,
self
.
eval_size
,
fx
=
0
,
fy
=
0
,
interpolation
=
cv2
.
INTER_CUBIC
)
# HWC -> CHW
im
=
im
.
swapaxes
(
1
,
2
)
im
=
im
.
swapaxes
(
0
,
1
)
...
...
@@ -81,12 +78,14 @@ class HumanSeg:
output_data
=
output_data
.
as_ndarray
()
return
self
.
Postprocess
(
image
,
output_data
)
# Do Predicting on a image
def
PredictImage
(
seg
,
image_path
):
im
=
cv2
.
imread
(
input_path
)
im
=
seg
.
Predict
(
im
)
cv2
.
imwrite
(
'result.jpeg'
,
im
)
# Do Predicting on a video
def
PredictVideo
(
seg
,
video_path
):
cap
=
cv2
.
VideoCapture
(
video_path
)
...
...
@@ -98,35 +97,35 @@ 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'
),
fps
,
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
:
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
:
im
=
seg
.
Predict
(
frame
)
cv2
.
imshow
(
'Frame'
,
im
)
if
cv2
.
waitKey
(
1
)
&
0xFF
==
ord
(
'q'
):
break
else
:
else
:
break
cap
.
release
()
...
...
@@ -139,10 +138,11 @@ if __name__ == "__main__":
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
# Init model
mean
=
[
104.008
,
116.669
,
122.675
]
scale
=
[
1.0
,
1.0
,
1.0
]
eval_size
=
(
192
,
192
)
eval_size
=
(
513
,
513
)
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
)
PredictCamera
(
seg
)
#PredictVideo(seg, input_path)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录