From 98b280884c9c14206a33bca4e982ffc56c06e7b5 Mon Sep 17 00:00:00 2001 From: Nate Meyer Date: Tue, 11 Oct 2022 00:09:08 -0400 Subject: [PATCH] Add documentation around Intel CPU requirements and NCS2 setup --- docs/docs/configuration/detectors.md | 43 ++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/docs/docs/configuration/detectors.md b/docs/docs/configuration/detectors.md index 63dd7299f..45951ac60 100644 --- a/docs/docs/configuration/detectors.md +++ b/docs/docs/configuration/detectors.md @@ -78,13 +78,13 @@ detectors: When using CPU detectors, you can add a CPU detector per camera. Adding more detectors than the number of cameras should not improve performance. -## OpenVino +## OpenVINO -The OpenVino detector allows Frigate to run an OpenVino IR model on Intel CPU, GPU and VPU hardware. +The OpenVINO detector allows Frigate to run an OpenVINO IR model on Intel CPU, GPU and VPU hardware. -### OpenVino Devices +### OpenVINO Devices -The OpenVino detector supports the Intel-supplied device plugins and can specify one or more devices in the configuration. See OpenVino's device naming conventions in the [Device Documentation](https://docs.openvino.ai/latest/openvino_docs_OV_UG_Working_with_devices.html) for more detail. Other supported devices could be `AUTO`, `CPU`, `GPU`, etc. +The OpenVINO detector supports the Intel-supplied device plugins and can specify one or more devices in the configuration. See OpenVINO's device naming conventions in the [Device Documentation](https://docs.openvino.ai/latest/openvino_docs_OV_UG_Working_with_devices.html) for more detail. Other supported devices could be `AUTO`, `CPU`, `GPU`, `MYRIAD`, etc. ```yaml detectors: @@ -93,9 +93,40 @@ detectors: device: GPU ``` -### OpenVino Models +OpenVINO is supported on 6th Gen Intel platforms (Skylake) and newer. A supported Intel platform is required to use the GPU device with OpenVINO. The `MYRIAD` device may be run on any platform, including Arm devices. For detailed system requirements, see [OpenVINO System Requirements](https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/system-requirements.html) -The included model for an OpenVino detector comes from Intel's Open Model Zoo [SSDLite MobileNet V2](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssdlite_mobilenet_v2) and is converted to an FP16 precision IR model. Use the model configuration shown below when using the OpenVino detector. +#### Intel NCS2 VPU and Myriad X Setup + +Intel produces a neural net inference accelleration chip called Myriad X. This chip was sold in their Neural Compute Stick 2 (NCS2) which has been discontinued. If intending to use the MYRIAD device for accelleration, additional setup is required to pass through the USB device. The host needs a udev rule installed to handle the NCS2 device. + +```bash +sudo usermod -a -G users "$(whoami)" +cat < 97-myriad-usbboot.rules +SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" +SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1" +EOF +sudo cp 97-myriad-usbboot.rules /etc/udev/rules.d/ +sudo udevadm control --reload-rules +sudo udevadm trigger +``` + +Additionally, the Frigate docker container needs to run with the following configuration: + +```bash +--device-cgroup-rule='c 189:\* rmw' -v /dev/bus/usb:/dev/bus/usb +``` +or in your compose file: + +```yml +device_cgroup_rules: + - 'c 189:* rmw' +volumes: + - /dev/bus/usb:/dev/bus/usb +``` + +### OpenVINO Models + +The included model for an OpenVINO detector comes from Intel's Open Model Zoo [SSDLite MobileNet V2](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssdlite_mobilenet_v2) and is converted to an FP16 precision IR model. Use the model configuration shown below when using the OpenVINO detector. ```yaml model: