Vision is, in theory, a great way for robots to identify objects. It works for us humans, so all of the stuff that we have to deal with regularly tends to have distinguishing visual characteristics like pictures or labels. Robot vision can certainly work as a way to identify objects, but it's not easy, and often requires a ridiculous amount of computing power, whether it's on the robot or off in the cloud somewhere. And even then, if the object you want to find is facing the wrong way or behind something else, you're out of luck. So when you think about it, there are two essential pieces to identifying things, and localization is a big one. Vision is often bad at this.
Another, much easier way of identifying objects is with RFID tags, because you can use a dirt cheap sensor that's super reliable and doesn't give a hoot what orientation an object is or how bad the lighting is or anything else. The other nice thing about RFID tags (besides the fact that they're dirt cheap and printable and will never give you false positives) is that you can detect them from far away, also using them for localization at the same time. If you know what you're doing.
Some researchers at Georgia Tech (including Travis Deyle, who writes his own robotics blog) totally know what they're doing, and have published a paper detailing an efficient, reliable way to perform long-distance localization that's basically (and I'm quoting the press release here) "the classic childhood game of “Hotter/Colder."