# Object Recognition: Advice on 10-Day Assignment

• pledgeX
In summary, the conversation revolves around an assignment at University that involves implementing an appearance-based program in C/C++ for object recognition. The minimal requirement is to construct an eigenspace representation of a set of sampled images and use this subspace for object recognition. Additional marks are given for using advanced techniques such as SVD. The group discusses the theory behind SVD and how it is used in the recognition process. Suggestions for tutorials and resources are also given. The conversation also touches on the use of energy in measuring image recognition and the potential use of the Viola-Jones algorithm. The group clarifies that the assignment must be done in C and discusses the implementation of SVD. In the end, the group talks about the final step of
pledgeX
Hello all.

I've been given an assignment at Uni but I only have 10 days to do it, and I know very little about the subject, so I'm after some advice and/or suggestions of tutorials/guides that may help me.

"The purpose of this assignment is to implement an appearance-based program in C/C++ to recognise an object based on a learned model of the appearnce of the object"
"The minimal requirement is to construct an eigenspace representation of a set of sampled images of an object, and use this subsapce to perform object recognition"

We get additional marks depending on the complexity of the program, e.g. using multiple objects, using SVD, robust statistics etc. However I'm not really fussed about this at this stage.

So far I've loaded the test images in (using C btw), and calculated the average image of all the input images. But now I'm not really sure what to do. I've read about a covariance matrix and I think that is the next step but I'm not sure what I do with it. I'm also unsure as to the part eigenimages, eigenspaces and eigenvectors play in the whole recognition process.

Thanks very much.

hi. Suppose you know some solution, represented by a matrix, A, which also can be written as rA, such that f(i) = rA. Eigenvectors are accorded A. Eigenspace is f(). Eigen values are r.

How it works?

(identify)
For example, the space of f() can be vertical trace lines, or warning signals on screens/captured as images. Perhaps you can solve it for black and white interlaced and set the solution up in the matrix A.

(train)
Assume, Jobs, sends out those trace lines twice the size as Gates does! You may find f(Gates) to be r1A from your solution A, whereas f(Jobs) would be 2r1A.

(recognize)
Next you receive screen images then communicate: "Gates is sending out warnings"...

perhaps you can do something with smiling!

Last edited:
In www.codeproject.com , there some snippet about "face detection", these codes were in C#, but I think it do help you!

Thanks for the help so far guys. I'm still a little unsure of it all though. I went and saw the lecturer today but unfortunately he was just leaving so I only got chance to speak to him briefly.

I told him what I had done (load input images, calculate average image, subtract average image from all input images, store all images in one array (A)). He said that was right so far, and the next step is to use Singular Value Decomposition (SVD) on this array (A). After SVD I use the values and measure something or other that I can't quite remember. Unfortunately I couldn't clarify what he meant because as I said he was leaving.

He has provided us with some code that can do part of the SVD, so I'm not too worried about the actual coding of the solution, its more the theory behind it. Can anyone explain why SVD is used and how the results are used in the recognition process?

Thanks again.

http://www.netlib.org/lapack/lug/node53.html" is computable, and any matrix A, can be represented using this scheme.

Will you measure the Energy of the images?

Last edited by a moderator:
Thanks basePARTICLE. I've had a look through my notes and I can't see energy mentioned anywhere? What do you mean by the image's energy?

And I'm not tied down to any particular method or technique by the way.

check out Viola-Jones algorithm

The http://amath.colorado.edu/courses/4720/2000Spr/Labs/SVD/svd.html" , is described here, but be careful with the notation, because the writer uses an I matrix to represent Image matricies, rather than the Identity matrix.

Are you using Matlab?

Last edited by a moderator:
basePARTICLE said:
Are you using Matlab?

No, we have to use C.

I had another chat with him today and he suggests to go the SVD route, I've had a look over it and I'm starting to get the idea. I have one really dumb question though. The SVD is represented as:

Amn = Umm Smn V*nn (*=transpose)

Where m = number of images (e.g. 30) and n = image size (e.g. 128x128 =16384).

Am I right in thinking that the SVD equation expects A to be a 2D array in the form arrayA=[30][16384], and the values of m and n in the function header will be 128x128 in this example?

The SVD implementation I am using is this:
http://www.public.iastate.edu/~dicook/JSS/paper/code/svd.c"

Last edited by a moderator:
Well I've now got SVD working so I have my list of eigenvectors and eigenvalues. The last step is projecting it onto an eigenspace, then putting the image we want to recognise onto this eigenspace and measure the difference between something using the Euclidean distance. However, I'm not sure what we are actually measuring.

Can anyone help me on this final step?!

Thanks.

## 1. What is object recognition?

Object recognition is the ability to identify and classify objects in an image or video. It involves understanding the visual features of an object and matching them to a pre-defined set of categories.

## 2. How does object recognition work?

Object recognition works by using computer algorithms to analyze an image or video and identify key visual features, such as shape, color, and texture. These features are then compared to a database of known objects to determine the most likely match.

## 3. What are some common challenges in object recognition?

Some common challenges in object recognition include occlusion (when an object is partially hidden), variations in lighting and perspective, and the presence of similar-looking objects in the same scene.

## 4. What are some applications of object recognition?

Object recognition has numerous applications, including facial recognition for security and authentication, object detection in self-driving cars, and visual search in e-commerce.

## 5. How can I improve my object recognition skills?

To improve your object recognition skills, it is important to have a strong understanding of computer vision and machine learning techniques. Practice with different datasets and algorithms, and stay updated on the latest advancements in the field.

• Programming and Computer Science
Replies
21
Views
1K
• Programming and Computer Science
Replies
7
Views
1K
• Programming and Computer Science
Replies
4
Views
1K
Replies
40
Views
2K
• Programming and Computer Science
Replies
1
Views
3K
• Programming and Computer Science
Replies
15
Views
2K
• Programming and Computer Science
Replies
15
Views
3K
• Programming and Computer Science
Replies
13
Views
4K
• Programming and Computer Science
Replies
4
Views
1K