从iOS应用程序检测对象期间图像模糊



我编写了一个带有对象检测模型的应用程序,并在检测到对象时处理图像。我遇到的问题是,当以 99% 的置信度检测到对象时,但我正在处理的帧非常模糊。

我考虑过分析帧并尝试检测模糊度或检测设备移动,而不是在设备大量移动时分析帧。

除了我提出的解决方案之外,您还有其他建议只处理不模糊的照片或解决方案吗?谢谢

例如,在汽车中驾驶时,您可能会在检测"运动"时遇到问题。在这种情况下,看车内的东西不被认为是运动,而看外面的东西是(如果它离得不远的话(。这可能还有许多其他情况。

我会首先检查相机是否对焦。这与检查帧是否模糊不同,但可能非常接近。

我能想到的另一个选择是简单地检查 2 个或更多连续帧,看看它们是否相对相同。要做这样的事情,最好为例如 16x16 定义一个网格,您可以在其上评估类似的值。您需要手动将照片调整一半,直到达到 16x16 图像(2000x1500 将变为 1024x1024 -> 512x512 -> 256x256 ...然后抓取那些 16x16 像素并存储它们。一旦有足够的帧(至少 2 个(,您就可以开始比较这些值。GPU 非常适合调整大小,但这些 16x16 值可能最好在 CPU 上评估。您需要做的基本上是在 2 个连续的 16x16 缓冲区中找到平均像素差异。然后使用它来评估是否应启用检测。

这个过程可能仍然不完美,但从性能的角度来看,它应该是相对可行的。可能有一些快捷方式,因为某些工具可能已经进行了调整大小,因此您无需手动将它们"减半"。从理论角度来看,您正在创建扇区并计算其平均颜色。如果所有扇区在 2 帧或更多帧之间具有几乎相同的颜色,则相机很可能在这段时间内没有移动太多,并且图像不应因移动而模糊。但是,如果相机没有对焦,您可以有多个完全相同的连续帧,但实际上它们都是模糊的。如果您检测到手机移动,也会发生同样的情况。

最新更新