I have trained an Image Classification ML.NET model with this project on GitHub
https://github.com/quocthang0507/ImageClassificationWebAppWithML.NET
It uses ML.NET TensorFlow and selected pre-trained image classification model.
The purpose of my model is to determine, whether the picture is a truck with covered load or anything else. So at minimum I need ony 2 categories of images. Similar to a person wearing respirator or not, etc.
Some of the pictures are rather similar.... Covered on the left, uncovered on the right.

I can choose from some pretrained models here:
var options = new ImageClassificationTrainer.Options()
{
FeatureColumnName = "Image",
LabelColumnName = "LabelAsKey",
// Just by changing/selecting InceptionV3/MobilenetV2/ResnetV250
// you can try a different DNN architecture (TensorFlow pre-trained model).
Arch = ImageClassificationTrainer.Architecture.ResnetV2101,
Epoch = 200, //100
BatchSize = 10,
LearningRate = 0.01f,
MetricsCallback = (metrics) => Console.WriteLine(metrics),
ValidationSet = testDataView
};
Any ideas how to improve the training here? What pretrained model to use or how to use some TensorFlow model that is not supported directly by ML.NET like YOLO? Or perhaps not to use pretrained models at all?
It seems to me, that I get best results with smallest variant available = MobilenetV2.