Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to detect architecture and sculpture in opencv?

can someone tell me how i can detect pictures of architecture or sculpture? I think hough-transforming is a good approach. But i'm new in CV and maybe there a better methods to detect pattern. I heard about haarcascade. can i take this for architecture,too? For example i want to detect those kind of pictures:

Image Hosted by ImageShack.us Image Hosted by ImageShack.us http://img842.imageshack.us/img842/4748/resizeimg0931.jpg

like image 386
501 - not implemented Avatar asked Oct 07 '22 08:10

501 - not implemented


1 Answers

If you want an algorithm to detect them, then detecting an object from an image need a description of that object which can be understood by a machine or computer. For a sculpture or architecture, how can you have such uniform definition since they vary a lot in every sense? For example both your input images vary a lot. How can we differentiate between a house and an architecture? A lot of problems will rise in your question. Even with Hough Transforming, how you are supposed to differentiate a big house and a big architecture?

Check out this SOF : Image Processing: Algorithm Improvement for 'Coca-Cola Can' Recognition

He wants to detect coca-cola cans, and not coca-cola bottles. But if you look into it clearly, you will understand can and bottles are almost alike and it will be difficult to differentiate between them. You can find a lot of its difficulties in subsequent answers. Major problem is that, in some cases, it will be difficult for humans as well to differentiate them.

In your second image, even if you train some cascades for second image, there is a change it will detect live lions if they are present in your image, since a sculpture lion and an original lion seems almost same for a machine.

Haar cascades may not be much effective since you have to train for a lot of these kinds of images.

If you have some sample images and want to check if those things are there in your image, may be you can use SURF features etc. But you may need some sample images first to compare. For a demo of SURF, check out this SOF : OpenCV 2.4.1 - computing SURF descriptors in Python

enter image description here

Another option is template matching. But it is slow, and it is not scale and orientation invariant. And you need some template images for this

I think I have seen some papers relating this topic ( but i don't remember now). May be googling will get you them. I will update the answer if I get it.

like image 131
Abid Rahman K Avatar answered Nov 01 '22 08:11

Abid Rahman K