问题标签 [deeplab]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4187 浏览

android - 无法测试和部署用于推理的 deeplabv3-mobilenetv2 tensorflow-lite 分割模型

我们正在尝试使用 deeplabv3 和 mobilenetv2 在 android 上运行语义分割模型。我们在 bazel 的帮助下使用 TOCO 和 tflite_convert 遵循官方 tensorflow lite 转换过程。源冻结图来自官方 TensorFlow DeepLab Model Zoo。

我们能够使用以下命令成功转换模型:-

CUDA_VISIBLE_DEVICES="0" toco --output_file=toco256.tflite --graph_def_file=path/to/deeplab/deeplabv3_mnv2_pascal_trainval/frozen_inference_graph.pb --input_arrays=ImageTensor --output_arrays=SemanticPredictions --input_shapes=1,256,256,3 --inference_input_type=QUANTIZED_UINT8 --inference_type=FLOAT --mean_values=128 --std_dev_values=127 --allow_custom_ops --post_training_quantize

tflite 文件的大小约为 2.25 Mb。但是当我们尝试使用官方基准工具测试模型时,它失败并出现以下错误报告:-

我们还尝试了相同的命令,但不包含“allow_custom_ops”和“post_training_quantize”选项,甚至使用了与 1,513,513,3 相同的输入大小;但结果是一样的。

这个问题似乎类似于以下 github 问题:(https://github.com/tensorflow/tensorflow/issues/21266)。然而,在最新版本的 TensorFlow 中,该问题应该已得到修复。

型号: http: //download.tensorflow.org/models/deeplabv3_mnv2_pascal_trainval_2018_01_29.tar.gz Tensorflow 版本:1.11 Bazel 版本:0.17.2 操作系统:Ubuntu 18.04

此外,android 应用程序无法正确加载模型(tflite 解释器)

那么,我们如何才能将分割模型正确地转换为可用于在 android 设备上进行推理的 tflite 格式呢?

更新:-

使用 tensorflow 1.12,我们得到了一个新的错误:

此外,在使用来自 tensorflow deeplab模型动物园的 depth_multiplier=0.5 的同一模型(3 Mb .pb 文件)的较新版本时,我们得到了一个不同的错误:-

在这种情况下,我们使用上述相同的命令进行 tflite 转换;但我们甚至无法生成“tflite”文件作为输出。这似乎是深度乘数值的问题。(即使我们尝试将 depth_multiplier 参数作为参数转换时)。

0 投票
0 回答
1382 浏览

android - 无法在 Android 应用程序中加载 tflite deeplab 分割模型。错误:ByteBuffer 不是有效的 flatbuffer 模型

在将转换后的 TFLite 模型加载到 android 应用程序时遇到问题。

模型:Deeplabv3 Mobilenetv2(在 Pascal VOC 上训练)TFLite 版本:1.10

使用 tflite_convert 将 pb 文件转换为 tflite。(张量流版本:1.11.0)

代码:

错误:

在build.gradle中将tensorflow-lite版本改为'org.tensorflow:tensorflow-lite:0.0.0-nightly',得到如下错误

0 投票
2 回答
1415 浏览

tensorflow - 使用 tensorRT 运行 deeplab v3+

我正在尝试使用 tensorRT 优化 deeplab v3+ 模型,但出现以下错误:

据我了解,这是由 uff 转换器不支持的某些层引起的吗?有没有人成功地将 deeplab 模型转换为 uff?我在 tensorflow 中使用原始的 deeplabv3+ 模型。

谢谢

0 投票
1 回答
308 浏览

python - 元组组件中的 Deeplab v3+ 形状不匹配

我已经在ADE20K数据集上训练了 deeplab v3+,并得到了训练ckpt好的 jlogs 和events日志。但是当我继续运行eval.pyvis.pyADE20K我得到了以下关于形状的错误:

这些是我的eval脚本和vis脚本:

eval脚本:

vis脚本:

还有我的train脚本:

有什么我设置错了吗?谢谢你的帮助。

0 投票
1 回答
1263 浏览

tensorflow - 为什么 DeepLabV3+ 生成的所有图像都只变成黑色?

我尝试使用 DeepLab v3+ 进行语义分割,但结果全黑了。

我把原来的文件删掉了,把原来的数据分别放在ImageSets/,JPEGImages/和SegmentationClass/对应的里面。

我根据 PASCAL VOC 2012 颜色的规则准备了 SegmentationClassRaw 图像。

我编辑了 build_voc2012_data.py 和 segmentation_dataset.py

[build_voc2012_data.py]

[segmentation_dataset.pu]

我像这样运行 train.py 和 vis.py。

[train.py 命令]

[vis.py 命令]

两者都没有问题,但我确认了图片datasets/pascal_voc_seg/exp/train_on_trainval_set/vis/raw_segmentation_results/,这些都是黑色的。为什么?

这是因为火车数据大于 512x512 吗?(训练数据量很大:大约15000x13500)

[构建我的目录]

0 投票
1 回答
1083 浏览

python - DeepLab v3 - 如何处理任意大小比例的图像。(h * w)

Deeplab v3 仅以默认比例 512 * 512 进行预测。如何处理不同大小比例的图像。

请查看错误:-

回溯(最近一次通话最后):

文件“”,第 35 行,在 predict = model_dlv3.predict(img[np.newaxis, ...])

文件“/home/developer/anaconda2/envs/py36/lib/python3.6/site-packages/keras/engine/training.py”,第 1149 行,预测 x,_,_ = self._standardize_user_data(x)

文件“/home/developer/anaconda2/envs/py36/lib/python3.6/site-packages/keras/engine/training.py”,第 751 行,在 _standardize_user_data exception_prefix='input')

