问题标签 [android-vision]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
877 浏览

android - 尝试开始人脸检测时访问 ByteBuffer 时出错

我正在创建一个人脸检测应用程序。当我尝试启动人脸检测时,出现以下错误:

这是我的代码的一部分:

当我执行 mCameraSource.start() 时会显示错误,即使这样做时没有检测到错误并且应用程序不会崩溃,它只是在控制台上重复显示该错误。

0 投票
2 回答
12868 浏览

java - 来自视觉 api 的条码扫描仪的预览尺寸

我正在使用来自 Google 的 Android Vision API 的条形码阅读器示例。预览大小似乎没有填满整个可用空间(我使用的是 Nexus 4,预览右侧有一个白色未使用的空间,大约是宽度的 1/3)。

我希望能够在各种设备上运行此示例,并始终让它填满整个可用空间。

所以我一直在玩的是:

有任何想法吗?

谢谢!

0 投票
0 回答
1510 浏览

android - 带有视频流的 Android Vision 人脸检测

我正在尝试将人脸检测 api 集成到我从鹦鹉 bebop 无人机接收的视频流中。

流使用 MediaCodec 类 ( http://developer.android.com/reference/android/media/MediaCodec.html ) 解码,这工作正常。无需将解码的帧数据渲染到表面视图,我可以使用来自解码器的解码帧数据成功访问 ByteBuffer。

我还可以从解码器访问解码的图像对象(类https://developer.android.com/reference/android/media/Image.html),它们有一个时间戳,我得到以下信息:

  • 宽度:640
  • 身高:368
  • 格式:YUV_420_888

我尝试做的第一件事是通过 Framebuilder (android/gms/vision/Frame.Builder) 为视觉 api (com/google/android/gms/vision/Frame) 生成 Frame 对象

这段代码没有给我任何错误,而且 googleVisFrame 对象不为空,但是当我调用 时googleVis.getBitmap(),我得到null. 随后,面部检测不起作用(我想是因为我的视野框架对象存在问题......)

即使这可行,我也不确定如何使用视觉 api 处理视频流,因为我找到的所有代码都演示了内部摄像头的使用。

如果你能指出我正确的方向,我将非常感激。

0 投票
2 回答
7982 浏览

android - 如何自动获取检测到的条码/二维码

我尝试了新的 Google Play 服务功能 - 条形码/QR 扫描仪。在示例应用程序中,通过点击按钮开始扫描,点击时也会返回结果。

有没有办法改变它的行为以立即返回第一个检测到的条形码/QR?

我不是第一个对此感到好奇的人。

先感谢您。

0 投票
4 回答
12912 浏览

java - 使用 Android 的 Mobile Vision API 扫描二维码

我按照本教程学习了如何构建一个可以扫描 QR 码的 Android 应用程序。

这是完整的代码。我像这样使用等级添加了 Google Play 服务compile 'com.google.android.gms:play-services:7.8.0'

AndroidManifest.xml

activity_main.xml

MainActivity.java

我在运行 Android 4.4.2 的 HTC Desire 816 上对此进行了测试。但这似乎不起作用。相机视图处于活动状态,但当指向 QR 码时,它没有检测到任何东西。但也不会发生错误或崩溃。

我错过了什么吗?

0 投票
2 回答
3662 浏览

java - 适用于 Android 的扫描仪(条形码)API 未检测到条形码

我想制作一个应用程序作为条形码扫描仪。我创建了一个名为 android vision 的条码扫描器 api

我可以启动应用程序并将相机放在条形码上。但日志只说:

11-20 11:21:29.353 20243-20243/com.google.android.gms.samples.vision.barcodereader D/条形码阅读器:未检测到条形码

谁能告诉我,为什么没有检测到条形码?

0 投票
1 回答
3231 浏览

java - Google Mobile Vision:没有 CameraSource 的 FaceDetector 性能不佳

现在,我们的应用程序正在成功运行 Snapdragon SDK。我们正在尝试在我们的项目中实现 Vision 8.3.0 的 FaceDetector,以增加兼容设备的数量。我们不能使用 CameraSource,因为我们依靠自定义相机 + 表面来提供某些功能。我们希望尽可能多地重用代码,而 Snapdragon SDK 在我们当前的实现中表现出色。

工作流程如下:

1) 检索相机预览

2) 将传入的字节数组转换为位图(由于某种原因,我们还没有设法使用 ByteBuffers。提供并验证了图像大小、旋转和 NV21 图像格式,但没有找到人脸)。位图是已经在处理线程内部初始化的全局变量,以避免分配速度变慢。

