上下文
我正在构建一个应用程序,通过设备的相机模块执行实时对象检测。渲染与下面的图像类似。
假设我试着识别一个苹果,大多数时候这个应用程序会识别一个苹果。然而,有时,应用程序会识别错误的水果(比方说柠檬)在几个镜头。
目标
在我的代码中,由于对水果的识别触发了一个操作,所以我的目标是以编程的方式防止一个短暂的错误识别来触发一个操作,并且只考虑到大多数结果。
我试过的
我尝试过这样做:如果同一水果被识别为--在一行中的几个帧--我假设结果应该是正确的。但是当我的设备每秒处理几次图像识别时,即使是一个错误的猜测也可以连续几次被识别,从而导致错误的行为。
问题
是否有任何已知的技术来避免这种行为?
发布于 2021-12-15 19:04:44
我觉得你已经回答了你自己的问题。一般说来,对模型推理的解释是它自己的调整步骤。例如,在logistic回归任务中,您知道阈值不一定为0.5。事实上,在不同的阈值下,很常见的情况是通过调整阈值来查看召回率和精确度,并且您可以根据业务/产品问题选择一个起作用的阈值。(如果你不想错过任何欺诈,欺诈检测可能有利于高召回率.或高精度,如果你不想惹恼用户的许多假阳性))。
在视频中,这一广泛的概念被扩展到多帧,如你所知。你现在有了超参数的调,“总共多少帧?”还有“有多少帧投票给苹果”?
如果你是一个一个地分析水果沿着传送带,你知道每一块水果将在框架内X秒,你拍摄60英尺,也许你想要60 *X帧。也许你想要90%的帧一致。
您可能想要可视化您的检测器“翻转”检测的频率,这样您就可以对您的阈值进行业务/产品判断。
这个答案对于给你一个明确的线规则并不是很有帮助,但是我希望它能帮助你暗示实际上没有亮线规则。要设置关键的超参数,必须了解问题所在:
对于每一帧,confidence?
上面的algo假设您在步骤1之后采取了一个硬最大值。另一个选项是将所有100帧进行平均,并选择一个阈值。这是一个软标签的版本,上面的阿尔戈。
https://stackoverflow.com/questions/70262773
复制相似问题