Hi, and thanks again for helping. But then isn't this page misleading?
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
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?