gpt4 book ai didi

java - 确定多摄像机设置中哪个摄像机检测到运动

转载 作者:行者123 更新时间:2023-12-02 13:42:33 25 4
gpt4 key购买 nike

我的设置应该能够同时运行多个摄像头。这些相机检测物体(不是以面向对象的方式,而是物理物体,如椅子)并为这些物体提供唯一的 ID。

但是,我正在考虑如何确定从哪个摄像机检测到运动。之所以需要这样做,是因为如果某个物体(可能是人或物体)从相机 1 移动到相机 2,ID 应该保持不变。

我没有办法解决这个问题,所以才来问你。然而,我的设置看起来像这样。

public class Camera extends Thread{
public int cameraID;
private ImageHandling imgHandling;

public void run(){
while(true){
//read images from camera
.
.
.
imgHandling.initialize(this);
//imgHandling does all the image analysis and also handles the tracking AND the motion detection. This should not be relevant for this question.
//The identification of different movements is also done in the imageHandling.
}
}
}

这意味着每个相机都有自己的 ImageHandling 类。此外,每个相机都是一个线程,图像的获取应该在运行方法中进行。此外,每个摄像头都有一个唯一的 ID,即如果设置有 3 个摄像头,则 ID 将为 1、2 和 3。

我正在使用 Java 进行编程,但我认为解决方案不必特定于语言。

最佳答案

根据聊天中的其他信息,基本问题更多的是“我们如何跟踪移动的物体”,而不是“我们如何找出哪个摄像头检测到移动”。

为了完整起见,“我们如何找出哪个摄像头检测到移动”实际上相当简单(并且基本上包含在问题中)。将 Camera 实例传递给 ImageHandling 类。

接下来发生的事情会变得更有趣......

一旦相机检测到运动,您真正需要做的是拥有一个 MovingObject 类来跟踪一个移动对象。显然,某个地方的某个经理需要保留一个移动对象列表。

猜测你会得到类似的东西:

class MovingObject
{
Camera firstDetectedOn;
int speed;
int directionOfMotion;
int width;
int height;
}

管理器需要聪明并允许对象合并。例如如果在相机 1 上看到一个物体,然后在相机 2 上看到一个相似的物体(大小/方向/速度),那么它们可能是同一个物体,而不是两个独立的物体。添加物理布局 - 如果 cam2 位于 cam1 的东边,并且 cam1 中的对象向东移动,那么与 cam1 中的对象向西移动相比,它更有可能是相同的。

一种方法可能是将这些项目保留为唯一的对象,并在它们“可能”相同的地方记录。如果对象从 cam1 消失,但您知道它可能是在 cam2 上找到的对象,那么您可以假设它实际上是相同的。

关于java - 确定多摄像机设置中哪个摄像机检测到运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com