A method to identify object instances in images, comprising: receiving a first training bundle comprising first training images, a true class category vector for a first object instance depicted in the first training images, and a first true object instance identifier for the first object instance depicted in the first training images, wherein the true class category vector comprises a vector of elements, in which each vector element is associated with a corresponding class category, and wherein the first training images include an image from each image sensor of a camera; receiving a set of hash strings, each hash string associated with a second true object instance identifier, where the set of hash strings is generated by a convolutional neural network based on a second set of training bundles that does not include the first training bundle; training the convolutional neural network to emit an object classification vector and an object instance hash string for the first training images by the use of a hash-augmented loss function, wherein the hash-augmented loss function comprises a classifier loss term and a hash loss term, such that the classifier loss term penalizes a distance between the object classification vector and the true class category vector, and the hash loss term penalizes similarity between the object instance hash string and any of the set of hash strings where the first true object instance identifier does not match the second true object instance identifier, and the hash loss term further penalizes a distance between the object instance hash string and any of the set of hash strings where the first true object instance identifier matches the second true object instance identifier; receiving one or more current images depicting a current object instance; determining, by the camera, a current object classification vector for the current object instance and a current object instance hash string for the current object instance by a forward pass through the convolutional neural network operating on the one or more current images; and if the current object instance hash string is present in a data store, obtaining object instance properties for the current object instance from the data store using the current object instance hash string, and otherwise, providing a classification based on the current object classification vector to the data store, characterised in that separate hash strings which quantify static and dynamic object instance properties are concatenated in a master hash string used for object classification. receiving a first training bundle comprising first training images, a true class category vector for a first object instance depicted in the first training images, and a first true object instance identifier for the first object instance depicted in the first training images, wherein the true class category vector comprises a vector of elements, in which each vector element is associated with a corresponding class category, and wherein the first training images include an image from each image sensor of a camera; receiving a set of hash strings, each hash string associated with a second true object instance identifier, where the set of hash strings is generated by a convolutional neural network based on a second set of training bundles that does not include the first training bundle; training the convolutional neural network to emit an object classification vector and an object instance hash string for the first training images by the use of a hash-augmented loss function, wherein the hash-augmented loss function comprises a classifier loss term and a hash loss term, such that the classifier loss term penalizes a distance between the object classification vector and the true class category vector, and the hash loss term penalizes similarity between the object instance hash string and any of the set of hash strings where the first true object instance identifier does not match the second true object instance identifier, and the hash loss term further penalizes a distance between the object instance hash string and any of the set of hash strings where the first true object instance identifier matches the second true object instance identifier; receiving one or more current images depicting a current object instance; determining, by the camera, a current object classification vector for the current object instance and a current object instance hash string for the current object instance by a forward pass through the convolutional neural network operating on the one or more current images; and if the current object instance hash string is present in a data store, obtaining object instance properties for the current object instance from the data store using the current object instance hash string, and otherwise, providing a classification based on the current object classification vector to the data store, characterised in that separate hash strings which quantify static and dynamic object instance properties are concatenated in a master hash string used for object classification.