距离真正完成表情辨识的App,
只差把辨识图像的功能实作出来,
在这里我们必须将Day21存好的TFLite模型拿出来,
制作出含有metadata的TFLite模型。
我把"effB0_fer.tflite"加入metadata後,
另存为"effB0_fer_meta.tflite"。
# %% 生成 model metadata
from tflite_support.metadata_writers import writer_utils
from tflite_support.metadata_writers import image_classifier
ImageClassifierWriter = image_classifier.MetadataWriter
_MODEL_PATH = "./models/effB0_fer.tflite"
_LABEL_FILE = "./data/FER2013_labels.txt"
_SAVE_TO_PATH = "./models/effB0_fer_meta.tflite"
_INPUT_NORM_MEAN = 0
_INPUT_NORM_STD = 1
# Create the metadata writer.
writer = ImageClassifierWriter.create_for_inference(
writer_utils.load_file(_MODEL_PATH), [_INPUT_NORM_MEAN], [_INPUT_NORM_STD],
[_LABEL_FILE])
# Verify the metadata generated by metadata writer.
print(writer.get_metadata_json())
# Populate the metadata into the model.
writer_utils.save_file(writer.populate(), _SAVE_TO_PATH)
这边唯一有需要自己决定的只有_INPUT_NORM_MEAN
和_INPUT_NORM_STD
,
这两个变数的数值决定於我们输入图片矩阵的时候有无做正规化,
因为我是将[0. ~ 255.]直接丢入模型,所以设mean = 0, std = 1。
官网原文:
Normalization is a common data preprocessing technique in machine learning. The goal of normalization is to change the values to a common scale, without distorting differences in the ranges of values.
在app
上按滑鼠右键,最後点击tensorflow lite model
。
选择已训练model的位置进行import,按下finish进行import。(不建议勾gpu选项)
等待1分钟後,可以看到菜单左栏位多出ml
资料夹。
ml
资料夹下有我们的tflite model,可以点开他查看(这边记录了input shape和scale range)
呼叫模型的程序码
val model = Effb0FerMeta.newInstance(context)
// Creates inputs for reference.
val image = TensorImage.fromBitmap(bitmap)
// Runs model inference and gets result.
val outputs = model.process(image)
val probability = outputs.probabilityAsCategoryList
// Releases model resources if no longer used.
model.close()
终於把模型放进去了,
现在只差把 2.5 (呼叫模型的程序码)的程序码实作成function加入MainActivity.kt了!
明天再见~
>>: Day28 - [Shioaji] 超入门!永丰证券程序交易API快速上手 (1)
@csrf_exempt def callback(request): if request.met...
在网路上看到有人推荐 Formik 不仅符合 react native 也可以在 react 上使...
什麽是云端服务 ? 云端服务指的就是将软硬体等资源,放到网际网路上作为服务,使用者只需透过网路,就可...
前几天有朋友问我「推荐在日本软件业工作吗?」 我有点不太知道怎麽回答,因为我没在其他地方工作过,无从...
Microsoft Cloud App Security是一种云端存取安全性代理人(CASB), 可...