Android 4.1 TFLite无法处理DeepLabV3的输出(TFLite细分模型)

时间:2020-10-22 00:24:57

标签: android android-studio image-processing image-segmentation tf-lite

enter image description here

我正在将DeepLabV3模型与Android Studio 4.1中的TFLite模块一起使用。 After Predicting无法处理输出后,在segmentationMasks行上引发异常。这与运行时异常有关。由:java.lang.IllegalArgumentException:标签数字21与轴1上的形状不匹配。

enter image description here

1 个答案:

答案 0 :(得分:0)

您应该使用以下方法创建TensorLabel:

public TensorLabel(
      @NonNull Map<Integer, List<String>> axisLabels, @NonNull TensorBuffer tensorBuffer) 

val axisLabels = mapOf(3 to labels)

在DeepLabV3模型中,输出的形状为[1、257、257、21]。因此,标签应贴在第四轴上(索引= 3)。如果使用方法

public TensorLabel(@NonNull List<String> axisLabels, @NonNull TensorBuffer tensorBuffer)

标签将粘贴到尺寸大于1的第一个轴上,在这种情况下,这将是第二个轴(索引= 1)。