Amphorae detection using Deep Learning
In our context, we detect amphorae in a 3D scene. Amphora detection is a challenging problem, as amphorae vary in orientation and appearance. Indeed, they can be broken or hidden under the sand or by another amphora. Moreover the second difficulty has to do with the data; as a matter of fact, the amount of examples of amphora is very low which is an issue to train a machine learning model. To deal with the high number of 3D points we detect the amphorae directly on the orthophoto obtained by the 2D projection. The size of this orthophoto is around 38,000x15,000 pixels. To avoid the lack of data, we use a pixel segmentation method based on a CNN. However the CNN can not process the entire image at once. In such a case, it is thus appropriate to process the image piece by piece. So we propose to use a sliding window to get patches of size 400x400 as input of the CNN.
The CNN is composed of 7 convolution layers and 3 pooling layers to reduce the dimension of the input image to a set of feature maps of size 25x25. The CNN is then composed by 3 unpooling layers and 3 convolution layers to obtain the final probability map. We perform a batch normalization and then we apply the rectified linear unit (ReLU) function after each convolution.
To train the model we have to define a loss function which is the error propagate in the network. We used the euclidean distance between the prediction maps and the ground truth as error. To get more diversity, we try to separate the image in three classes : the head which is the rim, the neck and the handles of the amphora; the body of the amphora; and all others objects such as rock, sand, piece of amphora. The training is performed on GTX 1080 using Tensorflow and takes around one day. The training database is composed around 25% of the image.
After the prediction step we obtain a map with for each pixel the probability belong the three different classes. We perform a difference of Gaussian process to find the blob corresponding to the amphorae. The error are on the detection of the millstone. Indeed, in the training database this object is not represented and so the model makes some false positive over its representation. The figure above represent the different steps.
Here related published papers:
• Pasquet, J., Demesticha, S., Skarlatos, D., Merad, D., & Drap, P. (2017, October 23-25). Amphora Detection Based on a Gradient Weighted Error in a Convolution Neuronal Network. Paper presented at the IMEKO International Conference on Metrology for Archaeology and Cultural Heritage, Lecce, Italy.