【发布时间】:2018-10-01 22:14:07
【问题描述】:
我正在尝试使用来自TensorFlow for Poets 2 的移动网络迁移学习示例进行图像分类的 TFLite 实现
我能够在代码实验室中使用四个花朵样本成功完成迁移学习并获得以下屏幕
这是正在分类的连续图像流。
我需要在拍照而不是流后对图像进行分类,然后根据结果采取一些行动。以下是我的方法。
- 创建一个基本的相机应用程序
- 拍照并保存到存储中
- 图像的 uri 被保存,然后从 URI。
- 然后将此可绘制对象转换为位图。
- 位图大小转换为 224 x 224 以匹配 移动网络模型
- 我收到的准确度在 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 的分类器,结果也是相同的。我应该对图像进行更多额外处理还是需要更改任何配置在模型中?
【问题讨论】:
标签: android python tensorflow tensorflow-lite