如何放置稳定的标记(图像上的实心圆圈)。下一帧相机中哪个位置相同?

Posted

技术标签:

【中文标题】如何放置稳定的标记(图像上的实心圆圈)。下一帧相机中哪个位置相同?【英文标题】:How to put stable marker (solid circle on image) . Which will be at same position on next frame of camera? 【发布时间】:2017-08-11 19:45:39 【问题描述】:

我正在考虑在从相机输出拍摄的图像上放置标记,类似于 Google Photoscan 应用程序所做的。正如我所见,Google Photoscan 应用程序将四个实心圆圈放在叠加的图像上,然后将中心的空心圆圈移向所有四个实心圆圈并捕获四个图像。将它们缝合在一起以创建高质量的图像。

供参考的屏幕截图(即使在相同颜色的背景上,您可以看到的实心点也始终存在,即使您将相机移动并返回到初始位置,它们也会显示在相同的位置):

即使在相同颜色的背景上,您可以看到的实心点也始终存在 即使您将相机四处移动并返回到初始位置,它们也会显示在相同的位置

我很好奇他们是如何稳定这四个实心圆的?他们是否使用任何光流算法?或者任何运动传感器?我在白色或相同颜色背景上测试了应用程序,这些点保持稳定。

我使用光流算法(openCV 中的 Lucas-Kanade 方法)实现了此功能。但是当我在相同颜色背景或白色背景上使用它们时它们不稳定(如果不是,基本上在 Lucas-Kanade 算法中)找到它试图改变这一点的特征)。这是我的实现的屏幕截图:

【问题讨论】:

可能会使用相机的附加传感器,如指南针和陀螺仪? 嗨@Micka ...感谢您的回复...我尝试在ios中使用陀螺仪和加速度计...但它没有跟踪小动作...我想使用批处理使用gnebehay.com/tld TLD 跟踪而不是单点,但在 iPhone 上工作很慢......有什么办法可以实现 Lucas-Kanade 算法来跟踪单个位置的一批点......跨度> 我很确定它是基于传感器的。没有办法达到他们使用光流或 - 就此而言 - 任何图像处理算法所做的结果。你只是不能保证它在所有条件下都能完全一样地工作。 我在全黑和白背景下测试了它,它不起作用我猜他们这里没有使用任何传感器。 【参考方案1】:

这更像是一个简历问题。

我非常感谢@Jeek Axio 的回答。您可以在 android 设备上使用多个传感器作为 CV 问题的“主要”因素。

然而,作为最先进的 CV 方法,可以非常准确地解决这个跟踪问题。

您可以使用EKLT、PointTrack方法来跟踪特征点。

还有一个功能齐全的工具箱,名为FTK。

【讨论】:

【参考方案2】:

你快接近了。单独使用陀螺仪或指南针都不起作用。通过结合这些结果,我们可以满足您的要求。

成分 1:加速度计

手机中的加速度计用于检测手机的方向。陀螺仪,或简称陀螺仪,通过跟踪旋转或扭曲,为加速度计提供的信息增加了一个额外的维度。加速度计测量运动的线性加速度。

成分2:陀螺仪

在实践中,加速度计将测量设备的方向运动,但 无法在该运动期间准确解析其横向方向或倾斜,除非有陀螺仪来填写该信息。

成分 3:数字罗盘

通常基于称为磁力计的传感器的数字罗盘为手机提供了与地球磁场相关的简单方向。因此,您的手机始终知道哪个方向是北方,因此它可以根据您的物理方向自动旋转您的数字地图。

使用加速度计,您可以获得真正“嘈杂”的信息输出 这是响应式的,或者您可以获得缓慢的“干净”输出。 但是,当您将 3 轴加速度计与 3 轴陀螺仪结合使用时,您 获得既干净又响应迅速的输出。

回到您的问题,openCV 结果中的Lucas–Kanade method 延迟导致故障或传感器无法从您的设备提供准确的结果。

【讨论】:

以上是关于如何放置稳定的标记(图像上的实心圆圈)。下一帧相机中哪个位置相同?的主要内容,如果未能解决你的问题,请参考以下文章

带有实心圆圈的自定义圆形进度条

OpenCV:图像稳定

根据放置在相机上的视图裁剪图像的特定部分

如何在视频的第一帧之前放置静止图像?

如何使用椭圆计算透视变换

如何创建一个旋转的圆圈?