Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
381424bd
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
1 年多 前同步成功
通知
283
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
381424bd
编写于
2月 22, 2020
作者:
B
Bin Long
提交者:
GitHub
2月 22, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #374 from ShenYuhan/fix_mask_module_2
fix mask-serving for no-output.
上级
62331f8b
557cdf5e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
18 deletion
+45
-18
paddlehub/common/utils.py
paddlehub/common/utils.py
+16
-3
paddlehub/serving/app_single.py
paddlehub/serving/app_single.py
+29
-15
未找到文件。
paddlehub/common/utils.py
浏览文件 @
381424bd
...
...
@@ -65,10 +65,14 @@ def base64s_to_cvmats(base64s):
return
base64s
def
handle_mask_results
(
results
):
def
handle_mask_results
(
results
,
data_len
):
result
=
[]
if
len
(
results
)
<=
0
:
return
results
if
len
(
results
)
<=
0
and
data_len
!=
0
:
return
[{
"data"
:
"No face."
,
"id"
:
i
,
"path"
:
""
}
for
i
in
range
(
1
,
data_len
+
1
)]
_id
=
results
[
0
][
"id"
]
_item
=
{
"data"
:
[],
...
...
@@ -87,6 +91,15 @@ def handle_mask_results(results):
"id"
:
item
.
get
(
"id"
,
_id
)
}
result
.
append
(
_item
)
for
index
in
range
(
1
,
data_len
+
1
):
if
index
>
len
(
result
):
result
.
append
({
"data"
:
"No face."
,
"id"
:
index
,
"path"
:
""
})
elif
result
[
index
-
1
][
"id"
]
!=
index
:
result
.
insert
(
index
-
1
,
{
"data"
:
"No face."
,
"id"
:
index
,
"path"
:
""
})
return
result
...
...
paddlehub/serving/app_single.py
浏览文件 @
381424bd
...
...
@@ -18,7 +18,7 @@ import time
import
os
import
base64
import
logging
import
shutil
import
glob
cv_module_method
=
{
"vgg19_imagenet"
:
"predict_classification"
,
...
...
@@ -140,6 +140,8 @@ def predict_mask(module, input_img, id, batch_size, extra=None, r_img=True):
global
use_gpu
method_name
=
module
.
desc
.
attr
.
map
.
data
[
'default_signature'
].
s
predict_method
=
getattr
(
module
,
method_name
)
data_len
=
len
(
input_img
)
if
input_img
is
not
None
else
0
results
=
[]
try
:
data
=
{}
if
input_img
is
not
None
:
...
...
@@ -153,7 +155,7 @@ def predict_mask(module, input_img, id, batch_size, extra=None, r_img=True):
visualization
=
r_img
,
use_gpu
=
use_gpu
,
batch_size
=
batch_size
)
results
=
utils
.
handle_mask_results
(
results
)
results
=
utils
.
handle_mask_results
(
results
,
data_len
)
except
Exception
as
err
:
curr
=
time
.
strftime
(
"%Y-%m-%d %H:%M:%S"
,
time
.
localtime
(
time
.
time
()))
print
(
curr
,
" - "
,
err
)
...
...
@@ -166,24 +168,36 @@ def predict_mask(module, input_img, id, batch_size, extra=None, r_img=True):
for
index
in
range
(
len
(
results
)):
results
[
index
][
"path"
]
=
""
results_pack
=
results
str_id
=
id
+
"*"
files_deleted
=
glob
.
glob
(
str_id
)
for
path
in
files_deleted
:
if
os
.
path
.
exists
(
path
):
os
.
remove
(
path
)
else
:
input_img
=
input_img
.
get
(
"image"
,
[])
for
index
in
range
(
len
(
input_img
)):
item
=
input_img
[
index
]
with
open
(
os
.
path
.
join
(
output_folder
,
item
),
"rb"
)
as
fp
:
b_head
=
"data:image/"
+
item
.
split
(
"."
)[
-
1
]
+
";base64"
b_body
=
base64
.
b64encode
(
fp
.
read
())
b_body
=
str
(
b_body
).
replace
(
"b'"
,
""
).
replace
(
"'"
,
""
)
b_img
=
b_head
+
","
+
b_body
base64_list
.
append
(
b_img
)
results
[
index
][
"path"
]
=
results
[
index
][
"path"
].
replace
(
id
+
"_"
,
""
)
if
results
[
index
][
"path"
]
!=
""
\
else
""
results
[
index
].
update
({
"base64"
:
b_img
})
file_path
=
os
.
path
.
join
(
output_folder
,
item
)
if
not
os
.
path
.
exists
(
file_path
):
results_pack
.
append
(
results
[
index
])
os
.
remove
(
item
)
os
.
remove
(
os
.
path
.
join
(
output_folder
,
item
))
os
.
remove
(
item
)
else
:
with
open
(
file_path
,
"rb"
)
as
fp
:
b_head
=
"data:image/"
+
item
.
split
(
"."
)[
-
1
]
+
";base64"
b_body
=
base64
.
b64encode
(
fp
.
read
())
b_body
=
str
(
b_body
).
replace
(
"b'"
,
""
).
replace
(
"'"
,
""
)
b_img
=
b_head
+
","
+
b_body
base64_list
.
append
(
b_img
)
results
[
index
][
"path"
]
=
results
[
index
][
"path"
].
replace
(
id
+
"_"
,
""
)
if
results
[
index
][
"path"
]
!=
""
\
else
""
results
[
index
].
update
({
"base64"
:
b_img
})
results_pack
.
append
(
results
[
index
])
os
.
remove
(
item
)
os
.
remove
(
os
.
path
.
join
(
output_folder
,
item
))
else
:
results_pack
=
results
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录