A moving body position estimation device comprising: an image capturing means adapted to capture surroundings of a moving body to acquire a captured image; an edge image generating means adapted to extract edges from the captured image to generate an edge image; a storing means for storing a map data comprising edge information and position information of structures existing in the surroundings of the moving body; a virtual image generating means adapted to set multiple particles which are assumed positions and orientations of the moving body and to convert the edge information of the map data for each particle to a virtual image captured from the assumed positions and orientations; an evaluation value calculation means adapted to compare for each particle the edge image and virtual image corresponding to the particle, and assigns an evaluation value to each particle; a position and orientation estimation means which estimates the position of the moving body based on the evaluation value for each particle; wherein the evaluation value for a particle has a higher evaluation value if there are more overlapping edges between the images, and characterized in that the evaluation value for a particle has a higher evaluation value if there are more edges that are not overlapping edges between the images and for which an edge-to-edge distance, which is the distance between an edge in the edge image and an edge in the virtual image, is less than or equal to a predetermined distance; wherein the evaluation value calculation means is adapted to reduce the predetermined distance as an edge density of the edge image is increased. an image capturing means adapted to capture surroundings of a moving body to acquire a captured image; an edge image generating means adapted to extract edges from the captured image to generate an edge image; a storing means for storing a map data comprising edge information and position information of structures existing in the surroundings of the moving body; a virtual image generating means adapted to set multiple particles which are assumed positions and orientations of the moving body and to convert the edge information of the map data for each particle to a virtual image captured from the assumed positions and orientations; an evaluation value calculation means adapted to compare for each particle the edge image and virtual image corresponding to the particle, and assigns an evaluation value to each particle; a position and orientation estimation means which estimates the position of the moving body based on the evaluation value for each particle; wherein the evaluation value for a particle has a higher evaluation value if there are more overlapping edges between the images, and characterized in that the evaluation value for a particle has a higher evaluation value if there are more edges that are not overlapping edges between the images and for which an edge-to-edge distance, which is the distance between an edge in the edge image and an edge in the virtual image, is less than or equal to a predetermined distance; wherein the evaluation value calculation means is adapted to reduce the predetermined distance as an edge density of the edge image is increased.