An image processing apparatus, comprising: a dictionary generation unit configured to generate a dictionary as a single dictionary in advance using a plurality of images of a detection target object picked up in advance by a camera, the plurality of images being obtained by arranging the detection target object at a corresponding plurality of positions in a predetermined range within an image-pickup range of the camera so as to make a predetermined visual axis of the camera and a normal-line direction of a detection target surface of the detection target object parallel to each other and being obtained by picking up each of the plurality of images by the camera at the corresponding plurality of positions such that the dictionary incorporates the image of the detection target object, the images including an image in which a shape of the detection target object is distorted, a processed image generation unit configured to acquire after generation of the dictionary an image around a vehicle picked up by the camera provided on the vehicle, and generate a processed image by perspectively projecting the image for target object detection processing onto a plane of projection, such that the processed image has the predetermined visual axis as a normal-line direction; a provisional detection unit configured to scan a scanning frame of a predetermined size according to the detection target object on the processed image, and detect a plurality of position candidate regions of the detection target object within the processed image by determining a feature value for respective scanning positions using the dictionary; and a final detection unit configured to determine an overlapping region of the plurality of position candidate regions, and determine a final detection position of the detection target object within the processed image based on the overlapping region and the plurality of position candidate regions. a dictionary generation unit configured to generate a dictionary as a single dictionary in advance using a plurality of images of a detection target object picked up in advance by a camera, the plurality of images being obtained by arranging the detection target object at a corresponding plurality of positions in a predetermined range within an image-pickup range of the camera so as to make a predetermined visual axis of the camera and a normal-line direction of a detection target surface of the detection target object parallel to each other and being obtained by picking up each of the plurality of images by the camera at the corresponding plurality of positions such that the dictionary incorporates the image of the detection target object, the images including an image in which a shape of the detection target object is distorted, a processed image generation unit configured to acquire after generation of the dictionary an image around a vehicle picked up by the camera provided on the vehicle, and generate a processed image by perspectively projecting the image for target object detection processing onto a plane of projection, such that the processed image has the predetermined visual axis as a normal-line direction; a provisional detection unit configured to scan a scanning frame of a predetermined size according to the detection target object on the processed image, and detect a plurality of position candidate regions of the detection target object within the processed image by determining a feature value for respective scanning positions using the dictionary; and a final detection unit configured to determine an overlapping region of the plurality of position candidate regions, and determine a final detection position of the detection target object within the processed image based on the overlapping region and the plurality of position candidate regions.