问题标签 [google-mlkit]

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 回答
120 浏览

firebase - FirebaseMLVision:架构 x86_64 的未定义符号:

我正在开发用于生物识别身份验证的 cordova 插件,现在我需要将 FirebaseMLVision 与 FirebaseMLVisionFaceModel 集成。当我将静态框架添加到项目中时,出现如下错误:

在此处输入图像描述

我已经对这个问题进行了很多研究,但我还没有找到解决方法。

我已经像这样链接了所需的框架

更新:我正在使用最新版本的 firebase ios sdks

0 投票
1 回答
662 浏览

ios - 在 Swift 5 中确保图像数据在 iOS 应用程序上的方向正确

我正在使用 Firebase ML Kit 进行人脸检测,在文档中它说:

如有必要,旋转图像,使其 imageOrientation 属性为 .up。使用正确旋转的 UIImage 创建一个 VisionImage 对象。不要指定任何旋转元数据 - 必须使用默认值 .topLeft。

我遇到了一个问题,我从互联网上传的照片往往可以正常工作,但是当我从相机拍照时似乎出现了问题。我有一种感觉,这是由于图像的定向方式造成的,我不知道应该如何检查图像以确保满足上面列出的这两个要求。我尝试打印出 images.imageOrientation 但它对我没有多大帮助,并且由于某种原因我无法使用UIImageOrientationUp我在不同的stackoverflow答案中看到的那个。

这是我尝试打印图像方向时打印的内容:

无论如何,如果有人可以帮助我编写一个函数,我可以使用它来确保我将要传递给 ML Kit 的图像的方向是正确的,我将非常感激。谢谢!我是 iOS 新手,这是我的第一个“真实”应用程序,所以如果有更好或更简单的方法来实现我的目标,我很抱歉。

*** 所以我发现当我用相机拍照时,它的方向是 .right,但在实际的 imageView 上看起来很好。我尝试将方向更改为 .up 但现在图像实际上向右旋转并且检测仍然失败......我想我需要将方向更改为 .Up 如果可能的话,无需实际旋转图像。因为当我尝试设置值时,它说它是一个只能获取的属性

0 投票
1 回答
305 浏览

ios - 使用 MLKit ios swift 尝试化妆

任何想法,如何在面部检测中将口红涂在嘴唇上。我已经完成了颜色,但我想展示光泽和闪亮。关于如何在 MLKit ios 应用程序中使用纹理和阴影的任何想法

只需找到嘴唇点并创建 CAShapelayer 图层,然后填充颜色。在 ARKit 中,我们可以使用场景包和场景视图,因此我们可以轻松添加材质和纹理等等。但是我们如何在 mlkit 中使用

[![在此处输入图像描述][1]][1]

Q1。是否可以在 mlkit 中将场景视图用于材质和纹理。

Q2。或者如何在所有点上绘制图像(嘴唇、眼睛、眉毛)

我试过这样

但没有运气!

0 投票
1 回答
877 浏览

flutter - 如何使用 Firebase_Camera_ml_vision 从实时人脸检测中拍照

我使用 flutter_camera_ml_vision 2.2.5 并从他们的存储库中获取人脸检测示例。请问有人能告诉我如何从现场检测中拍照吗?

这是代码的链接:- https://github.com/rushio-consulting/flutter_camera_ml_vision/blob/master/example/lib/main_face.dart

0 投票
2 回答
2330 浏览

android - 需要在使用 MLKit 和 Camera2 进行人脸检测期间捕获静止图像

我正在使用Camera2MLKit开发人脸检测功能。

在开发人员指南的性能提示ImageFormat.YUV_420_888部分中,他们说如果使用 Camera2 API 以格式捕获图像,这是我的情况。

然后,在人脸检测器部分,他们建议使用尺寸至少为 480x360 像素的图像进行实时人脸识别,这也是我的情况。

好了,走吧 !这是我的代码,运行良好

现在,我想捕捉静止图像......这是我的问题,因为理想情况下,我想要:

  • 全分辨率图像,或至少大于 480x360
  • 以JPEG格式保存

Camera2Basic示例演示了如何捕获图像(视频和慢动作的示例正在崩溃)并且MLKit 示例使用了如此古老的相机 API!幸运的是,我成功地混合了这些样本来开发我的功能,但我未能捕捉到具有不同分辨率的静止图像。

我想我必须停止预览会话才能重新创建一个进行图像捕获,但我不确定......

我所做的是以下,但它是在 480x360 中捕获图像:

如果我取消注释新的 ImageReader 实例,我有这个例外:

java.lang.IllegalArgumentException:CaptureRequest 包含未配置的输入/输出表面!

谁能帮我 ?

0 投票
1 回答
232 浏览

swift - 如何确保正确处理 VisionImage(来自 Google 在 Firebase 中的 ML Kit)对象?

我正在尝试从名为“quote”的 Assets 文件夹中的图像中读取文本。但是每次都打印出错误“错误 2:无法处理 VisionImage”。

如何确保正确处理 VisionImage 并从图像“报价”中获取文本?

0 投票
1 回答
158 浏览

android - zzrb.zza 导致每个其他 cameraX analyzer.analyze 帧除以零算术异常

所以我要重新开始一个我几个月没有碰过的项目。几天前我在搞砸它,没有任何问题(至少在我之前的最新帖子之后)。不管出于什么原因,今天我去运行它,我已经为这个问题苦苦挣扎了几个小时......

问题:

我正在创建一个 FIrebaseVisionImage 对象以用于各种 ml 视觉任务。

