如果我在MLKit中使用Pre-Trained TFLite Object detection model,我会收到以下错误:
CalculatorGraph::Run() failed in Run:
Calculator::Open() for node "BoxClassifierCalculator" failed: #vk Unexpected number of dimensions for output index 0: got 3D, expected either 2D (BxN with B=1) or 4D (BxHxWxN with B=1, W=1, H=1).
你知道我做错了什么吗?
3条答案
按热度按时间izkcnapc1#
ML Kit目前还不支持自定义对象检测模型。ML Kit目前只允许开发人员使用自定义图像分类模型。所有与ML Kit兼容的TFLite模型都列在这里:
https://tfhub.dev/ml-kit/collections/image-classification/1
如果您想进行对象检测,可以试用ML Kit的对象检测API:https://developers.google.com/ml-kit/vision/object-detection
如果您想使用自定义对象检测模型,您可以尝试TFLite任务库:
https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview .
cgyqldqp2#
好吧,因为我发现通过这篇文章在这里的SO,我继续寻找其他的选择。和教程张贴在这里:Tensor Flow Lite OBJ检测很好地完成了这项任务。
首先添加了
这段简单的代码就像一个护身符,显然我必须做一些改变来反映我的特定需求,但它的检测没有错误。
在那个链接中给出了更深入的解释,太多了,不能扔在这里。希望这对其他人有帮助。
qjp7pelc3#
现在您可以使用Google的Vertex AI/AutoML Cloud服务创建MLKit自定义模型,它可以使用
ImageAnalysis Analyzer
与CameraX API配合使用。按照here指南,通过浏览器使用您自己的图像创建和训练TFLite模型(或者如果你有很多要上传的话,使用谷歌云CLI)。之后,this guide指导您完成将模型添加到项目中所需的几乎所有内容,以及如何使用MLKit检测和标记对象。