将对象检测模型嵌入 iOS 应用程序,并将其部署在 UIView 的内容而不是相机流上?

Posted

技术标签:

【中文标题】将对象检测模型嵌入 iOS 应用程序,并将其部署在 UIView 的内容而不是相机流上?【英文标题】:Embedding an object detection model into iOS app, and deploy it on a UIView's content instead of camera stream? 【发布时间】:2019-06-13 09:04:48 【问题描述】:

我已经在我的自定义类上通过 tensorflow 对象检测 API 重新训练了 ssd_mobilenet_v2。我现在有一个 frozen_inference_graph.pb 文件,可以嵌入到我的应用程序中。 tutorials on tensorflow's github 和网站仅显示如何将其用于 ios 内置摄像头流。相反,我有一个用于 iPhone 的外部摄像头,它可以流式传输到 UIView 组件。我希望我的网络能够检测到其中的对象,但我的研究并没有指向任何明显的实现/教程。

我的问题:有人知道这是否可能吗?如果是这样,实现这样的事情的最佳方法是什么?张量流精简版?张量流手机?核心机器学习?金属?

谢谢!

【问题讨论】:

【参考方案1】:

在该 TensorFlow 源代码中,文件 CameraExampleViewController.mm 中有一个方法 runCNNOnFrame,它将 CVPixelBuffer 对象作为输入(来自相机)并将其内容复制到 image_tensor_mapped.data() .然后它在 image_tensor 对象上运行 TF 图。

要使用不同的图像源,例如 UIView 的内容,您需要先将该视图的内容读入某种内存缓冲区(通常是 CGImage),然后将该内存缓冲区复制到image_tensor_mapped.data().

将 TF 模型转换为 Core ML(如果可能)可能更容易,然后使用 Vision 框架运行模型,因为它可以直接使用 CGImage 作为输入。这使您不必先将该图像转换为张量。

【讨论】:

以上是关于将对象检测模型嵌入 iOS 应用程序,并将其部署在 UIView 的内容而不是相机流上?的主要内容,如果未能解决你的问题,请参考以下文章

ios - ARKit 3D模型素材

如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?

使用 VSTS 构建 ionic 应用并将其部署到 android 和 IOS

目标检测模型从训练到部署!

CoreML:iOS:如何获取检测模型中心的 2D 坐标

如何将 sklearn 模型嵌入移动设备以供离线使用? [关闭]