在此之前非常标准的设置(类似于他们在使用带有 ImageAnalysis.Analyzer 的 CameraX的示例中的设置。无论出于何种原因,我现在遇到了这个我以前没有遇到的错误。

到目前为止我所做的:

好吧,没问题,让我只是堆栈跟踪。我看到这一行:

是问题。好的,很酷,让我们找出这些值。

让我们向后工作:

  1. 当我调用 fromMediaImage FirebaseVisionImage 它应该返回这个(基于我的图像):

    /li>
  2. K 酷,所以我们知道这里有问题的方法是: zza(Plane[] var0, int var1, int var2)

  3. K 那么接下来的行(就错误而言)是: zza(var0[0], var1, var2, var4, 0, 1);
  4. 然后调用: zza(Plane var0, int var1, int var2, byte[] var3, int var4, int var5)
  5. 最后调用: int var9 = var2 / var8

现在,我是一个 Android Studio 新手,所以我不知道如何在跟踪时获取类文件中的值,所以我回到了创建 FirebaseVisionImage 的位置,就在此之前我这样做了:

这导致:

480

0

0

640

639

K 井 639/640 是 0.9.... 现在如果我记得 Java 是如何工作的,int 除法会向下舍入 - 除非我假设明确覆盖?反正。KI 猜想那是完全有道理的。好吧,如果我没记错的话,我从现在到它工作时唯一改变的是依赖升级,我实际上降级了,看看这是否会影响它,在查看发行说明后它不应该有。

编辑:所以我发现实际上当我记录我之前所做的事情时,我注意到之前正在分析 4 帧,结果如下:

日志 1:

480

480

307200

640

307839

日志 2:

480

0

0

640

639

日志 3:

480

480

307200

640

307839

崩溃信息

日志 4:

480

0

0

640

639

我被困在哪里:(

错误发生在第三个日志之后不到 100 毫秒,之后近 300 毫秒,第四个日志被命中。

所以我的假设是缓冲每隔一帧有问题,因为 .remaining() 方法会导致每隔一帧出现 0,这是不应该发生的。不幸的是,我对此知之甚少,所以我想看看是否有人能指出我正确的方向 D:从好的方面来说,我在发布这篇文章的整个过程中学到了很多东西(我在这篇文章上工作了大约45分钟)

下面是我的整个相机功能,我认为它和 D 一样存在很多问题:

0 投票
1 回答
552 浏览

android - 使用 firebase MLKit 运行多个图像处理器

我正在尝试在 android 的实时摄像头提要上使用firebase MLKit检测对象和文本。有特定的识别器(FirebaseVisionTextRecognizerFirebaseVisionObjectDetector)来处理图像。如果我一一使用这些识别器,它工作得很好,我能够得到期望的响应。

但是,我想使用与 Google Lens 应用程序相同的相机源同时检测对象和文本。为了实现这一点,首先,我尝试同时运行两个识别器,但延迟时间更长(执行特定帧需要时间),因为两者都是按顺序运行的,因此只有文本检测有效,而对象检测无效。这意味着对象检测没有结果。

然后,我尝试并行执行两个识别器,延迟减少但不足以让检测 API 返回响应。当摄像头供稿中没有文本时,对象检测效果很好,但是当摄像头供稿中有文本时,延迟会增加,因此没有跟踪对象。

注意:我检查了检测后函数调用的延迟(检测到对象后执行的代码),它不需要太多时间。在并行执行的情况下,识别器需要更多时间来处理图像。我正在三星 Galaxy S30s 手机上进行测试,我猜它的处理器并没有那么差。

代码中的一些概述:

  1. 使用FirebaseVisionObjectDetectorOptions.STREAM_MODEenableMultipleObjects=falseenableClassification=false进行对象检测
  2. FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21在构建 FirebaseVisionImageMetadata 时使用格式
  3. 根据 Google 定义的最佳实践,如果检测正在进行中,则丢弃最新的帧
  4. 使用 OnDeviceObjectDetector 进行对象检测
  5. 对于文本检测,我使用 OnDeviceTextRecognizer

我需要帮助来了解 Google Lens 应用程序如何同时执行多个识别器,但不是在我的应用程序中。我可以做些什么来在同一个相机框架上启用多个识别器?

0 投票
1 回答
527 浏览

android - 如何在android中使用Firebase MLKit进行文本检测时制作平滑的覆盖界面

我在我的 android 应用程序中集成了 firebase MLKit。我正在使用设备上的 TextRecognizer API 来检测实时摄像机源上的文本。它检测到文本,但处理图像需要很长时间(从 300 毫秒到 1000 毫秒)。由于延迟较大,叠加层不像 Google 镜头应用程序那样平滑。

我该怎么做才能使检测到的文本覆盖在帧之间获得平滑过渡,从而以更大的延迟进行处理?

另外,我注意到谷歌镜头应用程序将文本检测为一个完整的句子,而不是显示文本块。谷歌镜头应用程序如何将文本检测为句子/段落?

0 投票
1 回答
51 浏览

android - 如何查看我的 android firebase mlkit 调用的 firebase 服务器日志?

我有适用于这个项目的所有代码:使用 Nexus 6P API 29 模拟器“使用 ML Kit for Firebase:Android 检测图像中的对象”。(请参阅我在 stackoverflow 上的其他自我回答的问题。)请注意,到目前为止,它与 Nexus 6P API 29 配合得最好。

我现在想看看我的本地运行是访问firebase服务器并使用其更强大的算法,还是使用本地算法,所以我自然想查看服务器日志。我在我的 firebase 控制台(console.firebase.google.com)上环顾四周,但我还没有看到它。

如果我能实时看到日志就好了,即在 Android Studio 中逐步调试我的本地代码时。

一般如何查看服务器日志?