All about openCV

Thanks for more than two lakh views. All about openCV, Image Processing converging towards Biometric face recognition. Use the Easy Navigation button on the top bar to view all the posts at a glance related to openCV. I kept this blog small so that anyone can complete going through all posts and acquaint himself with openCV.

Pages

Saturday, July 26, 2014

Update (02 April, 2012) :
If anyone wants to publish a paper in biometrics, which you feel is revolutionary, try the BTAS conference. It was an international conference on biometrics and has very high value. The deadline is April, 15th

There is a conference "What's in a Face" whose main aim is to improve the research on Human Face. The deadline is July 3rd. It's an international conference, and even if you think you could not attend (due to monetary problems), try sending the paper. If you get acceptance, then it is something that you can write proudly in your resume.

Today, let me give you a glimpse of a wonderful tool called Ceemple, which I believe is still in beta stage, but can be downloaded from www.ceemple.com.

It is one package, fit all tool for C++; where on installing Ceemple, you get all the computational and graphical libraries, which you can use hassle free, while concentrating only on development.

Many of you told me about the problems being faced, while installing openCV in windows and how you failed to integrate it to into your existing Code Blocks or Dev C++ software. Now it's all done for you by the Ceemple team. You just need to download, install and zup... ready to go. It is too easy. Also, you have a hell lot of other libraries including Matlab, Python etc., which you can use for building real things - super fast. If you are a less software guy and more of a researcher, this tool is the boon for you, and it's open source nature makes it tasty enough for gulping directly. For a detailed comparative analysis and the usefulness of the tool, you can visit this link

Thursday, July 5, 2012

Many of you might have already figured out, how to strip the code. The below is the stripped version. Here, we can just supply the gallery image and probe image, the same way as the previous post as arg1 and arg2. But here, no GUI utilities are being used. Just the output needed is printed to standard output. This drastically reduces the time for the program execution. Also, I have removed the flann method of matching, since any one (findpairs and flannfindpairs - functions) can be used and both the methods given have the same recognition performance.

When you install openCV, openCV samples folder also gets installed. The samples will be present in your InstallationDirectory/samples/C. For me it's present in OpenCV-2.1.0/samples/c.This folder contains the sample codes of many good openCV programmes that can be used for a wide variety of purposes. One more thing is that, it also contains the compiled object files along with the source code for each programme. The programme , we will be looking is find_obj.cpp and the compiled code will be with the name find_obj. This programme uses SURF to do an object detection. The original code, written by Liu, is modified by me to give the below code. Note that the comments made by me, start with Dileep:

There are enough comments in it, explaining what each part does. compile it. If you compile it to the object file find_obj, the command below works.

./find_obj

Otherwise, replace it with a.out. Also, copy the two images in the samples folder named box.png and box_in_scene.png into the folder where you run the above command.

Now for ./find_obj
Since we are not supplying arguements, it will take the default box.png and box_in_scene.png and tries to find the first object inside the second object. The below figure appears.

What's actually happening here is object detection. But I included a "dis" variable and also printing it to standard ouput, so that you will also know the average distance of all the descriptors. If you want, you can keep two photographs of the same person with different facial expressions in the same folder and supply them as arg1 and arg2 (in which case you will get distance as zero, ofcourse :P)

./findobj arg1 arg2

If we keep on changing the second arguement(the image we are supplying as arg2), we can actually use it for recognition. Then the one with the least distance is the best possible match for the first argument (the image we are supplying as arg1). In the next post, I will strip all the unnecessary components of this code and make this usable for recognition. You can try to do it yourself.

Saturday, March 3, 2012

When you install openCV, openCV samples folder also gets installed. The samples will be present in your InstallationDirectory/samples/C. For me it's present in OpenCV-2.1.0/samples/c.This folder contains the sample codes of many good openCV programmes that can be used for a wide variety of purposes. One more thing is that, it also contains the compiled object files along with the source code for each programme. The programme , we will be looking is find_obj.cpp and the compiled code will be with the name find_obj. This programme uses SURF to do an object detection.

I have modified the code to make it work for recognition. I did my summer project at IIT Kharagpur, and there we performed the experiments on face recognition with SURF. For the first time in face recognition history, we worked with color FERET database. We wrote a paper, describing our approach and writing the results of our work. The Research paper was sent to the proceedings of an international conference. Till that gets published, I cannot share my work. But it's so simple and intuitive, when you look at the code I mentioned. Best of luck with your work.

Update (29/06/12) :
I will release the modified source code on or before 8th July