[request] generic YOLO example for OAK-4 deployment
Hey there, I've been playing with the OAK-4 and I see two examples that work for now depending on the branch: Yolo-p and "social distancing". Both are cool but I'm a bit confused about the deployment architecture between the .toml for calling the container build and the stuff that gets loaded in the main app from various luxonis remote ressources. It would be cool to have a super-basic "load a local yolo from folder" example in there to get started if possible :)
Thanks!
Hi @stephansturges ,
super happy that you are playing around with your new OAK-4. Indeed these experiments utilize quite a lot of things from different libraries we have (depthai, depthai-nodes, ZOO, etc) and can be a bit confusing for a beginner. For what you are asking for I would recommend you check out YOLO Host Decoding experiment.
How it works is that it pulls the YoloV6 from our ZOO - this contains both .dlc of the model and NNArchive (you can read what is NNarchive here). After that camera output is requested, we resize it into proper input shape for the model with ImageManip and link its output to NeuralNetwork node. Raw NN output is then linked to a custom HostDecoding node which postprocess it into regular detections. But note that you don't need to do manual decoding for yolo models because we already support them through DetectionNetwork node (docs here with a small snippet). We also have a tutorial for YoloV6 training+conversion and usage inside Depthai here that you can check out.
Regarding confusion around .toml files and containers: We have 2 options of running your application. You can either start it in peripheral mode which means that the Depthai pipeline will execute on the device and send data back to you host PC where you can further manipulate it (also send it back to device if you wish). The second option though is to run in standalone model which means that first your application will be bundeled together and sent as a whole package on the device. Every script will then be exectuted on the device and no data will be directly sent to your host PC. This is optimal if you want to create an application that just runs by its own on your device, requiring no additional computer connected to it.
Feel free to check the table here to see which experiments are currently already supported and which are actively being worked on. Note that the documentation for RVC4 is also still work in progress so it is possible that some things are still missing. But if something isn't clear enough feel free to ask.
Regards, Klemen