If I understand the follow-up correctly, you are seeing a different behavior depending if you are feeding the object images through your “training pipeline” or through your camera?
If that’s the case, then this might be expected, as I’ve worked with models in the past, which were even sensitive to different JPEG decoding setups.
Could you create a (small) dataset captured by your camera, label it, and add to the training and validation set? The difference in the sample domains (training images vs. camera capture) might introduce enough signal, that your model is unable to properly predict the camera images.