文件“/home/developer/anaconda2/envs/py36/lib/python3.6/site-packages/keras/engine/training_utils.py”,第 138 行,位于standardize_input_data str(data_shape))

ValueError:检查输入时出错:预期 input_3 的形状为 (512, 512, 3) 但得到的数组的形状为 (2448, 3264, 3)

0 投票
0 回答
43 浏览

python - deeplabv3+ 均值减法实现了吗?

我目前在我自己的数据集上使用 deeplabv3+,因此我仔细研究了一些用于预处理的实用函数的代码。看起来,平均减法是在 feature_extractor.py 中定义的,但在 input_generator.py 调用的 input_preprocess.py 中没有使用。train.py 也不进行均值减法,它只是调用 input_generator ,其中不调用均值减法函数。我想知道我错过了什么吗?它是在其他地方实施还是?谢谢回复!

0 投票
0 回答
449 浏览

python - deeplab 的自定义损失

我想为 Deeplab v3 添加自定义损失,它不仅适用于一个热编码标签,而且适用于显着性预测。因此,您在下面看到的不是 Deeplab 损失实现:

我使用了这个实现:

用 5 张图像训练了大约 1000 个 epoch,得到了以下结果:

此外,尝试了几种学习率,但它不会改变自定义损失的结果。

0 投票
2 回答
1463 浏览

android - Tensorflow-lite - 从量化模型输出中获取位图

我们正在使用 tensorflow-lite 在 android 中进行语义分割应用。使用的“.tflite”deeplabv3 模型具有类型为 (ImageTensor) uint8[1,300,300,3] 的输入和类型为 (SemanticPredictions) uint8[300,300] 的输出。我们成功了能够在 tflite.run 方法的帮助下运行模型并以 ByteBuffer 格式获取输出。但是我们无法在 java 中从该输出中提取图像。使用 pascal voc 数据集训练并实际转换为的模型TF 模型中的 tflite 格式:' mobilenetv2_dm05_coco_voc_trainval '。

该问题似乎类似于以下 stackoverflow 问题:tensorflow-lite - using tflite Interpreter to get an image in output

处理浮点数据类型转换的相同问题似乎已在 github 问题中得到修复:https ://github.com/tensorflow/tensorflow/issues/23483

那么,我们如何才能正确地从 UINT8 模型输出中提取分割掩码呢?

0 投票
1 回答
235 浏览

tensorflow - 语义分割性能:多类与二类

我们正在为 PC 和移动平台开发一个语义分割应用程序。最初我们尝试了谷歌当前最先进的 DeeplabV3+ 框架。使用的数据集是 Pascal VOC,来自官方模型动物园的模型在精度方面(张量流)。模型在 PC 和移动端(转换为 coreml 和 tflite)的性能不能满足我们的要求。即使我们尝试了不同的模型优化和量化技术,我们也无法在两者之间取得很好的平衡性能和准确性。

然而,我们实际上只关心单个类的分割(在 PASCAL VOC 中)。但是模型计算每个类标签的分割掩码,这在我们的例子中似乎是多余的。所以,如果我们训练网络只有一个类(额外的背景),它会在速度方面提高性能吗?