# Image-Based Arabian Camel Breed Classification Using Transfer Learning on CNNs
## 2 Literature Review
### ML-Based Approaches for Animal Breeds Classification  
Different studies in the literature used various CNN models to predict the breeds of different animals (e.g., dogs, horses, buffalo, goats, and sheep) using image data. [PERSON] et al. [21] employed the transfer learning approach on two neural network architectures, VGG16 and Inception V3, to classify dogs into breeds based on their images. Their results show that Inception V3 works better than VGG16 on dog breed prediction with an accuracy of 85%. In addition, [PERSON] et al. [22] also tried to solve the dog classification problem based on a dog's images using the transfer learning approach on two different CNN architectures, NASNet-A mobile and Inception Resnet V2. Their results show that NASNet-A generates 10% less accuracy than deep Inception Resnet V2, indicating that Inception Resnet V2 performed the best in their experiments with an accuracy of 90.69%. Additionally, [PERSON] et al. [23] proposed a method that also applies the transfer learning approach by retraining three existing pre-trained CNNs, MobileNetV2, InceptionV3, and NASNet, to recognize dog breeds based on their images. Their proposed method was evaluated based on the three CNNs with various augmentation settings and the results show that the NASNet model with augmented data achieves the best accuracy of 89.92%. Furthermore, [PERSON] et al. [24] attempted to identify the breed of dogs from input images. They have used a variety of techniques to categorize the images in a dataset, which includes 120 distinct dog breeds, originally taken from Kaggle. They investigated a CNN model under different settings to build their model but ended up adopting Xception and a multilayered Perceptron architectures as their prediction approach. They tried to achieve a higher accuracy rate and reduced error rate by modifying the parameters. They found that their best model had a log-loss of 9.5954 and a balanced accuracy of 54.80%. Moreover, [PERSON] et al. [25] attempted to tackle another classification task with 120 classes representing diverse dog breeds. They adopted various augmentation techniques such as flipping, zooming, moving, and rescaling. They applied deep CNN and transfer learning in their approach to improve classification accuracy. More specifically, they configured the ResNet-101 architecture as their feature extractor and applied transfer learning as the training method using a softmax activation function in the classifier. Their experiments showed that ResNet-101 achieved the highest accuracy of 71.63% among other models. In addition, [PERSON] et al. [26] used convolutional neural networks to distinguish between 120 different dog breeds. They employed transfer learning because their data was not sufficiently large to prevent overfitting. The authors carried out dog breed identification using four separate techniques, each with a unique training model, i.e., ResNet18, VGG16, DenseNet161, and AlexNet. They also made some adjustments to the optimization methods based on their models to improve the identification accuracy. They found that the DenseNet model was the best and adopted it as their main model which achieved an accuracy of 85.14%. Another related work by [PERSON] and [PERSON] [27] used a pre-trained CNN model to extract the breed feature from a dog breed dataset. The authors compared the results of multiple pre-trained models, including DenseNet-121, ResNet50, DenseNet169, and GoogleNet which were all pre-trained on ImageNet. Then, they applied data augmentation and fine-tuned the models to improve the breed identification accuracy of the models. They discovered that the ResNet50 model can generate 89.66% test accuracy after fine-tuning, which is the best among all the models they tested with. [PERSON]'s study [28] applies transfer learning on well-known deep CNN classifiers, including VGG architectures, InceptionV3, ResNet50, and Xception for horse breed recognition using horse images.