ios - iOS 应用程序进行对象检测时图像模糊

标签 ios object detection coreml

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

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

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

最佳答案

例如,在开车时,您可能无法检测到“运动”。在这种情况下,看车内的东西不算运动,而看车外的东西算运动(如果距离不远的话)。可能还有许多其他情况。

我会先检查相机是否在 focus 中.这与检查帧是否模糊不同,但可能非常接近。

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

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

关于ios - iOS 应用程序进行对象检测时图像模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52656098/

相关文章:

javascript - 使用 jQuery 对象的理解

c++ - move 对象 (OpenGL)

python - OpenCV 错误 : Bad argument in ERClassifierNM1

ios - Swift - 如何在项目中使用资源 excel 文件打开 excel 应用程序? (无法打开文件错误)

ios - Swift 3 - Android 相当于使用日历类过去 12 个月

ios - performSegueWithIdentifier 不会推送 View

ios - 如何让 iCarousel 与 UITableViewController 中的 headerView 一起工作

Typescript - 在参数中排除其他类型的键

linux - 使用用于检测文件的文件管理器模块检测 Linux 中的文件类型?

android - 使用 TarsosDSP 进行音调检测