Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] IMX582 (Oak-1 Max) out of memory for still capture at 5312X6000 #1239

Open
timlod opened this issue Feb 12, 2025 · 2 comments
Open

[BUG] IMX582 (Oak-1 Max) out of memory for still capture at 5312X6000 #1239

timlod opened this issue Feb 12, 2025 · 2 comments
Labels
bug Something isn't working

Comments

@timlod
Copy link

timlod commented Feb 12, 2025

Describe the bug
When setting up the Oak-1 Max for still capture at max resolution, we get the following error:
RuntimeError: ColorCamera(0) - Out of memory while creating pool for 'still' frames. Number of frames: 4 each with size: 47808000B

Minimal Reproducible Example

pipeline = dai.Pipeline()
cam_rgb = pipeline.createColorCamera()
cam_rgb.setResolution(dai.ColorCameraProperties.SensorResolution.THE_5312X6000)
xout_still = pipeline.createXLinkOut()
xout_still.setStreamName("still")
cam_rgb.still.link(xout_still.input)
device = dai.Device(pipeline)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[242], line 1
----> 1 device = dai.Device(pipeline)

RuntimeError: ColorCamera(0) - Out of memory while creating pool for 'still' frames. Number of frames: 4 each with size: 47808000B

Expected behavior
It should work fine.

Attach system log

{
    "architecture": "64bit ELF",
    "machine": "x86_64",
    "platform": "Linux-6.9.3-76060903-generic-x86_64-with-glibc2.35",
    "processor": "x86_64",
    "python_build": "main Dec  4 2024 08:55:07",
    "python_compiler": "GCC 11.4.0",
    "python_implementation": "CPython",
    "python_version": "3.11.11",
    "release": "6.9.3-76060903-generic",
    "system": "Linux",
    "version": "#202405300957~1738770968~22.04~d5f7c84 SMP PREEMPT_DYNAMIC Wed F",
    "win32_ver": "",
    "packages": [
        "blobconverter==1.4.3",
        "certifi==2024.12.14",
        "charset-normalizer==2.0.12",
        "Deprecated==1.2.15",
        "depthai==2.24.0.0",
        "depthai-sdk==1.9.4",
        "depthai-viewer==0.2.8",
        "distinctipy==1.3.4",
        "ffmpy3==0.2.4",
        "idna==3.10",
        "lz4==4.3.3",
        "marshmallow==3.17.0",
        "mcap==1.2.2",
        "mcap-ros1-support==0.0.8",
        "numpy==1.26.4",
        "opencv-contrib-python==4.5.5.62",
        "packaging==24.2",
        "pip==24.3.1",
        "pyarrow==16.0.0",
        "PyQt5==5.15.5",
        "PyQt5-Qt5==5.15.16",
        "PyQt5_sip==12.16.1",
        "pytube==15.0.0",
        "PyTurboJPEG==1.6.4",
        "pyusb==1.2.1",
        "PyYAML==6.0.2",
        "Qt.py==1.4.1",
        "requests==2.26.0",
        "rosbags==0.9.11",
        "ruamel.yaml==0.18.10",
        "ruamel.yaml.clib==0.2.12",
        "scipy==1.15.1",
        "sentry-sdk==1.14.0",
        "setuptools==75.8.0",
        "types-PySide2==5.15.2.1.7",
        "urllib3==1.26.20",
        "wrapt==1.17.2",
        "xmltodict==0.14.2",
        "zstandard==0.23.0"
    ],
    "usb": [
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "SuperPlus"
        },
        {
            "port": 1,
            "vendor_id": "0x2109",
            "product_id": "0x0817",
            "speed": "Super"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "SuperPlus"
        },
        {
            "port": 5,
            "vendor_id": "0x2109",
            "product_id": "0x8817",
            "speed": "High"
        },
        {
            "port": 4,
            "vendor_id": "0x03e7",
            "product_id": "0x2485",
            "speed": "High"
        },
        {
            "port": 3,
            "vendor_id": "0x2109",
            "product_id": "0x0103",
            "speed": "Full"
        },
        {
            "port": 2,
            "vendor_id": "0x0bda",
            "product_id": "0x8153",
            "speed": "High"
        },
        {
            "port": 1,
            "vendor_id": "0x1209",
            "product_id": "0x2201",
            "speed": "Full"
        },
        {
            "port": 1,
            "vendor_id": "0x2109",
            "product_id": "0x2817",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "Super"
        },
        {
            "port": 1,
            "vendor_id": "0x174f",
            "product_id": "0x1812",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        },
        {
            "port": 1,
            "vendor_id": "0x04e8",
            "product_id": "0x4001",
            "speed": "Super"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "SuperPlus"
        },
        {
            "port": 3,
            "vendor_id": "0x06cb",
            "product_id": "0x00f9",
            "speed": "Full"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "SuperPlus"
        },
        {
            "port": 1,
            "vendor_id": "0x10ab",
            "product_id": "0x9309",
            "speed": "Full"
        },
        {
            "port": 3,
            "vendor_id": "0x05e3",
            "product_id": "0x0610",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        }
    ],
    "uname": [
        "Linux popmachine 6.9.3-76060903-generic #202405300957~1738770968~22.04~d5f7c84 SMP PREEMPT_DYNAMIC Wed F x86_64 x86_64"
    ]
}
@timlod timlod added the bug Something isn't working label Feb 12, 2025
@timlod
Copy link
Author

timlod commented Feb 13, 2025

I noticed that it will work with the video output unless a control is linked, then we get the same error.
isp works with both max resolution and control linked.
I'm not sure why control changes RAM, but I found this:
https://docs.luxonis.com/hardware/sensors/IMX582#IMX582-RVC2%20driver%20limits-IMX582%20RAM%20consumption
which suggests that we need to change pool sizes for things to work.
It might be helpful to add this to the RAM error message, or if a resolution could define the pools in such a way that it works - in the case of the IMX582, I imagine the reason people get this sensor is to shoot with those resolutions. Ideally it would work 'out-of-the-box' without custom settings.

@moratom
Copy link
Collaborator

moratom commented Feb 18, 2025

Thanks for the report @timlod !

We'll look into downsizing the pool sizes automatically for big resolutions, it will technically be a breaking change, since we now have well defined defaults, but it's worth doing, if not elsewhere than on the next major version of the library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants