A device implemented deep neural network, DNN, method for image recognition, a DNN being a machine learning system comprising multiple layers of at least one model, the outputs of lower level layers serving as inputs of higher level layers, the method comprising: accessing, using one or more processors of the device coupled to a memory of the device, an image depicting an object of interest and a background within a field of view; generating, by the one or more processors, a set of bounding boxes within the image by using a multilayer object model, each bounding box including a set of coordinate data and a label, the set of coordinate data indicating a position, size or scale, and aspect ratio of the bounding box, the set of bounding boxes being distributed uniformly over the image; detecting, by the one or more processors, at least a portion of the object of interest within two or more of the bounding boxes by using one or more object detection methods on a set of detection layers of the multilayer object model, wherein the detection layers include a respective detection layer for each of the two or more bounding boxes; determining, by the one or more processors, context information from a background of the image surrounding the object of interest by passing a layer output of a second detection layer to a first detection layer using a deconvolution layer of the multilayer object model and incorporating the layer output of the second detection layer into the layer output of the first detection layer; and based on detecting the portion of the object of interest and determining the context information, identifying, by the one or more processors, the object of interest from the portion of the object of interest included within the two or more bounding boxes, using a set of image representation layers of the multilayer object model, the image representation layers incorporating the detected portion of the object of interest output by the set of detection layers and the context information output by the deconvolution layer. accessing, using one or more processors of the device coupled to a memory of the device, an image depicting an object of interest and a background within a field of view; generating, by the one or more processors, a set of bounding boxes within the image by using a multilayer object model, each bounding box including a set of coordinate data and a label, the set of coordinate data indicating a position, size or scale, and aspect ratio of the bounding box, the set of bounding boxes being distributed uniformly over the image; detecting, by the one or more processors, at least a portion of the object of interest within two or more of the bounding boxes by using one or more object detection methods on a set of detection layers of the multilayer object model, wherein the detection layers include a respective detection layer for each of the two or more bounding boxes; determining, by the one or more processors, context information from a background of the image surrounding the object of interest by passing a layer output of a second detection layer to a first detection layer using a deconvolution layer of the multilayer object model and incorporating the layer output of the second detection layer into the layer output of the first detection layer; and based on detecting the portion of the object of interest and determining the context information, identifying, by the one or more processors, the object of interest from the portion of the object of interest included within the two or more bounding boxes, using a set of image representation layers of the multilayer object model, the image representation layers incorporating the detected portion of the object of interest output by the set of detection layers and the context information output by the deconvolution layer.