1. An apparatus for matching images from heterogeneous sources, the apparatus comprising: a memory; and at least one processor device, coupled to the memory, operative to: (a) parse the images into different semantic labeled regions; (b) create a list of potential matches by matching the images based on two or more of the images having same semantic labeled regions; and (c) prune the list of potential matches created in step (b) by taking into consideration spatial arrangements of the semantic labeled regions in the images.