Part Number: AM68A
Other Parts Discussed in Thread: TDA4VL,
I've got a relatively large semantic segmentation model that I've compiled and am running on my SK-AM68A dev board. I've got the AM68A part derated via 'k3conf' so that it behaves like a TDA4VL. The model is integrated with the TI model configs so that I can run it via "/opt/edgeai-gst-apps/optiflow/optiflow.sh" or "/opt/edgeai-gst-apps/apps_python/app_edgeai.py". I'm getting ~10fps using Optiflow and ~8fps using Python. While the Optiflow execution is giving me a better frame rate overall, I've noticed that the latency is pretty bad compared to using Python. Optiflow has a noticeable lag of around 500ms which is visibly apparent when using my IMX219 camera input. I can easily see that motion lags on the connected display. On the other hand, the Python implementation does not appear to suffer this same amount of lag.
I took a step back and decided to test out one of the stock models provided by TI, ONR-SS-8610-deeplabv3lite-mobv2-ade20k32-512x512, via /opt/edgeai-gst-apps/configs/imx219_cam_example.yaml. That has better performance than my custom model (30fps via Optiflow, 26fps via Python), but I still see a noticeable lag. If I enable gstreamer latency tracers for pipeline+element, I see a reported total latency of 198ms for Optiflow vs 59ms for Python. That aligns with what I observe on the connected display.
Is there any explanation why Optiflow would have this larger latency? Is there anything that can be done to address it?
For what it's worth, I'm using https://github.com/podborski/GStreamerLatencyPlotter to report and plot the latency info.