Object Recognition: Advice on 10-Day Assignment

  • Thread starter Thread starter pledgeX
  • Start date Start date
Click For Summary

Discussion Overview

The discussion revolves around a university assignment focused on implementing an appearance-based object recognition program in C/C++. Participants seek advice on the theoretical and practical aspects of using techniques such as Singular Value Decomposition (SVD) and eigenspace representation for recognizing objects based on learned models from sampled images.

Discussion Character

  • Homework-related
  • Technical explanation
  • Exploratory
  • Debate/contested

Main Points Raised

  • One participant describes their progress in loading images, calculating an average image, and storing images in an array, expressing uncertainty about the next steps involving the covariance matrix and the role of eigenimages, eigenspaces, and eigenvectors.
  • Another participant introduces a conceptual framework involving matrices and eigenvectors, suggesting that the eigenspace can be related to various types of signals or images.
  • A suggestion is made to explore existing code snippets related to face detection, although they are in C#.
  • One participant shares that their lecturer confirmed their approach so far and emphasized the importance of SVD, but they seek clarification on its theoretical application in the recognition process.
  • A question is raised about measuring the "energy" of images, with another participant expressing confusion about this term.
  • References to algorithms and resources, such as the Viola-Jones algorithm and specific SVD documentation, are provided to assist in understanding the concepts.
  • One participant confirms their implementation of SVD, noting they have obtained eigenvectors and eigenvalues, but they are unclear about the final step of projecting onto an eigenspace and what is being measured in this process.

Areas of Agreement / Disagreement

Participants express varying levels of understanding and uncertainty regarding the application of SVD and eigenspace in object recognition. There is no consensus on the specific theoretical aspects or the final measurement process in the recognition task.

Contextual Notes

Participants mention different methods and resources, indicating a range of approaches and understanding. There is also a lack of clarity on certain terms and concepts, such as "energy" of images, which remains unresolved.

pledgeX
Messages
6
Reaction score
0
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 task is:
"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.

Any advice?
Thanks very much.
 
Technology news on Phys.org
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"...

for your purposes
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.
 
  • #10
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:
  • #11
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.
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 21 ·
Replies
21
Views
2K
Replies
40
Views
4K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
Replies
15
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K