USB Camera IN and HDMI OUT Display

Hello. I have a usb camera which I wish to interface with the development board in this manner…
-connect USB camera to board USB IN
-writing python application to some image processing based on opencv
-display the resulting image to HDMI out lcd display

Please suggest~
Best,
/Ash

1 Like

Hi there,

Most PYNQ supported boards, with the default image, will ship example notebooks doing exactly what you’ve described your use case to be, e.g. the opencv facedetect notebook will take a usb webcam input and stream into directly to an HDMI output…

Thanks
Shawn

Hi @skalade thanks for your reply. so this would work something like…
-getting data stream via uvc usb and I can write python script on board to run and display output on hdmi lcd?

Meant to link this notebook instead: PYNQ/opencv_face_detect_webcam.ipynb at master · Xilinx/PYNQ · GitHub. There are loads of video example notebooks you can browse on the default PYNQ image.

It’s an example of what you want to do. USB webcam to hdmi output.

Thanks
Shawn

1 Like

Hi there,

I am dragging this post back up just to ask if anyone can clarify what s going on under the hood on the board when the base overlay is loaded onto the board to perform this video streaming pipeline of USB webcam → HDMI.

I am looking to test a video stream pipeline that remains entirely in the Processing system (PS) and doesn’t cross the VDMA over to the Programmable Logic (PL). (And hopefully in the future a stream that is entirely PL based and doesn’t cross over to the PS).

If I load the board with the base overlay, and create the most simple pipeline of USB in and HDMI out, will this be entirely PS? the loading of the programmable logic with the bitstream has me confused whether it is involved.

Ideally then in the future I can introduce a video processing algorithm (also in the PS) hence would like to keep the latency to a minimum.

Thanks,
Cameron

1 Like

@cking

For pure ARM based video:

Only need → gst-launch videotestsrc

For pure PL video to HDMI:
You need to change the host to device from this example see USB camera IN:

Which also mean your board need a larger PL DDR3 support video buffering if you really don’t want main memory crossing.

There are no free lunch in this EARTH.

ENJOY~