This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP selection for face recognition



Hi,

I want to build a standalone face recognition system for access control using a DSP interfaced with a CMOS camera.

I need the image database of 20 faces onboard, thus a large onchip memory.

The papers I went through state that reliable face recognition algorithms require floating point operations, but fixed point implementations are faster.

I want to know if I have to be choosing a floating point DSP like the C6746 or a fixed point 64x architecture.

I've selected a camera with inbuilt JPEG compression engine that gives out JPEG data on a parallel port. Thus, I see no need in using Da Vinci or Digital media processors with video ports.

Kindly suggest if I'm thinking in the right direction.

 

Thank you,

Nikhila A

  • Nikhila,

    Just for clarification, I want to mention that the 674x devices have both floating point and fixed point units.  So, the 6746 will give you an option to do either floating or fixed point.

    I think the choice of Float vs. Fixed depends on the specs of the application. Here are some considerations you should think about.

    • What format is the data coming out of the Camera/Parallel Port?  Assuming all other things equal, if the data coming out of the parallel port is a fixed point representation, then it might be easier to use fixed point, rather than needing to convert to floating point.  
    • How big are the JPEG files?  Will storing 20 images in floating point format require significantly more space than storing 20 in fixed point format?  Does the device have enough memory to do either?
    • How fast does the recognition need to be done?  If we're pushing the limits of the DSP performance, fixed point may save you enough cycles to make a difference.
    • Are you implementing this algorithm from scratch?  Or do you have a library where it's already implemented?  If you have a library, then probably going with whatever the format of the library is makes sense.  If you have to do it from scratch, Floating Point can probably be done completely in C.  Fixed point will likely require some intrinsics.
    • If cost is a factor, then I'd guess the fixed point devices are probably less expensive. 
    • If power is a factor, the fixed point implementation will generally consume less, I believe.

    I can't give you a recommendation for Fixed vs. Floating point directly.  There are pros/cons of each.  Algorithm wise, a 64+, a 674x, and a DaVinci can all get the job done.  It's these other parameters that should push you one way or the other. 

    Regards,

    Dan

     

  • Dan,

    Thanks for the reply. I got much more ground on which the decision should be based.

    Well, the camera i've selected gives out standard JPEG data i.e. 24 bits per pixel that is integer, I guess. One VGA image with JPEG compression on an average takes about 600kB and about 12MB storage for 20 images. External memory interface is a must. Speed, time and power considerations as you have mentioned thus favours fixed point.

    But I have to be implementing from scratch, could you share more light on a feasible selection?

    Could you suggest if I got to choose a large Cache on chip or glueless external memory access with less Cache is suffice?

     

    Thanks again,

    Nikhila