如何解决VNImageRequestHandler 可以接受 MLMultiArray 作为输入吗? 不转换为 UIImage
我的应用中有两个 MLModel
。第一个是生成一个 MLMultiArray
输出,该输出旨在用作第二个模型输入。
因为我正在努力使性能尽可能最佳。我正在考虑使用 VNImageRequestHandler
为它提供第一个模型输出 (MLMultiArray
) 并使用 Vision
resize 和 rectOfIntersent 来避免将第一个输入转换为图像,裁剪特征,以避免需要将第一个输出转换为图像,手动完成所有操作并使用常规图像初始值设定项。
类似的东西:
let request = VNCoreMLRequest(model: mlModel) { (request,error) in
// handle logic?
}
request.regionOfInterest = // my region
let handler = VNImageRequestHandler(multiArray: myFirstModelOutputMultiArray)
或者我必须经历来回转换?努力减少处理延迟。
解决方法
Vision 使用图像(因此得名;-))。如果不想使用图片,则需要直接使用 Core ML API。
如果第一个模型的输出确实是图像,最简单的方法是将该模型的输出类型更改为图像,以便获得 CVPixelBuffer 而不是 MLMultiArray。然后你就可以直接把这个 CVPixelBuffer 传递给下一个使用 Vision 的模型了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。