I think the problem is probably that you have wrapped the symbols in little rectangles (the blue/green/red/white backgrounds) before pasting them onto the random backgrounds, so the network is learning that they have to be wrapped in rectangles to count as objects, and thus fails on your real data in which they are not wrapped in rectangles.
It's not clear what the best solution is, but one possible approach would be to try and just extract the black strokes that make up the symbol, and try randomly pasting just those on the random background images (this might be a little more technically challenging to implement, you would have to store the symbols as images with an alpha/transparency channel, with an alpha of 1 where the symbols' strokes are and an alpha of 0 everywhere else. Then when pasting, do alpha compositing).
Also you probably want a wider variety of random rotation and scaling, and probably even perspective transforms.
AllDogsAreBlue t1_itsfh37 wrote
Reply to [P] Object detection model learns backgrounds and not objects by Waterfront_xD
I think the problem is probably that you have wrapped the symbols in little rectangles (the blue/green/red/white backgrounds) before pasting them onto the random backgrounds, so the network is learning that they have to be wrapped in rectangles to count as objects, and thus fails on your real data in which they are not wrapped in rectangles.
It's not clear what the best solution is, but one possible approach would be to try and just extract the black strokes that make up the symbol, and try randomly pasting just those on the random background images (this might be a little more technically challenging to implement, you would have to store the symbols as images with an alpha/transparency channel, with an alpha of 1 where the symbols' strokes are and an alpha of 0 everywhere else. Then when pasting, do alpha compositing).
Also you probably want a wider variety of random rotation and scaling, and probably even perspective transforms.