首页 PaddleHub 帖子详情
求助,为什么我的抠图程序没有输出?
收藏
快速回复
PaddleHub 问答预训练模型 4788 23
求助,为什么我的抠图程序没有输出?
收藏
快速回复
PaddleHub 问答预训练模型 4788 23

这个是教程上的人像抠图,我测试了几次

import cv2

import paddlehub as hub

module = hub.Module(name="deeplabv3p_xception65_humanseg")

test_img = [cv2.imread(test_img_path[0])]

results = module.segmentation(images=test_img)

for result in results: print(result) # 预测结果展示

test_img_path = "./humanseg_output/meditation.png"

为什么我在测试的时候,没有产生这个输出文件夹?

 

0
收藏
回复
全部评论(23)
时间顺序
Fanas无敌
#2 回复于2020-07

文件夹要创建的,看你程序上是没表现出来的,或者手动创建。

文件夹:humanseg_output

0
回复
f
fzero
#3 回复于2020-07

可能默认安装的是 hub install deeplabv3p_xception65_humanseg==1.2.0,你试试人工指定安装成
hub install deeplabv3p_xception65_humanseg==1.0.0

0
回复
尔等别哭
#4 回复于2020-07

我的也有这个问题,不知道怎么回事。

环境:

windows10  

(paddle) C:\Users\Administrator>python
Python 3.7.7 (default, May 6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

代码:

import os
import sys
import paddlehub as hub


# 1.加载模型
humanseg = hub.Module(name="deeplabv3p_xception65_humanseg")

# 2.指定待抠图图片目录
pa = os.path.abspath(os.path.join(os.path.dirname(__file__), "."))
path = pa+"/source/"

print(pa)
files = []
dirs = os.listdir(path)
for diretion in dirs:
files.append(path + diretion)

# 3.抠图
results = humanseg.segmentation(data={"image": files})

for result in results:
print(result)
print(result['origin'])
print(result['processed'])

 

命令执行:

(paddle) C:\Users\Administrator>python D:\you\zimu\716\Pythonn\1.py
[2020-07-21 15:02:22,017] [ INFO] - Installing deeplabv3p_xception65_humanseg module
[2020-07-21 15:02:22,403] [ INFO] - Module deeplabv3p_xception65_humanseg already installed in C:\Users\Administrator\.paddlehub\modules\deeplabv3p_xception65_humanseg
D:\you\zimu\716\Pythonn
[2020-07-21 15:02:24,584] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
{'origin': 'D:\\you\\zimu\\716\\Pythonn/source/11.jpg', 'processed': 'humanseg_output\\11.png'}
D:\you\zimu\716\Pythonn/source/11.jpg
humanseg_output\11.png
{'origin': 'D:\\you\\zimu\\716\\Pythonn/source/22.jpg', 'processed': 'humanseg_output\\22.png'}
D:\you\zimu\716\Pythonn/source/22.jpg
humanseg_output\22.png
{'origin': 'D:\\you\\zimu\\716\\Pythonn/source/3.jpg', 'processed': 'humanseg_output\\3.png'}
D:\you\zimu\716\Pythonn/source/3.jpg
humanseg_output\3.png
{'origin': 'D:\\you\\zimu\\716\\Pythonn/source/sylm.jpg', 'processed': 'humanseg_output\\sylm.png'}
D:\you\zimu\716\Pythonn/source/sylm.jpg
humanseg_output\sylm.png
{'origin': 'D:\\you\\zimu\\716\\Pythonn/source/xyjy.jpg', 'processed': 'humanseg_output\\xyjy.png'}
D:\you\zimu\716\Pythonn/source/xyjy.jpg
humanseg_output\xyjy.png

(paddle) C:\Users\Administrator>

什么都正常 就是humanseg_output文件夹没有输出。。。。。。。

1
回复
w
wangwei8638
#5 回复于2020-07

手动创建试试

0
回复
尔等别哭
#6 回复于2020-07
手动创建试试

手动建文件夹也不行,还是没输出

0
回复
z
zxzzde
#7 回复于2020-08

results = module.segmentation(data=input_dict,output_dir=out_path) 我的out_path目录下没有图片输出,也不报错。是模型版本不对吗?我的hub是1.8.1

0
回复
七年期限
#8 回复于2020-08

版本改了,需要自己给参数才生成

0
回复
七年期限
#9 回复于2020-08
文件夹要创建的,看你程序上是没表现出来的,或者手动创建。 文件夹:humanseg_output

这个不需要

0
回复
F
FrOwlWood
#10 回复于2020-08

hub版本过高,降低hub笨笨或者使用paths参数

0
回复
七年期限
#11 回复于2020-08

指定参数

0
回复
七年期限
#12 回复于2020-08

images (list[numpy.ndarray]): 图片数据,ndarray.shape 为 [H, W, C],BGR格式;
paths (list[str]): 图片的路径;
batch_size (int): batch 的大小;
use_gpu (bool): 是否使用 GPU;
visualization (bool): 是否将识别结果保存为图片文件;
output_dir (str): 图片的保存路径。

0
回复
七年期限
#13 回复于2020-08

visualization (bool): 是否将识别结果保存为图片文件;
output_dir (str): 图片的保存路径。

 

 

主要看这两个

1
回复
七年期限
#14 回复于2020-08

https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_xception65_humanseg&en_category=ImageSegmentation

0
回复
七年期限
#15 回复于2020-09

解决了吗

0
回复
暮光の灵
#16 回复于2020-09

没遇到这问题,楼主解决了吗

 

0
回复
A
AIStudio786405
#17 回复于2020-12

import paddlehub as hub
# 官网:https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_xception65_humanseg&en_category=ImageSegmentation
from common.file.file import get_file_path_list_in_dir
# import matplotlib
# matplotlib.use('TkAgg')

src_image_dir = r'D:\ZYL\21_pythonCode\tianyan\resource\picture' # 文件目录
output_dir = r'D:\ZYL\21_pythonCode\tianyan\resource\picture\humanseg_output'
module = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型
files = get_file_path_list_in_dir(base_dir=src_image_dir, suffix_tuple=('jpg', 'png')) # 获取文件列表
results = module.segmentation(paths=files, visualization=True, output_dir=output_dir) # 抠图
print(results)

 

 

 

设置这个参数:visualization=True

2
回复
A
AIStudio674574
#18 回复于2021-02

请问我在分割函数里加入 use_gpu=True 之后就会有一个c++ Trace Back 的报错,这是怎么回事啊?(cpu运行无这个问题)

0
回复
七年期限
#19 回复于2021-02
import paddlehub as hub # 官网:https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_xception65_humanseg&en_category=ImageSegmentation from common.file.file import get_file_path_list_in_dir # import matplotlib # matplotlib.use('TkAgg') src_image_dir = r'D:\ZYL\21_pythonCode\tianyan\resource\picture' # 文件目录 output_dir = r'D:\ZYL\21_pythonCode\tianyan\resource\picture\humanseg_output' module = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型 files = get_file_path_list_in_dir(base_dir=src_image_dir, suffix_tuple=('jpg', 'png')) # 获取文件列表 results = module.segmentation(paths=files, visualization=True, output_dir=output_dir) # 抠图 print(results)       设置这个参数:visualization=True
展开

对的 加了这个确实是才能生成图片的

0
回复
七年期限
#20 回复于2021-02
请问我在分割函数里加入 use_gpu=True 之后就会有一个c++ Trace Back 的报错,这是怎么回事啊?(cpu运行无这个问题)

要看报错是什么了

0
回复
七年期限
#21 回复于2021-02

有报错吗

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户