And*_*rew 5 android tensorflow
我正在开发一个应用程序来使用 tensorflow 对图像进行分类。有两个选项 1) 相机图像 2) 图库图像 当我捕获图像并将其传递给分类器时,它工作正常。但是当我从图库上传图像并将其传递给分类器时,出现错误。错误是
Caused by: java.lang.ArrayIndexOutOfBoundsException
at android.graphics.Bitmap.checkPixelsAccess(Bitmap.java:1573)
at android.graphics.Bitmap.getPixels(Bitmap.java:1514)
at org.tensorflow.demo.TensorFlowImageClassifier.recognizeImage(TensorFlowImageClassifier.java:134)
at org.tensorflow.demo.galleryimageclassifier.classify(galleryimageclassifier.java:70)
Run Code Online (Sandbox Code Playgroud)
在相机图片分类中,我通过图片如下
public void classify(View v) {
{
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
final int INPUT_SIZE = 299;
final int IMAGE_MEAN = 128;
final float IMAGE_STD = 128;
final String INPUT_NAME = "Mul";
final String OUTPUT_NAME = "final_result";
final String MODEL_FILE = "file:///android_asset/stripped_retrained_graph2.pb";
final String LABEL_FILE = "file:///android_asset/retrained_labels.txt";
final Classifier classifier;
classifier = TensorFlowImageClassifier.create(
getAssets(),
MODEL_FILE,
LABEL_FILE,
INPUT_SIZE,
IMAGE_MEAN,
IMAGE_STD,
INPUT_NAME,
OUTPUT_NAME);
final long startTime = SystemClock.uptimeMillis();
final List<Classifier.Recognition> results = classifier.recognizeImage(bmp);
final long lastProcessingTimeMs = SystemClock.uptimeMillis() - startTime;
ResultsView resultsView = null;
if (resultsView == null) {
resultsView = (ResultsView) findViewById(R.id.results);
}
resultsView.setResults(results);
}
}//End Classify
Run Code Online (Sandbox Code Playgroud)
这工作正常。
在图库图像分类中,我按如下方式传递图像
Bundle extras = getIntent().getExtras();
path = extras.getString("image_path");
File imgFile = new File(path);
Bitmap bmp = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
final int INPUT_SIZE = 299;
final int IMAGE_MEAN = 128;
final float IMAGE_STD = 128;
final String INPUT_NAME = "Mul";
final String OUTPUT_NAME = "final_result";
final String MODEL_FILE = "file:///android_asset/stripped_retrained_graph2.pb";
final String LABEL_FILE = "file:///android_asset/retrained_labels.txt";
final Classifier classifier;
classifier = TensorFlowImageClassifier.create(
getAssets(),
MODEL_FILE,
LABEL_FILE,
INPUT_SIZE,
IMAGE_MEAN,
IMAGE_STD,
INPUT_NAME,
OUTPUT_NAME);
final long startTime = SystemClock.uptimeMillis();
final List<Classifier.Recognition> results = classifier.recognizeImage(bmp);
final long lastProcessingTimeMs = SystemClock.uptimeMillis() - startTime;
ResultsView resultsView = null;
if (resultsView == null) {
resultsView = (ResultsView) findViewById(R.id.results);
}
resultsView.setResults(results);
}
}//End Classify
Run Code Online (Sandbox Code Playgroud)
有人可以指导我如何解决这个问题吗?
创建图像时是否有任何问题,因为我正在从字节数组创建“位图 bmp”图像(如果是相机捕获图像)和从图像路径(如果是画廊图像)?我从过去三天被困住并尝试了不同的解决方案,但注意到对我有用。请帮我。
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |