Hi, and thanks again for helping. But then isn't this page misleading?
https://docs.luxonis.com/projects/api/en/latest/tutorials/maximize_fov/#maximizing-fov
A challenge occurs when your NN model expects a different aspect ratio (eg. 1:1) compared to the sensors aspect ratio (eg. 4:3), and we want to run NN inference on the full FOV of the sensor. Let’s say we have a MobileNet-SSD that requires 300x300 frames (1:1 aspect ratio) - we have a few options:
- Stretch the ISP frame to 1:1 aspect ratio of the NN
The link for "1 Stretch the ISP frame" leads to the section below:
Change aspect ratio
Pros: Preserves full FOV. Cons: Due to stretched frames, NNs accuracy might decrease.
Changing aspect ratio (stretching) can be used Use camRgb.setPreviewKeepAspectRatio(False)
.
So this reads as setPreviewKeepAspectRatio false is preserving full FOV, by stretching ISP… Especially since on the picture it shows an ISP titled window and a "stretched frame" titled window which seem to have the same FOV, which is not true?
The gen2-full-fov-nn/api/stretching_api.py example scales down ISP (camRgb.setIspScale(1,5) # 4056x3040 -> 812x608) then uses a preview of the same size, which is then stretched to 1:1 through an imagemanip.
What's the shape of the video stream in that case? 12MP 4:3? 812x456 (a cropped 16:9 from 812x608) ? 812x608 4:3?
If preview is derived from video, I guess it's the last one, otherwise you're not full ISP fov. And the framerate, according to the example, has to be limited to 25FPS, because you're running @12MP.
So either you're not getting the FOV advertised (if you're just stretching video which is cropped), or you're not getting the FPS advertised (to take the extreme: 1080p @ 60FPS). But maybe I missed something again?