gpt4 book ai didi

android - TFLite 演示模型上的静态图像精度低

转载 作者:行者123 更新时间:2023-11-30 00:00:54 26 4
gpt4 key购买 nike

我正在尝试使用来自 TensorFlow for Poets 2 的移动网络传输学习示例进行图像分类的 TFLite 实现

我能够使用代码实验室中的四个花卉样本成功完成迁移学习并获得以下屏幕 App after transfer learning

这是正在分类的连续图像流。

我需要在拍照而不是流后对图像进行分类,然后根据结果采取一些行动。以下是我的做法。

  1. 创建一个基本的相机应用
  2. 拍照并保存到存储器
  3. 图像的uri被保存,然后从中创建一个drawable网址。
  4. 然后将此可绘制对象转换为位图。
  5. 将位图大小转换为 224 x 224 以匹配移动网络模型
  6. 我收到的准确度范围是 0.05 到 0.06,而代码实验室的连续流样本在经过训练的花类中给出了 0.80 - 0.90 范围内的准确度

下面是我将位图转换为 224 x 224 大小的代码

private static Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight, boolean isNecessaryToKeepOrig) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);

// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
if(!isNecessaryToKeepOrig){
bm.recycle();
}
return resizedBitmap;
}

即使我将原始位图传递给分类器,结果也是一样的,分类器本身正在将图像转换为 224 x 224。我应该对图像做更多的额外处理还是需要更改任何配置在模型中?

最佳答案

我认为问题在于平滑概率的 applyFilter()。只需将其删除,概率就会正常显示。

String classifyFrame(Bitmap bitmap) {
...
// smooth the results
//applyFilter(); <--remove it

...
}

关于android - TFLite 演示模型上的静态图像精度低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49954439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com