hello
I have to develop a software for my college course that will perform retinal scan, i.e, if a picture is provided the location of the retina will be detected by the program.
But i have got no clue on how to implement this project. Can anyone please provide any relevant information?
I would perhaps start out researching how a face detection algorithm is implemented, and then implement that same algorithm with an iris as the target.
Heres an open source Java implementation of a face detection algorithm: Here
What is the college course? Hopefully you're given more guidance (or should already have knowledge in the area) beyond "develop an algorithm to find the retina/iris". It could probably be done with shape recognition, or various other techniques depending on what the image is like. Are we talking about "Here's a closeup of a face, find the eyes", or "Here's a picture of 10 people, find the eyes"? The algorithms will be very different in those two cases.
Related
I would like to use computer vision to do the following:
A camera is mounted outside a building, capturing a videostream of the street below. The camera is installed approximately 5-6 meters above the street.
Whenever a person wearing a certain kind of hat(white, round) is captured by the camera, an event should be triggered.
Which algorithm should I look into to implement this kind of behavior ?
Is this best achieved through training the algorithm with sample data or is there another way to tell it to look for this type of hat ?
Also, how do I use multiple frames of video to increase the quality of detection ?
Edit: Added a picture of the hat
Before we do everything in comments I will start an answer here.
The first link you posted describes a simple color-based detection. You can try that, but it will fail if there are other pixel clusters of similar color in the image. Your idea of combining it with tracking is good: Identify clusters, build trajectories over several images, and only accept plausible trajectories as a hit. For robust tracking you may want to look into Kalman filtering. A problem you will most likely encounter is that a "white" hat will hardly be "white" in the images your camera delivers.
The second link you refer to - boosted Classifiers Based on Haar-like Features - is for detection of more complex objects. It probably won't help you find white blobs. Invest your time and energy in learning about tracking.
I'm happy to repeat myself here: "Solving a computer vision problem" is not something like "sorting an array". OpenCV is not the C++ Standard Library. You can use an std::map without knowing anything about a red-black tree. But (IMHO) you can't use Vision APIs without knowing a good deal of the math and theory. Working solutions Computer Vision are typically heavily tuned towards the specific problem scenario. Sorry if that sounds pedantic, but it explains why your question got beaten.
I was trying to build a basic Face Recognition system (PCA-Eigenfaces) using OpenCV 2.2 (from Willow Garage). I understand from many of the previous posts on Face Recognition that there is no standard open source library that can provide all the face recognition for you.
Instead, I would like to know if someone has used the functions(and integrated them):
icvCalcCovarMatrixEx_8u32fR
icvCalcEigenObjects_8u32fR
icvEigenProjection_8u32fR
et.al in the eigenobjects.cpp to form a face recognition system, because the functions seem to provide much of the required functionality along with cvSvd?
I am having a tough time trying to understand to do so since I am new to OpenCV.
Update: OpenCV 2.4.2 now comes with the very new cv::FaceRecognizer. Please see the very detailed documentation at:
http://docs.opencv.org/trunk/tutorial_face_main.html
I worked on a project with CV to recognize facial features. Most people don't understand the difference between Biometrics and Facial Recognition. There is a huge difference based on the fact that Biometrics is mainly based on histogram density matching while Facial Recognition implements this and vector support based on feature recognition from density. Check out the following link. This is the library you want to use if you are pursuing CV and Facial Recognition: www.betaface.com . Oleksander is awesome and based out of Germany, but he answers questions which is nice.
With OpenCV it's easy to get started with face detection. It comes with some predefined sets for feature detection, including face detection.
You might already know this one: OpenCV Wiki, FaceDetection
The important functions in this example are cvLoad and cvHaarDetectObjects. The first one loads the classifier and the second one applies it to an image.
The standard classifiers work pretty well. Of course you can train your own classifiers, if the standard ones don't fit your purpose.
As you said there are a lot of algorithms for face detection. Some of them might provide better results, but OpenCV is definitively a good start.
I want to build a program that can recognize typical playing cards.
is there an algorithm that can process an image from webcam and to determine the card type?
if there is not- are there more simple algorithms that can be combined for this purpose?
thanks
Here's some basic information to point you in the right direction. I suggest tackling the problem in two parts: a) webcam, and b) card recognition.
Part a) is not as hard as part b) and so I suggest that you ignore the webcam initially - get the algorithm working with several test images you've taken. Once card recognition works, you can then get your webcam working as your input.
Here's a wikipedia article about object recognition. The names of the algorithms are listed, so you'll be able to do some research into which algorithm(s) you might investigate.
Be warned: image processing and feature/object detection is not trivial. I suspect that this would make a very good masters or PhD project. I have very little experience in this area and your question is very general. I hope this helps you to get started.
postscript:
If you get this working well, the casinos will probably be interested. You could make some money, if you play your cards right.
I want to detect one kind of object such as person in the picture,
who can tell me how to training a kind of people classifier for use,so we can use the classifier to detect people in any picture.
It's a pretty vague question but i think you're looking for a good computer vision library. The gold standard is OpenCV (Open Source Computer Vision). That'll get you started, and there's lots of people that have done facial recognition with it.
If you want to tell two people apart, that's a hugely more complicated problem. You'll likely use some of the same tools, but you'll need much more complicated algos.
you can take a look at viola-jones framework: Viola-Jones Object Detection Framework at Wikipedia
it's cvHaarDetectObjects() in OpenCV.
I'm new to image processing and I want to do a project in object detection. So help me by suggesting a step-by-step procedure to this project. Thanx.
Object detection is a very complex problem that includes some real hardcore math and long tuning of parameters to the computation methods involved. Your best bet is to use some freely available library for that - Google will help.
There are lot of algorithms about the theme and no one is the best of all. It's usually a mixture of them what makes the best solution to the solution.
For example, for object movement detection you could look at frame differencing and misture of gaussians.
Also, it's very dependent of your application, the environment (i.e. noise, signal quality), the processing capacity you may have available, the allowable error margin...
Besides, for it to work, most of time it's first necessary to do some kind of image processing to the input data like median filter, sobel filter, contrast enhancement and a large so on.
I think you should start reading all you can: books, google and, very important, a lot of papers about the subjects (there are many free in internet) you are interested in.
And first of all, i think it's fundamental (at least it has been for me) having a good library for testing. The one i have used/use is OpenCV. It's very complete, implement many of the actual more advanced algorithms, is very active, has a big community and it's free.
Open Computer Vision Library (OpenCV)
Have luck ;)
Take a look at AForge.NET. It's nowhere near Project Natal's levels of accuracy or usefulness, but it does give you the tools to learn the algorithms easily. It's an image processing and AI library and there are several tutorials on colored object tracking and motion detection.
Another one to look at is OpenCV from Intel. I believe it's a bit more advanced, but it's written in C.
Take a look at this. It might get you started in this complex field. The algorithm pages that it links to are interesting reading.
http://sun-valley.stanford.edu/projects/helicopters/final.html
This lecture by Jeff Hawkins, will give you an idea about the state of the art in this super-difficult field.
Seems that video disappeared... but this vid should cover similar ground.