I've been messing around with object detection using software such as Viseron, Frigate, or DOODS. I finally managed to get my hands on a Coral.ai device via Mouser and set it up, but sadly Viseron wasn't automatically discovering it. The error came through like this:
[2021-06-15 21:59:51] [viseron.mqtt ] [INFO ] - Initializing MQTT connection
[2021-06-15 21:59:51] [viseron.detector ] [DEBUG ] - Initializing object detector edgetpu
[2021-06-15 22:00:16] [viseron.detector.edgetpu] [ERROR ] - EdgeTPU not found. Detection will run on CPU
[2021-06-15 22:00:16] [viseron.detector.edgetpu] [DEBUG ] - Error when trying to load EdgeTPU: Failed to load delegate from libedgetpu.so.1
The other noticeable symptom was that the CPU was going crazy at over 300%, and that's just for a single 720p camera!
The fix ended up being pretty simple. Make sure in your Docker startup you have "-v /dev/bus/usb:/dev/bus/usb" and "--privileged". That part was pretty well documented. I also had to set the permissions of the Coral device node to 0666 before the Viseron process could open it.
/etc/udev/rules.d/99-edgetpu-accelerator.rules
SUBSYSTEM=="usb",ATTRS{idVendor}=="1a6e",GROUP="plugdev",MODE="0666"
SUBSYSTEM=="usb",ATTRS{idVendor}=="18d1",GROUP="plugdev",MODE="0666"
And now CPU load is only about 2%, which is much better.
Recent comments