Ask Your Question

zeroxia's profile - activity

2016-04-18 13:13:42 -0600 received badge  Notable Question (source)
2015-04-08 20:46:45 -0600 received badge  Popular Question (source)
2013-12-02 14:10:56 -0600 received badge  Nice Question (source)
2013-10-29 21:56:17 -0600 commented answer Logo detection / identification on TV screens

Thank you, I see LBP is for "cascade classifier", which requires a training stage, and that takes much time. I'm currently focusing on object detect techniques (like SURF), but I'm still doubting that the logos are too small to provide sufficient keypoints to justify a positive match (although the screen captures are 720p or even 1080p, but they're scaled up from PAL/NTSC pictures, i.e., 576p or 480p). Anyway I'm trying with additional optimizations you guys have mentioned like cross-check, ratio-check to refine the matching. @GilLevi thanks again for your fast reply and the clarification on "ratio check".

2013-10-28 02:52:58 -0600 answered a question Logo detection / identification on TV screens

Hi all,

This is not the answer, I'm using this as my feedback and update to my previous try since the "comment" function cannot accommodate so much text.

As described above, feature2d experiment gave wrong result, I think the TV channel logo is too small to be detected by feature2d algorithms, so I resort to template matching.

First I assume the logo position is fixed, so the exact logo region is cropped out and matched agains a prepared template, this can output promising identification.

But the logo position turns out to be NOT fixed, i.e., there is some shift. I have to match the template against a larger area, and this does not guarantee correct result.

Now I come back to this question, and have to consider the feature2d algorithms again, as this feature2d technique seems a more natural solution for my problem.

@GilLevi & @Guanta: Thank you for the suggestions. I have not came across the "LBP" word as I dig through the opencv docs, can you point me to a link, something like the opencv tutorials would be great.

And for other terms, "cross-check", "ratio-check", "RANSAC", and "transformation matrix", pardon my ignorance, I think I have to dig much deeper, but if you can point me to specific resources I'd be much appreciated.

Thank you again for your time and help.

2013-10-28 02:50:31 -0600 commented answer Logo detection / identification on TV screens

==== DELETE, see below "answer" post for the comment ====

2013-07-31 20:33:50 -0600 commented answer Logo detection / identification on TV screens

For the template matching method, the normalized "result matrix" is all values between 0 ~ 1, the "min" or "max" point is selected as the "match", whatever the template is, so I don't know how to find out a "negative" result. Can you provide some hints on this?

And thanks a lot for all above input. I will try your suggestions and update back.

2013-07-31 16:03:23 -0600 received badge  Student (source)
2013-07-31 05:57:18 -0600 received badge  Editor (source)
2013-07-31 05:56:39 -0600 asked a question Logo detection / identification on TV screens

Hi,

I want to do "TV channel" detection by identifying the "channel logo".

Suppose I need to identify two channels: A and B. I grab some sample screenshots, and find out the region of these logos in their respective screenshots as ROI_A and ROI_B.

I'm trying with opencv's feature2d framework (SurfFeatureDetector/SurfDescriptorExtractor and FlannBasedMatcher, but the result is not working (details follow).

Now the detection task is performed as:

  1. Given a screenshot of an unknown channel, the image SCENE.
  2. For logo A:
    • get A's pre-calculated SURF data (keypoints, descriptors)
    • calculate SCENE(ROI_A) region's SURF data
    • use FlannBasedMatcher upon these descriptors to get some "match" data
    • repeat such process for other logos (here the B)
  3. I have posted a resultant picture, the right side is the sample scene, the left side has two different logos. The upper one is a random one, the bottom one is the same as the logo on the scene. But the upper one obviously have a lot of "matches", while the bottom one barely has few. i.e., totally wrong.

So my questions are:

  1. For my task, the logo's region is fixed for a specific one, and no rotation or scaling need to be considered. So is the feature2d framework appropriate for this, or is there some other opencv feature better fit for this?
  2. How do I get a good logo image as the object, currently I find some clean scenes (those with pure color background) and use the logo on that scene as target object.
  3. I thought I could count on the number of "matches" to get the correct channel (the logo with the most matches will be regarded as the channel). But the experiment shows this is not reliable. As I only want to know whether it's matched, but not the object's location, how to do this?

I'm expecting to identify about 70 channels, but currently with two sample channels, the result is misleading most time. Any help is appreciated and thanks for your time.

Test result picture: surf+flann try