This definitely sounds like a project you would use a camera for. Which type of camera is your choice.
I would try to use a webcam (they're cheap) as the primary sensor. Try reading Admin's computer vision tutorial (one of the best tutorials on the net, IMO) and after that, try roborealm. Roborealm is a computer vision program that can do all the actions needed for your project; color recognition, shape recognition and even limited word recognition (someone got it to read a thermostat display). Link:
http://www.roborealm.com/The robot arm could be simple or highly specialized, depending how much work you want to do. Try reading Admin's robot arm tutorial first (he talks about visual servoing and other important concepts). Because you'll be working with bottles and cans the arm doesn't have to be super heavy duty. Go to
http://www.lynxmotion.com/, they sell robot arms (ironically, they show pictures of them picking up coke cans).
This should help you get started.