No clue on how many images you’ll need to achieve the your goal, but generally several hundred or thousand will be ideal. From the examples you’ve shared, there’s some decent variety, but you might want to try using more location, additional angles, various lighting, and maybe even find another dartboard or two to image. The more variety in your source images, the better. Including other objects in the photos will help add variety as well. You could even include boards that have darts stuck in various locations as well (I would recommend since it’ll probably be part of your final use case). You can probably grab some images from online to help, if you don’t have other boards, or items that are normally found around dart boards. Here’s an example I found from a quick search:
I would also recommend including negative images, where you place other disc-shaped obects (even better if they somewhat resemble a dart board) to help the model train against what’s
not what you want to detect.
If I understand your goal, you wanted to use the key points to help deskew the board image, making it planar relative to the image (flat)? As an assumption, I presume that you’ll want to know the upright orientation, as it won’t be very useful if the deskewing placed the board upside down. That might make using segmentation more difficult, as you don’t get an orientation, and generally b/c the board is circular, orientation is going to be tricky without the use of distinct points. If I were to attempt this, I think I would annotate all of the numbers on the board. This way, you can establish the orientation, since the number will (I’m guessing) always have the same layout. There are two ways you could attempt using the numbers.
The first would be using key points, but instead of only 4, you would include one key point for each number. I would place the key points in order of the numbers for simplicity, and at the edge of the board so if a line is drawn through all points, you could generate the board outline. Hopefully, this will help with additional features for the model to learn, as the numbers span two-dimensions. You’ll still need to be fairly consistent with the placement of the key points to ensure consistent prediction locations. Assuming that works well, this will give you the orientation and the outer counter of the board, which should be able to help with deskewing the board.
If you find that including key points for all numbers on the board still doesn’t work very well, then you could instead using bounding boxes (a standard YOLO detect model). Annotating bounding boxes for each number will again help provide you with multiple locations to help with deskewing and orientation. It won’t give you the outer contour as easily, but that could be a secondary step. The key to annotating with bounding boxes, will be to ensure that the sides of the boxes are touching the boundary of the number. When you do this, the center of the bounding box (x, y) can be used as a key point, and you should be able to place all of these at the same radius from the bullseye. Alternatively, you could attempt to capture three numbers inside a single bounding box, for the top, left, right, and bottom locations, but I suspect that this would be challenging to do consistently.