I am currently integrating the Oak-D
Pro camera into tacking project infrastructure. I have encountered a
couple of questions regarding the optimization and usage of its
features, specifically related to converting mono camera channels to a
single grayscale channel and the RAM usage associated with the CMX when
using the ImageManip node.

For converting the output of mono camera channels into a single
grayscale channel, I have been utilizing the 'node.ImageManip' with the
type set to GRAY8 as suggested in one of forum's thread. I am
curious if there exists an alternative method to accomplish this
conversion without using 'node.ImageManip'?

I have also noticed that when using the ImageManip node for
processing images from 720P mono cameras, the CMX RAM usage is
approximately 2.48 MiB out of a total of 2.5 MiB. This usage seems quite
high, and I am concerned about these numbers in terms of stability. I
just want to clarify this because it may be expected behavior even when
using only 2 ImageManip nodes in pipeline. Additionally, without the use
of ImageManip, the CMX usage drops to about 2.02 MiB. Could you provide
insight into whether the CMX has a significant impact on performance?
Moreover, are there strategies or recommendations on how to reduce RAM
usage while maintaining the desired image processing capabilities?

Thanks in advance, Wiktor

  • jakaskerl replied to this.
  • Wiktor For converting the output of mono camera channels into a single
    grayscale channel, I have been utilizing the 'node.ImageManip' with the
    type set to GRAY8 as suggested in one of forum's thread. I am
    curious if there exists an alternative method to accomplish this
    conversion without using 'node.ImageManip'?

    Output of mono camera IS GRAY8 image. If you mean color camera, then no. The only way currently is with ImgManip.

    Wiktor Could you provide
    insight into whether the CMX has a significant impact on performance?

    CMX are memory slices that don't impact performance much, unless there isn't enough memory left. The baseline usage is 2MiB because the nodes preallocate the memory even if they don't use it.
    ImageManip (and some other things) run on the last 500KiB of memory. Currently this isn't extendable.

    Moreover, are there strategies or recommendations on how to reduce RAM
    usage while maintaining the desired image processing capabilities?

    https://docs.luxonis.com/projects/api/en/latest/tutorials/ram_usage/#decreasing-ram-consumption

    Thanks,
    Jaka

    Wiktor For converting the output of mono camera channels into a single
    grayscale channel, I have been utilizing the 'node.ImageManip' with the
    type set to GRAY8 as suggested in one of forum's thread. I am
    curious if there exists an alternative method to accomplish this
    conversion without using 'node.ImageManip'?

    Output of mono camera IS GRAY8 image. If you mean color camera, then no. The only way currently is with ImgManip.

    Wiktor Could you provide
    insight into whether the CMX has a significant impact on performance?

    CMX are memory slices that don't impact performance much, unless there isn't enough memory left. The baseline usage is 2MiB because the nodes preallocate the memory even if they don't use it.
    ImageManip (and some other things) run on the last 500KiB of memory. Currently this isn't extendable.

    Moreover, are there strategies or recommendations on how to reduce RAM
    usage while maintaining the desired image processing capabilities?

    https://docs.luxonis.com/projects/api/en/latest/tutorials/ram_usage/#decreasing-ram-consumption

    Thanks,
    Jaka