stitching video streams? pointers sought

Security & networking guy here needing to move up the stack for a while:)

I need to stitch 2-4 video streams. Never having done any computer vision before, I’m drowning in the sheer number of choices and selections, so pointers to the Royal Path, or even just a shortcut, would be nice.

I have successfully done some very-low-frame-rate stitching using the Stitcher class. I have already found examples in both C++ and Python, but none are about using hardware acceleration. I’ve found one example (someone’s capstone project from a few years ago) but it’s for Windows, and most of it is probably not readily adaptable to Unix.

The cameras are fixed, so I can precompute the homology transforms. I would still need to do a lot of processing to not have abrupt changes in intensity where the stitch occurs (several papers on this).

I have TX1, so I ought to be able to do better than 2fps!

Q1: OpenCV or Visionworks? Both have a significant learning curve, and if one is better suited to the task than the other, I’d rather not find out the hard way!

Q2: Should I even be looking at OpenCV/Visionworks, since I’m not using anything fancier than image capture and geometry transformations, at least not until I start implementing the aforementioned intensity-smoothing component.

Q3: Maybe there is code out there already doing this that I haven’t found because I don’t know where all the right fora are. Where else should I be asking without being flamed to a crisp?



PS: yes, I’ve temporarily given up on getting two CSI cameras on the dev board, and I’m using two cheap USB cams with a USB3 hub. Speaking of which, you need a powered hub for this sort of thing; trying to do it with an unpowered hub leads to anger, anger leads to hate, hate leads to the dark side.

Did you ever find a solution for this?