You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MLKit vision-quickstart中调整分辨率提升Aztec码检测速度?

解决MLKit vision-quickstart中Aztec码识别慢的问题:调整输入图像分辨率

一、定位相机分辨率配置代码

vision-quickstart项目中,相机输入分辨率的配置逻辑分两种情况:

  • 使用CameraX(新版示例):查找BarcodeScanningActivity或CameraXPreviewHelper类中的相机用例配置代码
  • 使用旧版CameraSource API:查找初始化CameraSource的代码块,通常在扫描处理器类或对应Activity中

二、修改分辨率参数

1. CameraX配置方案

在设置ImageAnalysis或Preview用例时,直接指定高分辨率参数:

// 配置ImageAnalysis(MLKit条码分析依赖此用例)
val imageAnalysis = ImageAnalysis.Builder()
    .setTargetResolution(Size(1920, 1080)) // 设置1080P分辨率
    .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) // 只处理最新帧,减少延迟
    .build()

// 同步调整Preview分辨率保持一致
val preview = Preview.Builder()
    .setTargetResolution(Size(1920, 1080))
    .build()

如果不确定设备支持的分辨率,可通过CameraManager获取设备支持的分辨率列表,优先选择接近1920x1080的选项。

2. 旧版CameraSource API配置方案

初始化CameraSource时直接设置预览分辨率:

CameraSource cameraSource = new CameraSource.Builder(context, detector)
    .setRequestedPreviewSize(1920, 1080) // 指定高分辨率预览
    .setRequestedFps(30.0f) // 维持30帧帧率,避免卡顿
    .build();

三、额外优化建议

  • 缩小检测区域:若Aztec码在火车票固定位置,设置MLKit的检测兴趣区域,减少计算范围:
// 示例:设置检测区域为屏幕中心1/2范围
Rect roi = new Rect(
    previewWidth / 4,
    previewHeight / 4,
    previewWidth * 3 / 4,
    previewHeight * 3 / 4
);
BarcodeScannerOptions options = new BarcodeScannerOptions.Builder()
    .setBarcodeFormats(Barcode.FORMAT_AZTEC) // 仅检测Aztec码,排除其他格式
    .setDetectorOptions(new DetectorOptions.Builder()
        .setRegionOfInterest(roi)
        .build())
    .build();
  • 开启硬件加速:在AndroidManifest.xml对应Activity中添加硬件加速配置:
<activity android:name=".BarcodeScanningActivity"
    android:hardwareAccelerated="true" />

内容的提问来源于stack exchange,提问作者swemaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:42:47