Hi, when running high frame rate, we usually do not need the ISP 3A. The gain and shutter speed are usually fixed. So maybe you can have an option to disable ISP for users like us. We need higher fps and we do NOT need ISP 3A, and ISP 3A will surely disturb our application. When we need higher fps, we need extra LED lights in a short period. And we would like to set the sensor's gain and shutter speed our own manually and NOT by the 3A algorithm. Because these extra LED lights are not always on due to the high power consumption, and we only turn LED lights on when we detect the object is passing and falls in our view area of camera. And the 3A algorithm must have to be disable in our application. Otherwise the gain and shutter speed calculated by 3A will make the images to bright when we turn the LED light on for a short period(maybe onlt 60 frames@200fps)
frankshieh

- Jun 18, 2022
- Joined Aug 8, 2021
- 0 best answers
Hi, I tried and I can get 113 fps using your script but this is still far behind 200 fps. If I want to add a 200P cropped image mode with your source codes to increase the fps, where shall I start? Or the 120fps is limited by internal pipeline and nothing I can try to increase it for current internal firmware?
- Edited
https://github.com/frankshieh/depthai-python/blob/main/mono_preview.py
https://github.com/frankshieh/depthai-core/blob/main/mono_preview/mono_preview.cpp
This is the codes I am testing for fps! The python gets about 102 fps while the cpp version gets about 94 fps.
And I am sure the fps is not slowed down by my PC's USB3 bus, I can get a 200 fps 640x400x2 stereo video stream using the same PC for another 3D camera.Thereotical OAKD-lite's stearo pair maximun frame rate is 200fps. But the actual tested result is about 80100 fps, is there any tuning method to increase the frame rate? I am using stereo images only and currently for capturing raw images!
- In OAK-D lite
Hi can OAK-D lite can do mono stereo video catching 400p @120 fps just like OAK-D?
erik I have tried both true and false, flase will be more stable and is currely used. Though it will lost some frames but aceptable in my application. And currently I am using 110 fps about 9ms per frame. I am going on with this setting!
frankshieh Hi, here is my updates: There's NO lost frames in release mode of my codes.
It seems debug mode will slow down callback hook sometimes and cause some frames lost. And release mode is OK as my preliminary tests.erik Hi, I have compared my codes with your callback_no_color.cpp . I have commented out L6870 :
if(!data.frame.empty()) {
cv::imshow(data.name.c_str(), data.frame);
}
But it seems program won't work without call opencv to show these images. After I add them back, I can get mono images at 110fps. But I found there are still some frames lost when I dump the time stamps of stored queues.
device.setXLinkChunkSize(0);
Has been added, the lost frames will be decreased. But still about less then 10 frames in one second will be lost. And we might try to interpolate them back. Or if there is some ways to get all frames unlost, please advice! Lost frames will cause us some troubles.
Thanks!erik No, I would like to remove RGB camera! But it seems the program is unstable after I remove RGB cam lines!
erik But I am using in VS C++ and I hope to get rectified images.Using python then we must have two programs running, one using python to get vedio streams and one is our golf program that is by c++.Seems a little complicated! Do you realy suuggest us getting video steam using python?
Hi, I am trying to catch mono images using callbacks, I modified the queue_add_callback.cpp by comment out all lines contain 'camRgb'. But it seems not working? If I use StreroDepth node, does it mean I must also use rgb camera?
Is it possible to hook only mono cameras? What more should I take care not to hook rgb camera? Thanks for replay!themarpe The ondrive have synced these dump files now. I have tesed mono_preview with try/catch to get the 118 fps of left right videos and it worked over night.
I am not sure is the fps set to 120 and 118 will do any difference. Many tests I have done that break out using 120 fps which I know now it's beyond maximun 118 fps.
And I am developing on Win10 using c++ API, if I got many exeptions I will post them to let you know.I have testes using our provious VR cam and OAK-D, attached them to same USB 3.0 hub and power OAK-D adaptor. I just catch both cameras with live video and display for hours. My previos VR does not break but OAK_D broke both with 2.9.0 and 2.10.0. Here are catched images:
You can see I can get 200 fps and the CPU loading is not fluctuated.
And for OAK-D:
It seems to consume much more power as I expected with -dd -dnn and the CPU's clock is flactuated. I think there are still many parts inside nodes are not turn down even with -dd -dnn. But this flactuation only happens on NB so is not a problem.
But OAK-D can not run for days is a big problem for me under win10 PC for both C++ and python evironments.- Edited
themarpe OK, I am not sure I used adaptor or not. But when I used adaptor and test:
python3 depthai_demo.py -s left right -monor 400 -monof 110 -dnn -dd --xlink_chunk_size 0
and it breaks after one night. I saved the python3.9.dmp at the same onedrive.
I am comparing using C++ or Python which will be more stable. As all my privios tests before,
python3 depthai_demo.py -s left right -monor 400 -monof 110 -dnn -dd
had never broke. I will try this first then add your try/catch for C++ codes. Will post when I have results, and you can check the python dump file first.
We are using OAD-D in products and have to be sure it's stable.Hi, I have tried :
python3 depthai_demo.py -s left right -monor 400 -monof 110 -dnn -dd --xlink_chunk_size 0(dapthai 2.10.0) and
python3 depthai_demo.py -s left right -monor 400 -monof 110 -dnn -dd (depthai 2.9.0) both on two PCs and with an adaptor. Both will break, some showed:
Traceback (most recent call last):
File "C:\Users\frank\depthai\depthai_demo.py", line 232, in <module>
pv.prepare_frames(callback=callbacks.on_new_frame)
File "C:\Users\frank\depthai\depthai_helpers\managers.py", line 261, in prepare_frames
packet = queue.tryGet()
RuntimeError: Communication exception - possible device error/misconfiguration. Original message 'Couldn't read data from stream: 'left' (X_LINK_ERROR)'
and some showed Python3.9.exe's error and I have two dump files for you to check.
It seems OAK-D's tested on PC WIN10 is less stable then Linux? Both C++ and pythons programs seems can not run for days using OAK-D. And even as I turn off depth ann AI, OAK-D consumes almost twice as much power as our VR camera. And when I tested with a laptop the CPU's frequence has to be fluctuated to save power.erik Hi, I got a USB3.1 Gen2 card added. The speed is 117.3 fps running :
python3 depthai_demo.py -s left right -monor 400 -monof 120 -dnn -dd --xlink_chunk_size 0.
But rgb_preview.py still print USB speed as SUPER, it seems rgb_previwer.py does not idtetify SUPER HIGH(10Gb) from SUPER(5Gb).erik Great! Will try later when we can get >100 fps using C++!
erik I see! Thanks!
GergelySzabolcs How can I set "--xlink_chunk_size" in C++ API?
I want to use Extended Disparity. But it's processing rate is only 60 fps. Is it possible I use frame buffers to catch at higer frames and buffer them on host. Then when I check my objects is in sight, I can record in host memores then send them back to OAK-D to analyze? If the internal pipeline can take frames from host, then I can still get my Extended Disparity result out. Though with some latency, it will still be aceptable for our application.
I got abut 110 fps using I5+USB3.0. I think this will be OK for my application just as the lost images are not continueus. And if I set it to -monof 100, there will still lost frames and the fps only applear as 96 fps. It might be fps counting problem.