The GUI version of the OpenCV prototype for object detection (SIFT, etc.) Before the actual development of the project?

I had an idea for which I would need to recognize certain objects or models from the rendering of a three-dimensional digital film.

After a limited study, I now know that what I need is called the detection function in Computer Vision.

So, I want to do the following:

  • take some screenshots of a specific character in the movie (e.g. front / back / leftSide / rightSide)
  • movie playback
  • while playing a movie, constantly create new screenshots from the movie
  • for each screen shot, do a function detection (SIFT ?, with openCV?) to see if there are any of our characters (they still need to be recognized if the character is further away and thus smaller, or if the character for example, lying down).
  • provide notification when a character is detected

This is possible with OpenCV, right?

The "problem" is that I will need to learn C ++ or python to develop this application. This is not a problem if my film and screenshots are applicable for what I want to do.

So, I would like to check my screenshots from the movie first. Is there a version of OpenCV for the GUI so that I can enter my test data and then execute the function detection algorithms manually as a prototyping tool?

Any feedback is appreciated. Thanks.

+4
source share
5 answers

There is no OpenCV GUI capable of doing what you want. You can use OpenCV for some aspects of your problem, but there is no turnkey solution waiting for you.

Although you can definitely solve your problem, the learning curve for this problem is quite long. If you are a professional, then an alternative to finding out about this would be to hire a specialist to do this for you. It will cost money, but it will save your time.

EDIT

Regarding pattern matching, you usually did not use it to solve such a problem, because the thing you are looking for changes its appearance and shape. Actually there are no "dynamic parameters for installation". The closest thing you can try is to create a massive array that will try to cover the expected shapes your goal might require. But this would hardly be an elegant solution. Plus it will not scale.

Next, to your point of view of face recognition. This is kind of related, but most face recognition applications are related to a controlled environment: lighting, distance, pose, angle, etc. Outside of this controlled environment, face detection performance is greatly reduced. If you discover objects in a movie, your environment is not really controlled.

You can first try the simpler problem of accurately detecting where the characters are, without determining who they are (in fact, video surveillance). Although this may seem simple, you will find that it is actually nontrivial for arbitrary scenes. The result of solving the problem can be useful in identifying characters.

+4
source

Well, using OpenCV, you should take a frame of the video file and do some calculations on it.

You can make several different methods for detecting a character in this image, but it is not so easy to have it as flexible, so you can even get this person if he was lying on the floor, for example, if you just entered reference images, this symbol is worth it.

Basically, you can try to extract all the important functions from your set of reference images and have (in your case, controlled) learning algorithm that gets a good vector-sign of this symbol for classification.

Then you need to write your code that plays the video, and which receives the video clip, let it say every 500 ms (or others, as you wish), gets a segmentation of the object that you are, will be your character, and compare it with a link of values ​​that you get from your learning algorithm. If there is a match, your code may scream "Yehaaawww!". or do other things ...

But it all depends on how flexible you are. You can also try a match pattern or cross-correlation, which basically shifts the reference image (s) above the frame and checks if both parts are equal. But this, unfortunately, is very sensitive to rotation, deformation or other noise ... so you won’t get this person if you lay him down. And I doubt that you can do all these calculations in real time ...

Basically: Yes, OpenCV is good for use in your image processing and computer vision tasks. But it offers many ways and means, and you will need to find a way that works for your images ... this is not a trivial task, though ...

Hope this helps ...

+2
source

There is a Find-Object Mathieu LabbΓ© . It was very useful for me to begin to understand descriptor descriptions, as you can change them while your video is running to see what happens.

It may be too late, but it may help someone else find a solution.

+2
source

Have you tried to look at some of the works of the Oxford visual geometry group?

Their Google Video system pretty much describes what you want, instance detection.

Their work on Naming People on a TV Show is also very relevant. A face detection loop and a face loop that can be launched from Matlab are included. Do you know Matlab?

+1
source

Have you tried computer-based surveillance systems like Cassandra ? There you can do it with just a few clicks.

+1
source

Source: https://habr.com/ru/post/1337658/


All Articles