求助,为什么我的抠图程序没有输出?
收藏
这个是教程上的人像抠图,我测试了几次
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
收藏
文件夹要创建的,看你程序上是没表现出来的,或者手动创建。
文件夹:humanseg_output
可能默认安装的是 hub install deeplabv3p_xception65_humanseg==1.2.0,你试试人工指定安装成
hub install deeplabv3p_xception65_humanseg==1.0.0
我的也有这个问题,不知道怎么回事。
环境:
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文件夹没有输出。。。。。。。
手动创建试试
手动建文件夹也不行,还是没输出
results = module.segmentation(data=input_dict,output_dir=out_path) 我的out_path目录下没有图片输出,也不报错。是模型版本不对吗?我的hub是1.8.1
版本改了,需要自己给参数才生成
这个不需要
hub版本过高,降低hub笨笨或者使用paths参数
指定参数
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): 图片的保存路径。
visualization (bool): 是否将识别结果保存为图片文件;
output_dir (str): 图片的保存路径。
主要看这两个
https://www.paddlepaddle.org.cn/hubdetail?name=deeplabv3p_xception65_humanseg&en_category=ImageSegmentation
解决了吗
没遇到这问题,楼主解决了吗
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
请问我在分割函数里加入 use_gpu=True 之后就会有一个c++ Trace Back 的报错,这是怎么回事啊?(cpu运行无这个问题)
对的 加了这个确实是才能生成图片的
要看报错是什么了
有报错吗