首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进MLKit目标检测

改进MLKit目标检测
EN

Stack Overflow用户
提问于 2020-10-09 01:27:03
回答 1查看 647关注 0票数 1

问题:

使用MLKit,我熟悉如何使用自定义分类器模型,但是有什么方法可以定制或重新训练对象检测模型吗?

背景

我正在从事一个机器人项目,机器人必须探测其他机器人和充电站。我正在对图像分类器进行再培训,以便正确地对机器人和充电站进行分类,这看起来相当直接,给出了足够大的图像集。为了生成这个图像集,我与机器人进行随机行走,每次物体被识别时让它拍摄一张照片,然后继续每0.5秒拍摄一张照片,而所述对象在视图中。我还将图像裁剪到边界框,并使用分类器命名它,以便于分组。在运行了半个多小时后,我检查了图像,发现机器人本身在各种分类器下都很容易被检测到,但是充电站却不是。我的随机行走产生了大约1000张图像,其中100-150张是关于其他机器人的,而我只拍到了大约5张充电站的图像。

当我试图手动定位在充电站周围的机器人时,我注意到在检测到物体之前,位置必须非常具体。这让我产生了这样的想法:我想以某种方式重新训练目标检测模型,以更好地识别我的充电站。从文档中,我能找到的只是重新训练分类器的方法,而不是对象检测。有办法这样做吗?

代码

虽然我已经对它进行了相当多的修改,以完成图像捕获和其他机器人操作,但我所使用的基本代码是默认的带有自定义分类器的视觉-快速启动对象检测模块。

图片

注意,充电站(右)比机器人上的一个轮子(左)要大一点,如果这也有助于视觉化的话,它适合在机器人的车轮之间。

编辑1

我刚刚试用了TF对象检测样本应用程序,它位于MLKit之外,而且很明显,这在检测充电站和一般较小的物体方面做得更好。我尝试在mlkit中使用本例中使用的检测模型,但看起来它们不兼容。我正在犯错误:

代码语言:javascript
复制
E/native: calculator_graph.cc:772 INVALID_ARGUMENT: CalculatorGraph::Run() failed in Run: 
    Calculator::Open() for node "[BoxClassifierCalculator, BoxClassifierCalculator with output stream: detection_results0]" 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). [type.googleapis.com/mediapipe.StatusList='\n\xb7\x02\x08\x03\x12\x85\x02\x43\x61lculator::Open() for node \"[BoxClassifierCalculator, BoxClassifierCalculator with output stream: detection_results0]\" 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).\x1a+\n$tflite::support::TfLiteSupportStatus\x12\x03\x34\x30\x30']

也许我可以重做这个来满足模型要求?还是我想把正方形的钉子插进圆孔里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-09 18:39:55

目前,我们没有提供API来替换MLKIt中的ODT检测器。我们有计划让探测器也可以互换。

从TFLite样本中提取的模型是一个包含检测器和分类器的单一模型,而MLKit中的模型是两个分离的模型。只交换检测器模型将是不平凡的。让我们先试试下面的一些解决办法:

当我试图手动定位在充电站周围的机器人时,我注意到在检测到物体之前,位置必须非常具体。

为了使充电站更容易被检测,您可以尝试将更多的纹理在充电点与背景相比。例如,充电点边缘的不同颜色点。

另外,如果您使用的是单一对象模式(主对象),它要求对象位于图像帧的中心。您还可以尝试多个对象模式,该模式不需要中心上的对象,但可能需要筛选出其他非感兴趣的检测结果。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64272741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档