A processor implemented method comprising: calibrating a plurality of three-dimensional, 3D, cameras (116, 118, 120, 122, 124) based on a pattern in a tray (112; 1002) of an object recognition system, the pattern used to correlate the positions of the 3D cameras (116, 118, 120, 122, 124) to construct a common coordinate system for the 3D cameras; capturing, by the plurality of 3D cameras (116, 118, 120, 122, 124), 3D images for recognizing objects (1004, 1006) when present in an object-detection space above the tray; combining data of the captured 3D images based on the common coordinate system for the 3D cameras (116, 118, 120, 122, 124) to obtain pixel data of the object-detection space; characterised in that the processor implemented method further comprises: removing, from the pixel data, background pixels of a background in the object-detection space to obtain object pixel data associated with the objects in the object-detection space, wherein removing the background comprises deleting, from the pixel data, pixels having a location situated below the object-detection space; creating a geometric model (1108; 1220) of the object pixel data, the geometric model including surface information of the objects in the object-detection space; generating one or more cuts (1116; 1214) in the geometric model (1108; 1220) to separate objects and obtain respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), wherein generating the one or more cuts is performed by a segmentation classifier trained on examples of touching items and a correct way to separate the touching items; and performing object recognition to identify each object in the object-detection space based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), the object recognition performed by a machine learning program based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218). calibrating a plurality of three-dimensional, 3D, cameras (116, 118, 120, 122, 124) based on a pattern in a tray (112; 1002) of an object recognition system, the pattern used to correlate the positions of the 3D cameras (116, 118, 120, 122, 124) to construct a common coordinate system for the 3D cameras; capturing, by the plurality of 3D cameras (116, 118, 120, 122, 124), 3D images for recognizing objects (1004, 1006) when present in an object-detection space above the tray; combining data of the captured 3D images based on the common coordinate system for the 3D cameras (116, 118, 120, 122, 124) to obtain pixel data of the object-detection space; characterised in that the processor implemented method further comprises: removing, from the pixel data, background pixels of a background in the object-detection space to obtain object pixel data associated with the objects in the object-detection space, wherein removing the background comprises deleting, from the pixel data, pixels having a location situated below the object-detection space; creating a geometric model (1108; 1220) of the object pixel data, the geometric model including surface information of the objects in the object-detection space; generating one or more cuts (1116; 1214) in the geometric model (1108; 1220) to separate objects and obtain respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), wherein generating the one or more cuts is performed by a segmentation classifier trained on examples of touching items and a correct way to separate the touching items; and performing object recognition to identify each object in the object-detection space based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), the object recognition performed by a machine learning program based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218). removing, from the pixel data, background pixels of a background in the object-detection space to obtain object pixel data associated with the objects in the object-detection space, wherein removing the background comprises deleting, from the pixel data, pixels having a location situated below the object-detection space; creating a geometric model (1108; 1220) of the object pixel data, the geometric model including surface information of the objects in the object-detection space; generating one or more cuts (1116; 1214) in the geometric model (1108; 1220) to separate objects and obtain respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), wherein generating the one or more cuts is performed by a segmentation classifier trained on examples of touching items and a correct way to separate the touching items; and performing object recognition to identify each object in the object-detection space based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218), the object recognition performed by a machine learning program based on the respective object geometric models (1112, 1114; 1210, 1212) and object pixel data (1118, 1120; 1216, 1218).