[Feature-Request] YOLOX Support
See original GitHub issueStart with the why
:
The tiny variant of YOLOX has a number of advantages over yolov4-tiny:
- Significantly higher AP: 33% v.s. 22%!
- It’s Anchorless
- It’s slightly smaller, so it should offer higher frame rates.
There is also a nano variant that would be useful in low power applications, or in situations where you want to run multiple models.
Move to the what
:
It would be great if there was first class support for YOLOX in the DepthAI Python and C++ APIs, e.g. by adding support for YOLOX to the existing YoloDetectionNetwork pipeline node. YOLOX is anchorless, so the existing device side decoding probably won’t work. I tried it out anyway (by following the OpenVINO instructions on the YOLOX github page, and then compiling to a blob for the myriad), but i get the following error:
[14442C10F1C14ED000] [50.022] [system] [critical] Fatal error. Please report to developers. Log: 'PlgDetectionParser' '109'
Issue Analytics
- State:
- Created 2 years ago
- Reactions:5
- Comments:14 (6 by maintainers)
YOLOX (OpenVINO IR and Myriad Inference Blob, ONNX, etc…)
https://github.com/PINTO0309/PINTO_model_zoo/tree/main/132_YOLOX
This is an old model that was converted within a day after YOLOX was officially released. Please ignore this if it is not helpful as I am not aware of the flow of the discussion.
Thanks @Luxonis-Brandon. I used the example you shared and the YOLOX OpenVINO demo code to build a working solution. Please see the code at the end of this comment, and the attached zip containing a blob for the Myriad. There are some major drawbacks with this approach:
As for the performance impact, i get ~15fps running the attached code on my 8700k v.s. ~28 for yolo4 running via the YoloDetectionNetwork node. It’s going to be completely unworkable on the ESP, so i haven’t tried it.
On the positive side, it does seem to be more accurate than yolov4 in practice, e.g. if i point the camera at my face, then yolo4 says i’m a dog (i had headphones on at the time, which probably didn’t help…), v.s YOLOX says i’m a person. YOLOX also detects the picture of my dog that I have sitting on my desk as a dog whereas yolo4 oscillates between cat and dog. I did notice that the YOLOX bounding boxes were a bit janky for really large objects. Anyway, this very scientific test proves that you should look into it further 😄
yolox_tiny.zip