Over this past week (and the last few days of spring break), I have many updates.

I was successfully able to complete training of the YOLOv7-tiny model and ended with great results!  The below charts summarize the training, validation, and testing results across all classes.

Training Results (@ 0.01 confidence)

 

Validation Results (@ 0.68 confidence)

Testing Results (@ 0.68 confidence)

For my final training results, my hyperparameter tuning log shows what infrastructure was used and the final adjusted tuning parameters. For any parameter not mentioned, I used the default from hyp.scratch.tiny.yaml. Similarly, for training YOLOv7, I used hyp.scratch.p5.yaml. To train, I used a combination of GCP with 4 T4s and Colab Pro with A100 or V100. For the final training set, I used V100 for the best YOLOv7-tiny weights I got.

Unfortunately, although I did also train YOLOv7 as per my log and logged results, I accidentally deleted the Colab runtime before the weights saved to my PC, not realizing that 10 minutes was not long enough for it to save unlike the tiny weights. However, since YOLOv7-tiny came out so well, it may not be necessary to have YOLOv7 after all. Cumulatively, training, figuring out how to acquire and use my GCP credits properly, building my own custom dataset, and reasoning about potentially using a distributed system to train my model took about 50hrs over the course of the last couple weeks.

I was also able to run the tiny model on the Jetson Nano Orin, as demonstrated in the videos here and here. This itself took ~12hrs since although I had the script ready to go, installing the right packages took much more time than expected (including installing a newer version of cmake)! The detections run at ~12 FPS when the weights are in .pt format.

Like my teammates, I also completed the ethics assignment. I also participated a bit in build conceptualization/visiting RoboClub.

As per the Gantt chart, I caught up and am on schedule since I can begin integration the upcoming week. However, since it is unlikely we will be ready to begin integrating parts together next week, I would like to use the weights that I’ve converted into .trt format (here) to get the model running even faster, since .trt format is optimized for the hardware the model is running on.

Additionally, since this week I’ve easily spent  >30hrs on this project, I plan to take it easier next week by only getting the .trt model to run on the Orin (ideal interim demo version). If I have time, I may also better define explicit inputs and outputs for full integration, although I think it is unlikely for us to be ready for integration the week after regardless.


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *