【发布时间】:2021-02-12 19:40:43
【问题描述】:
我正在使用https://github.com/anupamchugh/AndroidTfLiteCameraX 源代码来了解如何将 TFLite 模型与 Android 集成。我也有 label.txt 以及 Assets 文件夹中的所有类。
目前,该项目仅返回预测类。我想连同它一起检索边界框。
private fun getMaxResult(result: FloatArray): Int {
var probability = result[0]
var index = 0
for (i in result.indices) {
if (probability < result[i]) {
probability = result[i]
index = i
}
}
return index
}
private fun classify(bitmap: Bitmap): String {
check(isInitialized) { "TF Lite Interpreter is not initialized yet." }
val resizedImage =
Bitmap.createScaledBitmap(bitmap, inputImageWidth, inputImageHeight, true)
val byteBuffer = convertBitmapToByteBuffer(resizedImage)
val output = Array(1) { FloatArray(labels.size) }
val startTime = SystemClock.uptimeMillis()
interpreter?.run(byteBuffer, output)
val endTime = SystemClock.uptimeMillis()
var inferenceTime = endTime - startTime
var index = getMaxResult(output[0])
var result = "Prediction is ${labels[index]}\nInference Time ${inferenceTime}\""
return result
}
这是分类发生的地方。我认为它不会返回边界框信息,但我不确定。我对tflite 模型了解不多。要获得边界框,我需要使用不同的模型吗?我该怎么办?
【问题讨论】:
标签: android kotlin classification bounding-box tensorflow-lite