I have been working on a custom project involving car number plate and text detection between number plates. My number plates look like this:
They consist of a city name, a letter code, and some digits (e.g., 0 to 9). Note: There are a total of 50 cities, so I have created 50 city classes (e.g., CityA, CityB, CityC…). There are 20 different combinations of letter codes, so I have created 20 different letter code classes (e.g., XY, YZ, ZX…). The digits are made up of 10 types of digit combinations, so I have created 10 types of digit classes from 0 to 9. In total, I have created 81 classes.
Class 0: Number Plate
Class 1: CityA
Class 2: CityB
Class 3: CityC
...
Class 51: XY
Class 52: YZ
Class 53: XZ
...
Class 71: 0
...
Class 80: 9
My dataset consisted of a total of 2000 pictures, each with a corresponding number plate class. On average, there were 40 classes for 50 cities, 100 classes for 20 different letter codes, and 200 classes for 10 different digits. After annotating all the pictures in the dataset in this manner, I trained my model using YOLOv8. However, in the confusion matrix, it only detected the number plate class but was not able to detect any other classes between the number plates. How can I solve this problem so that my model can detect the number plate class and other classes (texts) between the number plates?
Note: Please don’t suggest using OCR, as I want to detect the texts between the number plates as object.