I am working on FPGA for feature extraction from facial images. now for the face detection part of the project, i am using the skin color modal and i have it figured out on software...but i am clueless about how to start designing a VHDL code for it. What consideration to take into account....how to design a test bench which can send an image as a test vector...How do i take the image as input(pixel wise or block wise)...can some one please help.....any book for image processing on FPGA would be appreciated.
Since you're start from scratch, I'm advising you to write some fundemental code, there are 2 major points that you need to pay attention to:
1. for those calculation part, just migrate them to HDL calculation module, like adder or multiplier.
2. for those data structure in C code, just migrate them to storage machanism in HDL, such as ram,fifo, of register array.
What type of FPGA kit are you using? Does it suppotr embedded processor or not??
I recommend you to perform camera interface and mathmatical tasks like convolutions ,fft, addition,multiplication etc requiored for pre-processing in Hardware (vhdl/verilog).
Then storing pixels in sdram or block ram so that embedded procesor can access it
Finally with help of high level languages like C, you can process the datas stored in Ram.
FOR ALL ABOVE PROCESS YOU MUST HAVE fPGA BOARD THAT SUPPORTS EMBEDDED HARWARE AND SOFTWARE DEVELOPMENT BOARD.
eg XILINX MICROPROCESSOR DEVELOPMENT BOARD WITH EDK.
sorry about the late reply guys...school has never been this busy...
well i am not using a embedded processor FPGA. my code will be entirely in VHDL.
still havent decided on the board...but my professor has given me a ALTERA CYCLONE 2 BOARD. HAVENT CHKD IF IT HAS A EMBEDDED PROCESSOR. even if it does i am not using it
here is what i am thinking.
My project is to find various distance between the corners of eyes, between 2 eyes, between nose and mouth etc.
1.i am gonna extract the face from the image using skin detection. i am using the YUV color space. it only has 2 additions 2 subtraction and one divide by 2. which is a shift operation.
2. after i have the face, my job is to find the eyes in the face and find the corners in the eyes.i am thinking of using horizontal and vertical trace which is addition of pixels row and column wise and graphing them to find the eyes.
it is working in matlab .i have tried it on 20 front face view and it is 90 % accurate.
3. then i move to finding the nose and mouth which i havent figured out how to do.
I have a module to change the pictures to binary no in a matric fashion so that VHDL can read it.
QUESTION IS WHAT KIND OF OPERATION SHOULD BE EFFICIENT: