Based on having 16 classes, the naïve accuracy of a dummy classifier would be around 1/16 (6.25%) assuming class balance and the dummy classifier predicts each class according to uniform probabilities (see scikit-learn article on dummy classifiers). Therefore, your model is likely learning something useful beyond baseline.
Depending on the complexity of your images, your training set having only 750 images may be on the low side and may be the possible/likely culprit for low accuracy. Computer vision applications often require thousands of images for training. For example, see CIFAR-100, CIFAR-10, MNIST digits, and MNIST fashion datasets, which have thousands of images. For these large datasets, the achievable accuracy decreases as the complexity of the images increases (compare MNIST digits vs. MNIST fashion) and as the number of classes increases (compare CIFAR-100 vs. CIFAR-10).
Here, is what I suggest for diagnosis:
Plot training and validation loss and accuracy vs. epoch to assess whether your model is overfitting / underfitting.
Determine the accuracy achievable by humans on the same dataset to assess what type of accuracy may be reasonable. Of course, AI can outperform or underperform humans, so take this with a grain of salt.
If this a public dataset, search the literature for what accuracy other investigators have achieved.
Here is what I suggest to boost accuracy after you have run the diagnostics:
Consider generating more real data and/or using Data Augmentation.
Tune hyperparameters based on whether you are overfitting or underfitting.
Consider using a pre-trained model.