Not sure if I can explain my question clearly but I will give a try -
I tried to train trafficcamnet based on my own dataset which is the traffic in a specific env, e.g tunnel with higher cam position. The expectation is that this will give the model more ability to detect object under such env, in the mean time, it still detects traffic under norml road enviroment as shown in the sample video files.
The training indeeded improved the detection under such env but it completedly corrupted the detection under normal road env.
I thought tlt works in an incremental way, seems it does not. If it does not, does it mean every time when I do the training I should give a complete dataset with various env?
Thanks,
Kai
Please provide the following information when requesting support.
• Hardware (T4/V100/Xavier/Nano/etc)
• Network Type (Detectnet_v2/Faster_rcnn/Yolo_v4/LPRnet/Mask_rcnn/Classification/etc)
• TLT Version (Please run “tlt info --verbose” and share “docker_tag” here)
• Training spec file(If have, please share here)
• How to reproduce the issue ? (This is for errors. Please share the command line and the detailed log here.)
TrafficCamNet v1.0 model was trained on a proprietary dataset with more than 3 million objects for car class. Most of the training dataset was collected and labeled in-house from several traffic cameras in a city in the US. The dataset also contains 40,000 images from a variety of dashcam to help with generalization and discrimination across classes. This content was chosen to improve accuracy of the object detection for images from a traffic cam at a traffic intersection.
TLT can help end user transfer learning their own datasets.
For your case, detecting cars in the tunnel with higher cam position, its data distribution is different from trafficcamnet’s. It is recommended to re-train the unpruned model with TLT with your own dataset. You can train part of the complete dataset, try finetuning parameters, then even increasing training data if mAP is not expected.
Yes, we did as you advised. The mAp is 90% which is quite good, however, when I tried to use this model to conduct interference, I found the detection only works on tunnel env but completely screwed with original env.
The data distribution in tunnel is quite different from dataset in training trafficcamnet. It brings regression in detecting ori env. So it is necessary to add some traffic data if targets for ori env.
I dont see huge differences between these 2 road enviroments so I used the ~200 pictures of the right env as the customer dataset. The result is still showing huge degradation for ori env.
This two environments are still not similar. Anyway, may I know which environment will you run inference?
The more training dataset closed to the actual environment for inference, the better result there will be. You can ignore the ori env if your inference environment is not similar to it.
I used the detectnet_v2.ipynb to do the training and evaluation. I wanted to leverage the pre-trained model, I thought this is one of the powerful benefits I get from TLT. Based on your explanation, in this case, there is no difference from w/o a TLT/a fresh start training - collecting own dataset, build the model then do the training from a fresh start.
No, the pre-trained model can play an important role in transfer learning. It has more advantage than training from random weights. Internally we ever triggered similar experiments with peoplenet pretrained models. Use it to train a public FLIR Dataset FREE - FLIR Thermal Dataset for Algorithm Training | Teledyne FLIR and find that it can achieve the same mAP with 2.5x less data. And also it proves that with peeplenet pretrained model, it can get the expected mAP with less epoch, which means lower training cost.
For your case, could you please share your training spec firstly?