cameras supported by BeagleBone AI TIDL demo

I am thinking of running the BeagleBone AI TIDL classification demo described in: https://beagleboard.org/p/175809/tidl-on-beaglebone-ai-1ee263

Two questions:

  1. The demo uses the camera “Logitech HD Pro Webcam, C920, 1080p Lens”. Do I need to get exactly that camera? If no, is there a list of supported cameras for Beagle Bone AI and what do I need to change to use an alternative camera?

  2. At the demo the board is setup with a fan. Is the fan optional or when the demo is running the board definitely needs it?

I am thinking of running the BeagleBone AI TIDL classification demo described in: https://beagleboard.org/p/175809/tidl-on-beaglebone-ai-1ee263

Two questions:

1. The demo uses the camera “Logitech HD Pro Webcam, C920, 1080p Lens”. Do I need to get exactly that camera? If no, is there a list of supported cameras for Beagle Bone AI and what do I need to change to use an alternative camera?

It should work with any UVC, that's just one Jason has tested with..
If you look into the demo source code, i believe there is a frame
resize done, as the ti-tidl layer needs a specific frame size for
optimal stuff..

On the other hand, i think it would be useful to crowdsouce, which
camera's work and at what framerates, so if you have a usb/uvc camera
today, give a it a test. :wink:

2. At the demo the board is setup with a fan. Is the fan optional or when the demo is running the board definitely needs it?

That's coming asap..

Regards,

Getting

Corrupt JPEG data: 56 extraneous bytes before marker 0xd3
Corrupt JPEG data: 14 extraneous bytes before marker 0xd7

error with Logitech, Inc. HD Webcam C910.
Any tips?

Cheers,
A.

Enter code here...Started /var/lib/cloud9/: classification.tidl.cpp File path: /var/lib/cloud9/BeagleBone/AI/tidl File: /var/lib/cloud9/BeagleBone/AI/tidl/classification.tidl.cpp Arguments: File name: classification.tidl.cpp File extension: cpp File base name: classification.tidl Packages: ~.c9/packages Project path: /var/lib/cloud9/ Project name: projectname Hostname: localhost Hostname path: https://undefined/BeagleBone/AI/tidl/classification.tidl.cpp URL: http://localhost Port: 8080 IP: 0.0.0.0 Command: BeagleBone/AI/tidl/classification.tidl.cpp Python: python3 Python path: /usr/lib/python3.7/dist-packages:/usr/local/lib/python3.7/dist-packages /var/lib/cloud9/common/Makefile:27: MODEL=BeagleBoard.org_BeagleBone_AI,TARGET=classification.tidl,COMMON=/var/lib/cloud9/common /var/lib/cloud9/common/Makefile:145: GEN_DIR=/tmp/cloud9-examples,CHIP=am57xx,PROC=tidl,PRUN=,PRU_DIR=,EXE=.so CXX classification.tidl.cpp LD /tmp/cloud9-examples/classification.tidl.o ti-mct-heap-check -c sudo mjpg_streamer -i "input_opencv.so -r 640x480 --filter ./classification.tidl.so" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www" [sudo] password for debian: MJPG Streamer Version.: 2.0 i: device........... : default i: Desired Resolution: 640 x 480 i: filter........... : ./classification.tidl.so i: filter args ..... : Initializing filter loading configuration allocating execution object pipelines (EOP) allocating executors allocating individual EOPs allocating I/O memory for each EOP Allocating input and output buffers Allocating input and output buffers Allocating input and output buffers Allocating input and output buffers num_eops=4 About to start ProcessFrame loop!! http://localhost:8080/?action=stream o: www-folder-path......: /usr/share/mjpg-streamer/www/ o: HTTP TCP port........: 8080 o: HTTP Listen Address..: (null) o: username:password....: disabled o: commands.............: enabled Corrupt JPEG data: 56 extraneous bytes before marker 0xd3 Corrupt JPEG data: 14 extraneous bytes before marker 0xd7 Segmentation fault /var/lib/cloud9/common/Makefile:167: recipe for target 'start' failed make: *** [start] Error 139 rm /tmp/cloud9-examples/classification.tidl.o

Jason was working on a patch for that:

https://github.com/jadonk/libjpeg-turbo/commit/276fbb806b70d79096f2deb5c42d36382b3ecf62

Jason are you ready for me to build libjpeg-turbo, or what was the plan?

Regards,

Unfortunately, I have similar errors (“Corrupt JPEG…”)with the C270 camera even after updating. However, I did see messages every now and then after multiple “Corrupt JPEG…” naming the object in front of the camera.
A lot of the application is working and can identify various objects. I did some online research and found this…

https://elinux.org/EBC_Exercise_39_Setting_Up_tidl_on_X15

The same error message is mentioned and a work around provided but only for their application.

"stream_config_j11_v2.txt runs but gets the error “Corrupt JPEG data: 2 extraneous bytes before marker 0xd4”. So I send stderr to /dev/null

./imagenet -i camera0 2> /dev/null  # Redirect the errors to ignore a message"

Getting

Corrupt JPEG data: 56 extraneous bytes before marker 0xd3
Corrupt JPEG data: 14 extraneous bytes before marker 0xd7

Jason was working on a patch for that:

Hack to disable excessive warnings common with many cameras · jadonk/libjpeg-turbo@276fbb8 · GitHub

Jason are you ready for me to build libjpeg-turbo, or what was the plan?

oh, yes! Forgot that it was only in my local install!

Unfortunately, I have similar errors (“Corrupt JPEG…”)with the C270 camera even after updating. However, I did see messages every now and then after multiple “Corrupt JPEG…” naming the object in front of the camera.
A lot of the application is working and can identify various objects. I did some online research and found this…

https://elinux.org/EBC_Exercise_39_Setting_Up_tidl_on_X15

The same error message is mentioned and a work around provided but only for their application.

"stream_config_j11_v2.txt runs but gets the error “Corrupt JPEG data: 2 extraneous bytes before marker 0xd4”. So I send stderr to /dev/null

./imagenet -i camera0 2> /dev/null  # Redirect the errors to ignore a message"

It is just a work around and a number of cycles are still lost. Better to simply discard the error in the source.

Okay building right now:

https://github.com/rcn-ee/repos/blob/master/debian-9-libjpeg-turbo/suite/stretch/debian/patches/276fbb806b70d79096f2deb5c42d36382b3ecf62.patch

Regards,

and pushed out to the apt repo..

Regards,

Please explain how to use this patch. Full update still results in the same (Corrupt JPEG data: …, segmentation fault ) errors.
Best Regards,
Myrick Monroe

In theory, you should just run:

sudo apt update
sudo apt upgrade

But i can test tonight and see if we need to rebuild anything
downstream of libjpeg-turbo

Regards,

Thanks you for the “classification.tidl” demo. Very nice one.

The only problem is it kept crashing with segmentation fault.

I had it running only 2 out of 10 runs.

About to start ProcessFrame loop!!

http://localhost:8080/?action=stream

o: www-folder-path…: /usr/share/mjpg-streamer/www/

o: HTTP TCP port…: 8080

o: HTTP Listen Address…: (null)

o: username:password…: disabled

o: commands…: enabled

Segmentation fault

/var/lib/cloud9/common/Makefile:167: recipe for target ‘start’ failed

make: *** [start] Error 139

The “dummy.tidl” demo worked well so far. It ran 5 out of 5.