A method for tracking swimmers comprising: obtaining a first multiplicity of images taken by at least one overhead capture device overlooking a body of water having a surface; detecting a swimmer in at least some images from the first multiplicity of images, wherein the swimmer is depicted outside the body of water or separated from other swimmers in at least some of the first multiplicity of images; determining a first descriptor and a second descriptor of the swimmer, based on the at least some images from the first multiplicity of images, wherein the first descriptor is based on a first set of values of a set of visual attributes, the first set of values is determined from a portion of the swimmer that is outside the body of water, wherein the second descriptor is based on a second set of values of the same visual set of attributes, the second set of values being determined from a portion of the swimmer that is inside the body of water, wherein values of the set of attributes are determined based on visual characteristics extracted from the at least some images; obtaining a second multiplicity of images taken by the at least one overhead capture device; and tracking the swimmer in the second multiplicity of images, wherein said tracking comprises detecting the swimmer using at least one of the first descriptor and the second descriptor, wherein said detecting the swimmer is performed with respect to at least one image from the second multiplicity of images in which the swimmer is at least partially occluded by other swimmers or adjacent to other swimmers. obtaining a first multiplicity of images taken by at least one overhead capture device overlooking a body of water having a surface; detecting a swimmer in at least some images from the first multiplicity of images, wherein the swimmer is depicted outside the body of water or separated from other swimmers in at least some of the first multiplicity of images; determining a first descriptor and a second descriptor of the swimmer, based on the at least some images from the first multiplicity of images, wherein the first descriptor is based on a first set of values of a set of visual attributes, the first set of values is determined from a portion of the swimmer that is outside the body of water, wherein the second descriptor is based on a second set of values of the same visual set of attributes, the second set of values being determined from a portion of the swimmer that is inside the body of water, wherein values of the set of attributes are determined based on visual characteristics extracted from the at least some images; wherein the first descriptor is based on a first set of values of a set of visual attributes, the first set of values is determined from a portion of the swimmer that is outside the body of water, wherein the second descriptor is based on a second set of values of the same visual set of attributes, the second set of values being determined from a portion of the swimmer that is inside the body of water, wherein values of the set of attributes are determined based on visual characteristics extracted from the at least some images; obtaining a second multiplicity of images taken by the at least one overhead capture device; and tracking the swimmer in the second multiplicity of images, wherein said tracking comprises detecting the swimmer using at least one of the first descriptor and the second descriptor, wherein said detecting the swimmer is performed with respect to at least one image from the second multiplicity of images in which the swimmer is at least partially occluded by other swimmers or adjacent to other swimmers.