Ask Your Question

shamshun's profile - activity

2019-10-05 17:20:13 -0600 received badge  Popular Question (source)
2015-09-09 08:02:43 -0600 commented question How to detect a book!

@chr0x , Same code as FindHomography example. The problem was it didn't find many feature points. The exceptions were raised when detectors found feature 0 points. Using bigger images and changing Hessian Value helped, but overall, I am not finding it very suitable for what I wanted to do.

While searching the net, i found this : Fast-Match. In my first few tries, I was able to detect better than that findHomography. The code I worked with was in matlab. It was slow, but I think if I could use c++ version of it in OpenCV it would be much better!

2015-09-03 05:49:19 -0600 commented question How to detect a book!

This is the Scene Image , and this one is the Object Image . The code is expected to detect the object in the scene. The good thing about find homography is that it detects even if there is rotation and difference in scale between the two pictures. But as I said, it hasn't worked as expected up to now. This is the result I was talking about. . It looks like some books don't have enough homography points :P Do you think it can be tweaked to work well?

2015-09-03 05:40:11 -0600 commented question How to detect a book!

I wrote the code using This example . Results? not so good.

  • code line:<< Mat H = findHomography( obj, scene, CV_RANSAC ); >> usually throws an exception. Specially if input scene resolution is higher than ~300x400 px.
  • I have to manually calibrate minHessian variable for each scene image. for some , 40-50 works, for others (bigger images) I must lower it to 15-25 .
  • For some "single book spine image" inputs, no keypoints are detected by the detector.
2015-09-02 01:24:51 -0600 commented question How to detect a book!

Ok, I'll try it! Will post the results here soon!

2015-09-01 04:04:16 -0600 received badge  Student (source)
2015-09-01 02:47:30 -0600 received badge  Supporter (source)
2015-09-01 02:42:04 -0600 commented question How to detect a book!

@thdrksdfthmn I think I have tried that. as far as I remember, the problem was there were a lot of feature similarities and a million points and lines everywhere, couldn't actually "detect" and corner out a single book. This method does not take into account the solid rectangular being of a book! letters on a book title may be found on many other books. So is their color. But the whole image of a book spine is unique in comparison to others .Am I wrong here?

2015-09-01 01:52:20 -0600 commented question How to detect a book!

I have edited the question to be clearer.

2015-09-01 01:22:39 -0600 commented question How to detect a book!

Thanks, I read about Haar Cascade now; It was ... enlightening ;) Yet, I think there is a difference: In Haar Cascade technique, you try to train detecting an object (banana) , by using various images of banana (40 pics) versus a large number of non-target objects (600 random pics without banana). In my scenario, I have an image from an object (book cover/spine) which is always the same as any instance of it (all the books are printed exactly the same, their covers/spine included). So I have only 1 picture to train for each of the books that I want to detect. And If I have a database of, lets say, 100 books, training a Haar cascade for each of the books would relatively require at least 100 x ( ~600) images, and I assume it takes a long long time to train, too.

2015-08-31 16:27:34 -0600 commented question How to detect a book!

Well, not exactly. More like this scenario : I have an image of "Harry Potter Book - Volume 3" 's SPINE (we only have image of the spine of the book) , now we need to detect and draw a red rectangle on this specific book (not any others) in This Bookshelf . )

2015-08-31 12:24:25 -0600 received badge  Editor (source)
2015-08-31 12:14:08 -0600 answered a question custom object recognition with OpenCV

I think you can use Neural Networks for classification of such objects. You need to have a database of objects (bottles), each one classified (beer,etc) as training data. Then your neural network learns (long story, you have to read about it) somehow, and afterwards the network can magically classify the new objects in images it has never seen before! You can use OpenCV for object detection, segmentation and then feed the output to the neural network.

2015-08-31 12:14:08 -0600 asked a question How to detect a book!
  1. We have a bookshelf in a room. It contains ~500 books. The books are either tidily piled on the shelves (horizontal) or are standing side by side (vertical) or tilted/resting on another book or pile of books (not horizontal or vertical, an angle is present in this case) . Note that for each of the books, only the book's spine is visible.
  2. We have created a database containing the books' names and 1 image for each book (the spine I mentioned before).
  3. We take a Hi-res picture of the bookshelf. Because we used a camera, perspective causes some of the books near the sides of the image to appear with non-rectangular shapes (maybe not that important though) .
  4. Some of the books are present in quantities more than one. Some of the books have non-English titles but each of them is unique and distinguishable from others altogether.

Okay, now the quest is :

We want to detect one of the books ( e.g. record 232 in database) in the bookshelf. . We must be able to detect each of the books that we have in database .

------Original Question----- I tried to use SIFT and SURF methods to detect an object (a book in a bookshelf, , scaled / maybe rotated but facing the camera) while having the original image (book cover , fixed and straight image) but I was not successful! At first I thought it was such an easy detection, because " they recognize faces, detecting a book which is only scaled and rotated is easy).

Am I right when trying to use SIFT and SURF? they dont work when I use higher resolution images, and I think they might be overkill for such a task. Please tell me if I'm going the right way :) ?

To make it clear, I have a rectangular image of a book, and an image with many different books (no english letters) , and I want to detect the rotated/scaled book in the bigger image.