我正在尝试使用TensorFlow for Poets 2
中的移动网络转移学习示例进行图像分类的TFLite实施我能够使用代码实验室中的四个花样成功完成转移学习并获得以下屏幕
这是一个连续的图像流,正在被分类。
我需要在拍摄照片而不是流后对图像进行分类,然后根据结果采取一些操作。以下是我的方法。
下面是我将位图转换为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.我应该对图像进行更多额外处理还是需要更改任何配置在模型中?
答案 0 :(得分:1)
我认为问题是applyFilter()可以平滑概率。只需将其删除,则概率应显示为正常。
String classifyFrame(Bitmap bitmap) {
...
// smooth the results
//applyFilter(); <--remove it
...
}
答案 1 :(得分:0)
我遇到了同样的问题,我想对图片进行排序。我发现多次调用分类功能。结果往往是正确的。这只是一个糟糕的解决方案。 enter image description here