A touch sensing apparatus, comprising: a touch surface, a plurality of emitters arranged around a periphery of the touch surface, the plurality of emitters configured to emit beams of light such that one or more objects touching the touch surface cause an attenuation of the light; a plurality of detectors arranged around the periphery of the touch surface, the plurality of detectors configured to receive light from the plurality of emitters on a plurality of light paths, wherein each detector in the plurality of detectors is arranged to receive light from more than one emitter in the plurality of emitters; and a hardware processor configured to: determine, based on output signals generated by the plurality of detectors, a light energy value for each light path of the plurality of light paths; generate a transmission value for each light path of the plurality of light paths based on the light energy value; store a plurality of object IDs, each having an associated attenuation value range, and from at least part of the thus-generated transmission values, determine for each obj ect: a position of the object on the touch surface, and an attenuation value corresponding to the attenuation of the light resulting from the object touching the touch surface, an occlusion compensation value indicative of the occlusion, by other objects on the touch surface, of light paths intersecting with the object, an object type of the object in dependence on the attenuation value and occlusion compensation value, an occlusion compensated attenuation value for the object in dependence on the attenuation value and the occlusion compensation value, and identify an object ID with an attenuation value range corresponding to the occlusion compensated attenuation value of the object and associating the object ID with the object. a touch surface, a plurality of emitters arranged around a periphery of the touch surface, the plurality of emitters configured to emit beams of light such that one or more objects touching the touch surface cause an attenuation of the light; a plurality of detectors arranged around the periphery of the touch surface, the plurality of detectors configured to receive light from the plurality of emitters on a plurality of light paths, wherein each detector in the plurality of detectors is arranged to receive light from more than one emitter in the plurality of emitters; and a hardware processor configured to: determine, based on output signals generated by the plurality of detectors, a light energy value for each light path of the plurality of light paths; generate a transmission value for each light path of the plurality of light paths based on the light energy value; store a plurality of object IDs, each having an associated attenuation value range, and from at least part of the thus-generated transmission values, determine for each obj ect: a position of the object on the touch surface, and an attenuation value corresponding to the attenuation of the light resulting from the object touching the touch surface, an occlusion compensation value indicative of the occlusion, by other objects on the touch surface, of light paths intersecting with the object, an object type of the object in dependence on the attenuation value and occlusion compensation value, an occlusion compensated attenuation value for the object in dependence on the attenuation value and the occlusion compensation value, and identify an object ID with an attenuation value range corresponding to the occlusion compensated attenuation value of the object and associating the object ID with the object. determine, based on output signals generated by the plurality of detectors, a light energy value for each light path of the plurality of light paths; generate a transmission value for each light path of the plurality of light paths based on the light energy value; store a plurality of object IDs, each having an associated attenuation value range, and from at least part of the thus-generated transmission values, determine for each obj ect: a position of the object on the touch surface, and an attenuation value corresponding to the attenuation of the light resulting from the object touching the touch surface, an occlusion compensation value indicative of the occlusion, by other objects on the touch surface, of light paths intersecting with the object, an object type of the object in dependence on the attenuation value and occlusion compensation value, an occlusion compensated attenuation value for the object in dependence on the attenuation value and the occlusion compensation value, and a position of the object on the touch surface, and an attenuation value corresponding to the attenuation of the light resulting from the object touching the touch surface, an occlusion compensation value indicative of the occlusion, by other objects on the touch surface, of light paths intersecting with the object, an object type of the object in dependence on the attenuation value and occlusion compensation value, an occlusion compensated attenuation value for the object in dependence on the attenuation value and the occlusion compensation value, and identify an object ID with an attenuation value range corresponding to the occlusion compensated attenuation value of the object and associating the object ID with the object.