Hi,
My background: Manager, Designs. Image Processing Expert. I've worked on similar projects. I've done face recognition and palm print recognition for the same purpose. All the images are stored and on receiving a new image, we need to check with the database to determine if it exists and it's matching score. Look at my portfolio for some sample images.
This is my opinion for this project - For your problem, you need not do image compression. Instead you can process the image and store data. This is possible because you are training the database. For example a 640x320 pixel image can be process and a total of 1KB of data can be stored in your database. When you get a new image, you can do the same process and check the matching score with all the saved information in the database.
This has 2 advantages: 1. The size is same irrespective of the image size, 2. Your processing time is reduced because you are not decompressing the image. The matching score is good "Only when the same object is detected".
Feel free to ask me any questions you have. If you want, i can show you a sample video of my matlab simulation of face recognition over chat. Let me know.
Thanks for your time and consideration.
Best Regards,
Venkat