If you want to do some image processing too (like card detection), OpenCV makes sense.
I don’t know how it handles SDI input/output, but it can be interfaced to other SDKs, something like this (pseudocode):
int w = sdi.getWidth();
int h = sdi.getHeight();
char* buffer = sdi.capture();
Mat image(w,h,CV_8UC3,buffer); //transform the input buffer to OpenCV Mat
//process the image
Mat result; //copy your result here
char *output = new char[w*h*3];
First develop your code for static images and time it. If it’s too slow (takes more than 0.03s/image - this will be probably the case for 4K video), you’ll have to optimize it. The best way to gain speed is to go from CPU to GPU. Fortunately most OpenCV functions have CUDA implementations.
Why not use a desktop computer? It’s much more powerful. Don’t forget, 4K real time video processing is very computationally intensive! And you’ll also have to add the SDI interfaces…
Anyway, choose the hardware according to the needs; it’s simpler than having to optimize the processing for some weak hardware or scale back the quality just because you wanted to implement it on some cheap boards.
If you need embedded computing (especially for real time 4K…), go for a Nvidia (Nano or Xavier, according to the needs).
As long as you use only standard OpenCV functions, CUDA is quite easy. Generally all you need to do is to replace cv::somefunction(...) with cv::cuda::somefunction(...).
Because I want to end-up with some idiot-proof black box, with just a power source, an off-on switch, and 2 SDI ( input and output)
That is great I did not know it was that easy.
Thx mate ! You are very helpful indeed. I guess I will narrow my quest to Nano, and maybe compare it to the Open Ai kit which is said to have more computational abilities, but no Cuda ( but I may be wrong ). I think the Raspberry 4 has a VideoCore IV GPU
Apparently OpenCV works with OpenCl ? That means the Raspberry 4 should also be quite capable ?