private val modelName = "yolop_seg.dlc"
private fun configureNetwork(): NeuralNetwork? {
return try {
val assetInputStream = applicationContext.assets.open(modelName)
val network = SNPE.NeuralNetworkBuilder(application)
.setDebugEnabled(false)
.setRuntimeOrder(NeuralNetwork.Runtime.GPU_FLOAT16)
.setModel(assetInputStream, assetInputStream.available())
.setCpuFallbackEnabled(true)
.setUseUserSuppliedBuffers(false)
.setUnsignedPD(false)
.setCpuFixedPointMode(false)
.setOutputLayers("Sigmoid_1671","Concat_1534", "Sigmoid_1808" )
.build()
assetInputStream.close()
network
} catch (e: Exception) {
Log.e("NETWORK", e.message.toString())
null
}
}
private fun getClassificationResult(network: NeuralNetwork, bitmap: Bitmap): FloatArray{
val image = Bitmap.createScaledBitmap(bitmap, 640, 640, true)
val inputsMap: MutableMap<String, FloatTensor> = HashMap()
val inputNames: Set<String> = network.inputTensorsNames
val outputNames: Set<String> = network.outputTensorsNames
var mInputLayer = ""
val mOutputLayer = ""
mInputLayer = inputNames.iterator().next()
val tensor = network.createFloatTensor(1, 640, 640,3)
val dimension = tensor.shape
val isGrayScale = (dimension[dimension.size - 1] == 1)
val input: FloatArray = if (!isGrayScale) {
loadRgbBitmapAsFloat(image)
} else {
loadGrayScaleBitmapAsFloat(image)
}
tensor.write(input, 0, input.size)
inputsMap[mInputLayer] = tensor
val outputsMap = network.execute(inputsMap)
val driveAreaSeg = outputsMap["drive_area_seg"]
val DrivAreaSegValues = FloatArray(driveAreaSeg!!.size)
driveAreaSeg.read(DrivAreaSegValues, 0, DrivAreaSegValues.size)
val i = 0
val laneLineSeg = outputsMap["lane_line_seg"]
val LanLinSegValues = FloatArray(laneLineSeg!!.size)
laneLineSeg.read(LanLinSegValues, 0, LanLinSegValues.size)
val detOut = outputsMap.get("det_out")
val DetOutValues = FloatArray(detOut!!.size)
detOut.read(DetOutValues, 0, DetOutValues.size)
return laneLineSeg`
This is how i configure network, pass input tensors. but my variables laneLineSeg,DrivAreaSegValues and DetOutValues are NaN values. Any one can help me on this. Thanks in advance
Олег
Вопрос задан14 сентября 2024 г.