Power Profiles
The camera's performance can be tuned using configurable power profiles. Selecting the right profile depends on whether you need raw neural-network inference throughput or CPU headroom.Adjusting the power profile is especially useful in situations where the camera may slow down due to thermal throttling after extended use. It allows you to choose which component - CPU or neural network - should be prioritized or sacrificed.Power profile selection is only supported on OAK-4 series cameras.Available Power Profiles and their characteristics
1.best_effort
- Balances both NN and CPU tasks fairly well
- Yields high inference FPS
- Also maintains higher CPU performance than sustained_nn_heavy in most cases
sustained_nn_heavy
- Prioritizes consistent NN inferences per second
- Often produces the highest FPS
- Comes at the cost of CPU efficiency, which drops notably under stress
sustained_cpu_heavy
- Returns the lowest FPS, especially for NN-heavy tasks
- In exchange, it offers excellent CPU efficiency, making it useful in CPU-bound or multitasking applications
Setting the Power Profile
When ssh-ed onto the camera switch power profile withagentconfd
:Command Line
1agentconfd power-switch --profile best_effort
Power Profiles Benchmark
We benchmarked five neural networks across three available power profiles to understand how inference speed and CPU efficiency are affected - while stressing the CPU at 100% using thestress-ng
tool in the background to simulate a heavy-load scenario.Benchmark Results (Under Full CPU Load)
Model | best_effort FPS VS Bogo Ops/s | sustained_cpu_heavy FPS VS Bogo Ops/s | sustained_nn_heavy FPS VS Bogo Ops/s |
---|---|---|---|
yolov8-instance-segmentation-large | 149.17fps 119.62ops/s | 57.83fps 119.41ops/s | 150.62fps 57.5ops/s |
yolov10-nano | 657.06fps 85.75ops/s | 238.3fps 118.88ops/s | 655.44fps 58.86ops/s |
yolo-world-l | 71.82fps 90.59ops/s | 27.57fps 119.09ops/s | 74.56fps 50.58ops/s |
scrfd-face-detection | 380.85fps 89.02ops/s | 131.42fps 119.7ops/s | 381.94fps 49.46ops/s |
yolov8-large-pose-estimation | 171.96fps 92.96ops/s | 65.36fps 119.36ops/s | 173.06fps 52.76ops/s |
What Does “Bogo Ops/s (usr+sys)” Measure?
It gives an estimate of how many CPU operations per second are executed. It's calculated as:bogo ops/s = total bogo ops / (user time + system time)
- Higher values = more efficient CPU execution
- Measured via: stress-ng
- Useful for comparing how much strain power profiles place on CPU resources
Measurement accuracy
- FPS (Frames Per Second) values were collected using the
modelconverter benchmark
tool and have an approximate ±10% margin of error. - CPU efficiency (bogo ops/s) was measured using
stress-ng
output underuser+system
time. However, it's important to treat these numbers as observational only, not precise performance metrics.