我已经通过自定义类上的tensorflow对象检测API重新训练了ssd_mobilenet_v2。现在,我有了一个Frozen_inference_graph.pb文件,可以将其嵌入到我的应用程序中。 tutorials on tensorflow's github和网站仅显示如何将其用于iOS内置相机流。取而代之的是,我有一个用于iPhone的外部摄像头,该摄像头流到UIView组件。我希望我的网络能够检测到其中的物体,但是我的研究并未指出任何明显的实现/教程。
我的问题:有人知道这是否可能吗?如果是这样,实现这种事情的最佳方法是什么? tensorflow-lite?张量流移动?核心ML?金属吗?
谢谢!
答案 0 :(得分:2)
在该TensorFlow源代码中,文件 CameraExampleViewController.mm 中的方法runCNNOnFrame
采用CVPixelBuffer
对象作为输入(来自相机)并复制其内容进入image_tensor_mapped.data()
。然后,它在该image_tensor
对象上运行TF图。
要使用其他图像源,例如UIView
的内容,您需要先将该视图的内容读取到某种类型的内存缓冲区(通常为CGImage
)中,然后复制该内存缓冲区放入image_tensor_mapped.data()
。
将TF模型转换为Core ML(如果可能)可能会更容易,然后使用Vision框架运行模型,因为可以直接使用CGImage
作为输入。这使您不必先将图像转换为张量。