2

First: I have programmed a few programs dealing with computer vision (not with libraries but from scratch):

  • Simple Character and Figure Recognition
  • Character and Figure Recognition with Neural networks
  • Facial recognition

so I am not asking for details on these.

The characteristic of all my programs is that once you focus your camera on something you want to analyze, you hit a command (it can be through several means- serial, voice orders, etc- it is not relevant how) and the system takes a photo and analyze it, then produce a result in some cases the camera is deactivated since it is resource intensive.


Following all that introduction, my question is:

How do the programs that do continuous recognition work?

You have seem them, the camera is all the time on and it continually recognize or process things. Does it just do all the processing every frame? Or perhaps do the processing in a multithreaded way (for resource intensive processing)?

My apologies if the question is too beginner-like. I would really like to modify my work and increase my knowledge

Raphael
  • 73,212
  • 30
  • 182
  • 400
KansaiRobot
  • 141
  • 3

1 Answers1

3

It depends on what you're recognizing, but I'm familiar with two basic techniques:

  1. Apply the recognition algorithm to each frame of the video. Be fast enough that you can run on every frame of video. This is probably the most common approach.

  2. Recognize the object once, in one frame. Then use motion tracking to keep track of the location of the object in subsequent frames. In this way, you might be able to run the recognition algorithm (say) once every 10 frames and then use motion tracking to keep track of where it is in the remaining frames. This has some tradeoffs (some latency to detect the object when it first occurs; fast motion or fast panning can cause loss of the object), but is another possible alternative.

D.W.
  • 167,959
  • 22
  • 232
  • 500