We have an application where we need to do take a colour image of a retail pack (rectangular drug package as the kind you might find in a pharmacy / superstore) and compare this against a stored set of images/profiles for this pack and return which face of the pack is identified by the photograph and it's orientation (i.e., rotated 0, 90, 180, 270 degrees). The image will always be taken directly above the pack and will be in a moderately controlled lighting environment however there will be some background detail visible in the image. Currently the dataset of comparisons can be constrained by the fact that we will know what pack we are looking at, just not which face is showing and the orientation of that face. To complicate matters further we need to be able to perform this comparison and match process rather rapidly (looking at sub-second completion time) and have a comparison database that can be portable between locations.
What I need, is any advice on this process, where to look for more details, suggestions on algorithms, techniques or, perhaps, just an honest suggestion that it's worth getting an experienced image processing developer involved. Alternatively if there are solutions ready made for this kind of application then this would be very useful too.