我编写了一个带有对象检测模型的应用程序,并在检测到对象时处理图像。我遇到的问题是当以99%的置信度检测到对象时,但是我正在处理的帧非常模糊。
我考虑过分析框架,并尝试检测模糊或检测设备移动,而在设备移动很多时不分析框架。
除了我所建议的以外,您还有其他建议仅处理不模糊的照片或解决方案吗?谢谢
答案 0 :(得分:1)
例如在驾车时,您可能在检测“运动”时遇到问题。在这种情况下,看着车内的东西不算是运动,而看着车外的东西则算是运动(如果距离不远)。可能还有很多其他情况。
我将从检查相机是否在focus中开始。不同于检查帧是否模糊,但可能非常接近。
我能想到的另一种选择是简单地检查2个或更多的顺序帧,看看它们是否相对相同。为此,最好定义一个网格(例如16x16),在该网格上评估相似的值。您将需要手动映射照片,这意味着将其大小调整为一半,直到获得16x16图像(2000x1500将变为1024x1024-> 512x512-> 256x256 ...)。然后抓取那些16x16像素并将其存储。一旦有足够的帧(至少2个),就可以开始比较这些值。 GPU是调整大小的完美选择,但那些16x16值可能是在CPU上评估最好的。您需要做的基本上是找到2个连续的16x16缓冲区的平均像素差。然后使用它来评估是否应该启用检测。
此过程可能仍不完美,但从性能角度来看应该是相对可行的。可能存在一些捷径,因为某些工具可能已经在调整大小,因此您无需手动将它们“减半”。从理论上讲,您正在创建扇区并计算其平均颜色。如果所有扇区在2个或更多帧之间具有几乎相同的颜色,则相机很可能在这段时间内没有移动太多,因此图像不应因移动而模糊。即使相机没有对准焦点,您仍然可以有多个顺序相同的帧,但实际上它们都是模糊的。如果检测到手机移动,也会发生同样的情况。