有了App介面和tflite model with metadata之後,
App的核心功能!灵魂!终於要被我实现了!
// Loading my custom model
val model = Effb0FerMeta.newInstance(this)
// Creates inputs for reference.
val tensorImage = TensorImage.fromBitmap(bitmap)
// Runs model inference and gets result.
val outputs = model.process(tensorImage)
.probabilityAsCategoryList.apply {
sortByDescending { it.score } // 排序,由高到低
}
val result = arrayListOf<String>()
for (output in outputs) {
val label = output.label
val score: Int = (output.score * 100).roundToInt()
result.add("表情是 $label 的可能性为 $score %")
}
val listView = findViewById<ListView>(R.id.listView)
listView.adapter = ArrayAdapter(this,
android.R.layout.simple_list_item_1,
result
)
try{
// ...
}catch(...){
// ...
}
private fun recognizeImage(bitmap: Bitmap) {
try {
// Loads my custom model
val model = Effb0FerMeta.newInstance(this)
// Creates inputs for reference.
val tensorImage = TensorImage.fromBitmap(bitmap)
// Runs model inference and gets result.
val outputs = model.process(tensorImage)
.probabilityAsCategoryList.apply {
sortByDescending { it.score } // 排序,由高到低
}
//取得辨识结果与可信度
val result = arrayListOf<String>()
for (output in outputs) {
val label = output.label
val score = (output.score * 100).roundToInt()
result.add("表情是 $label 的可能性为 $score %")
}
//将结果显示於 ListView
val listView = findViewById<ListView>(R.id.listView)
listView.adapter = ArrayAdapter(this,
android.R.layout.simple_list_item_1,
result
)
} catch (e: IOException) {
e.printStackTrace()
}
}
这个程序码区块是我拖更很久的部分,
现在我补上来了。
基本上就是:
override fun onActivityResult(requestCode: Int,
resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 0 && resultCode == RESULT_OK) {
val image = data?.extras?.get("data") ?: return //取得资料
val bitmap = image as Bitmap
val imageView = findViewById<ImageView>(R.id.imageView)
imageView.setImageBitmap(bitmap) //使用 Bitmap 设定图像
imageView.rotation = 90f
recognizeImage(bitmap)
}
if (requestCode == 1 && resultCode == RESULT_OK) {
val uri = data!!.data
val imageView = findViewById<ImageView>(R.id.imageView)
imageView.setImageURI(uri)
val drawable = imageView.drawable as BitmapDrawable
val bitmap = drawable.bitmap
recognizeImage(bitmap)
}
}
只要合并前几天的文章内容,
应该已经有些帅气/漂亮的观众们应该已经完成App了。
这里有完整的code,不嫌弃的话给个star吧 :D
明天就是最後一天了,
内容应该是成果发表和感言吧XD
当责 第一次看到「当责」(Accountability) 是无意间瞥见的,当时满是疑惑,觉得这个词文...
MiniMap制作Part2 找到了tile生成时位置错乱的原因,还是因为进位造成的问题。A★内部是...
今天我要来教大家是个套件,套件名称叫做time,顾名思义就是有关时间的套件。有时候我们会绍定在某个时...
Open Source MANO (OSM)是由ETSI所提供的一个开源的MANO专案,可以使用此专...
函式视为物件 Python中函式视为物件,以函式名称当作物件,函式名称加上()才会执行该函式,范例如...