3)通过receiveFrame馈送检测器

到目前为止的结果还不够好。即使我们禁用了地标和分类,检测也太慢(2-3 秒)且不准确。

问题是:是否可以在不使用前者的情况下复制 CameraSource + Detector 的性能?是否必须使用 CameraSource 才能使其与实时输入一起使用?

提前致谢!

编辑

按照下面的 pm0733464 建议,我尝试使用 ByteBuffer 而不是 Bitmap。这是我遵循的步骤:

从这里开始,字节数组的创建:

以这种方式构建框架会导致找不到人脸。但是,使用位图可以按预期工作:

0 投票
3 回答
6934 浏览

android - 使用 Google Vision API 检测眨眼

我正在使用视觉 API 进行人脸检测,现在我想实现眨眼,但视觉 api 在一只眼睛关闭时仍能检测到眼睛。

请帮助我如何实现眨眼功能。

0 投票
0 回答
670 浏览

android - Google Vision API:支持 QRCode 检测器上的负色

我正在使用 Vision API 在我的应用程序中开发 QRCode 阅读器。我意识到 API 无法检测负色。我的客户有数千张蓝色背景上带有白色二维码的卡片。

附件是 2 个二维码的示例。第一个效果很好(默认颜色)。第二个没有(蓝底白字)。一些商业 QRCode 阅读器能够阅读它,但我不知道他们是如何做到的。

我真的想避免使用第三方库和应用程序来做到这一点。到目前为止,我在相机上使用了 NEGATIVE 效果。但这是我也想避免的解决方法。

即时反转位图非常慢并且是不可能的。

我在某处读到,在 QRCode 规范中检测负色是可选的,而且 Google Vision API 似乎不支持它。建议?

感谢您的关注。

二维码工作

二维码不工作

0 投票
1 回答
1312 浏览

android - 使用 Google Vision API 进行面部检测显示在 VideoView 上

我一直在我的应用程序中使用来自 Google Play Services 的 Vision API,并且在我的设备(带有 Android 5.1 的 Nexus 7 2012 和带有 android 4.2.2 的更便宜的平板电脑)中一切正常,但在某些生产设备中却没有.

我们的视觉 api 与面部检测框架在我们的应用程序打开时一直运行,因此当面部检测检测到他时,应用程序会更改内容。

问题是当我们在显示一些视频VideoView的同时人脸检测正在工作时,因为我们注意到某种“幽灵”出现在 上面VideoView,我们已经看到这个“幽灵”是预览人脸检测是实时的。

解释起来很复杂,所以我们录制了一个视频来更好地说明这个问题:视频

在这个时候,我已经尝试过这个东西:

  • 改变 的尺寸.setRequestedPreviewSize(int, int),我们已经看到,基于这个尺寸,“幽灵”也改变了它的尺寸,所以我们意识到预览尺寸是导致问题的那个。

  • .setRequestedPreviewSize(int, int)从内部删除对的调用CameraSource.Builder,它默认其尺寸为 1024x768,正如您所见,CameraSource“幽灵”用它填充整个屏幕。

  • 尝试另一个框架来播放视频,删除VideoView和使用另一个框架TextureView也无济于事,它仍在显示鬼魂。

  • 使用不同的视频格式也无济于事

我认为当多个 SurfaceView 或 SurfaceTexture 同时工作时,这可能是某种问题,一个在另一个之上,但这是我第一次使用面向多媒体的应用程序。

有人知道可能是什么问题?

提前致谢。

编辑

只是为了澄清我发布我使用的代码。

这是我在视频中显示的应用程序中使用的方法:

我使用一种风格来玩不同类型的东西,这个项目只是为了让这个功能的测试更容易。

调用该onResume()方法时,我从实例加载视频File并启动CameraSource实例

只是为了澄清:

  • 我们使用 FaceTracker 只是为了检测人脸,并使用它public void onNewItem(int id, Face face)public void onMissing(Detector.Detections<Face> detections)

  • 要显示的 xml 布局VideoView是: