【问题标题】:Android CameraX stuck with two use casesAndroid CameraX 卡在两个用例上
【发布时间】:2020-03-01 19:26:29
【问题描述】:

我是 Android 开发新手(更多 Python 和 ML 工程师),但想尝试 TensorFlow 中的这个示例:TF Lite Transfer Learning.

我在 Android Studio 上成功运行了它,但发现我无法对应用程序执行任何操作,因为它运行速度非常慢。我正在挖掘代码以找到根本原因并发现了这一点。

在函数CameraFragment::startCamera() 中创建预览上下文

    PreviewConfig config = new PreviewConfig.Builder()
    .setLensFacing(LENS_FACING)
    .setTargetAspectRatio(screenAspectRatio)
    .setTargetRotation(viewFinder.getDisplay().getRotation())
    .build();

Preview preview = new Preview(config);

preview.setOnPreviewOutputUpdateListener(previewOutput -> {
  ViewGroup parent = (ViewGroup) viewFinder.getParent();
  parent.removeView(viewFinder);
  parent.addView(viewFinder, 0);

以及我们可以保留为空的其他用例:

    final ImageAnalysisConfig imageAnalysisConfig =
        new ImageAnalysisConfig.Builder()
                .setLensFacing(LENS_FACING)
                .setTargetResolution(new Size(224, 224))
                .setCallbackHandler(new Handler(inferenceThread.getLooper()))
                .setImageReaderMode(ImageAnalysis.ImageReaderMode.ACQUIRE_LATEST_IMAGE)
                .build();
final ImageAnalysis imageAnalysis2 = new ImageAnalysis(imageAnalysisConfig);
imageAnalysis2.setAnalyzer((image, rotationDegrees) -> { });

我们有一条新线让它们栩栩如生:

CameraX.bindToLifecycle(this, preview, imageAnalysis2);

这就是问题的开始。如果我们这样保留它们,应用程序将无法使用。但是,如果我们只保留一个(任何一个),我们可以使用该应用程序以使所有导航都正常工作。你知道是什么导致了这种行为吗?

【问题讨论】:

    标签: android android-studio tensorflow machine-learning android-camerax


    【解决方案1】:

    这个build.gradle 使用的是相当旧的版本;迁移到版本1.0.0-beta01

    【讨论】:

    • 将 API 更改为 1.0.0-beta01 后,它就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多