简体   繁体   English

我应该使用哪种对象识别算法?

[英]Which object recognition algorithm should I use?

I am pretty new to CV, so forgive my stupid questions... 我刚开始接触简历,所以请原谅我的愚蠢问题...

What I want to do: 我想做的事:
I want to recognize a RC plane in live video (for now its only a recorded video). 我想在实时视频中识别RC飞机(目前仅是录制的视频)。

What I have done so far: 到目前为止,我所做的是:

  • Differences between frames 框架之间的差异
  • Convert it to grey scale 将其转换为灰度
  • GaussianBlur 高斯模糊
  • Threshold
  • findContours findContours

Here are some example frames: 以下是一些示例框架:

But there are also frames with noise, so there are more objects in the frame. 但是也有带有噪点的框架,因此框架中有更多物体。

I thought I could do something like this: 我以为我可以做这样的事情:

Use some object recognition algorithm for every contour that has been found. 对找到的每个轮廓使用某种对象识别算法。 And compute only the feature vector for each of these bounding rectangles. 并仅为这些边界矩形中的每一个计算特征向量。

Is it possible to compute SURF/SIFT/... only for a specific patch (smaller part) of the image? 是否可以仅针对图像的特定色块(较小部分)计算SURF / SIFT / ...?

Since it will be important that the algorithm is capable of processing real time video I think it will only be possible if I don't look at the whole image all the time?! 因为算法能够处理实时视频非常重要,所以我认为只有当我不一直看整个图像时才有可能吗? Or maybe decide for example if there are more than 10 bounding rectangles I check the whole image instead of every rectangle. 或者,也许要确定例如是否有10个以上的边界矩形,我检查整个图像而不是每个矩形。

Then I will look at the next frame and try to match my feature vector with the previous one. 然后,我将看下一帧,并尝试将特征向量与上一帧进行匹配。 That way I will be able to trace my objects. 这样,我将能够跟踪我的对象。 Once these objects cross the red line in the middle of the picture it will trigger another event. 一旦这些对象越过图片中间的红线,它将触发另一个事件。 But that's not important here. 但这在这里并不重要。

I need to make sure that not every object which is crossing or behind that red line is triggering that event. 我需要确保并非所有跨越或超过该红线的对象都触发该事件。 So there need to be at least 2 or 3 consecutive frames which contain that object and if it crosses then and only then the event should be triggered. 因此,至少需要2或3个连续帧包含该对象,并且如果该对象越过,则仅应触发该事件。

There are so many variations of object recognition algorithms, I am bit overwhelmed. 对象识别算法的变化太多,我有点不知所措。 Sift/Surf/Orb/... you get what I am saying. 筛子/冲浪/球体/ ...你明白我的意思。

Can anyone give me a hint which one I should chose or if what I am doing is even making sense? 谁能给我一个提示,我应该选择哪个,或者我在做什么甚至有意义?

Assuming the plane location doesn't change a lot from one frame to the next, I think you should look at object tracking instead of trying to estimate the location independently in each frame. 假设飞机的位置在一帧到下一帧之间变化不大,我认为您应该关注对象跟踪,而不是尝试在每一帧中独立地估计位置。 http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM