Thanks for the tutorial. The NAS pose is a way more complicated to train in comparison to yolov8 pose. I think we will stay with ultralytics for long time even if v8 is 2% lower than newest sota models. But convenience of v8 is priceless, to train, run, in conda prompt is a single line. Thanks for Glen and all the members of ultralytics that work on such a user friendly tool.
That’s for sure! And I agree with you 100%. But YOLO-NAS is slightly better but slower in my experience. But do remember, yolonas can be used for commercial projects which yolov8 can’t without a license. So still very useful to know how to train custom yolonas models. Also this is how you will train a model your self and each step. So do also remember that you will learn 100 times more following this compared to running a one liner
Natively I'm FPGA programmer since 2010, worked mainly on implementation of voice/image recognition, object tracking, multi channel ADC and similar projects where real-time processing and stable latency are required. And a year ago I jumped into GPU and CNNs. I have used yolov8 for insect detection, then tracking with Bytetrack (on first month of release when yolov8 had not integrated the track mode), orientation estimation with keypoints. Now I'm working on person pose tracking in thermal images. With v8 it works pretty well, even better after slight modification of loss function, involving simple L1 and L2 norms, because current pose Loss is based on OKS and sigmas only. I plan to use your tutorial to train NAS pose on my dataset and compare performance. Thanks for your job. You, Aarohi and Peter Skalski are my favorite teachers :)
@@NicolaiAI yolo-nas-pose are heavy. Training took long time. I think 4-8 times longer than equivalent yolov8 pose models. Even yolo-nas-pose-n average model is 38 MB :(
Hey great work! I have a question though, what if I have two classes that come under the supercategory? Both of them use 2 keypoints. In this case how am i supposed to edit the contents of 'PoseEstimationDataset'? I have noticed that its only using category 0 in the code you provided 'joints = json_annotations["categories"][0]["keypoints"]'. Any help would be appreciated!
Hello, thank you so much for the video. I'm trying to run it with a custom dataset imported from roboflow and I keep getting 'nan' in the validation set. I get it in all metrics except for AR and AP. Has anyone encountered this error? What can I do?
Does anybody get the StopIteration Error when executed this line trainer.train(model=yolo_nas_pose, training_params=train_params, train_loader=train_dataloader, valid_loader=val_dataloader )