Cannot detect camera

So I ran into a problem when I try to deploy my AI model onto a Raspberry Pi. I tried to use the CLI commands to deploy and when I enter edge-impulse-linux in the Raspberry Pi terminal, it just says cannot find any camera. When I do lsusb the camera I connected to shows up, and when I use the edge impulse browser and launch the model on the browser, it uses the connected camera and does live classification. So I do not really know whether it is the connection, or the software issue or my camera model is just not compatible

P.S. The camera I am using is the RealSense2 L515 LiDAR Camera from Intel

Hi @JordanJong

Can you paste the output of how the camera is listed here please? It may not be presenting as expected, and you may need to modify our code to detect it.

Best

Eoin

@Eoin
Sorry for the late reply, I was away from office for a few days.

Failed to initialize linux tool Error: Cannot find any webcams, run this command with --disable-camera to skip selection
    at /usr/lib/node_modules/edge-impulse-linux/build/cli/linux/linux.js:437:23

But this is what the output shows when I enter edge-impulse-linux on the terminal of the Raspberry Pi. Could it also be that I did not install the Real Sense Library? Thanks for your reply!

That could be the problem:

Try installing their libs and see, I dont know their kit at all, try installing with apt or from their repo:https://github.com/IntelRealSense/librealsense:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

Best

Eoin

my usb webcam is working fine, but still edge impulse couldnt able to connect to it
whenever i run "edge-impulse-linux, it shows me following error
Edge Impulse Linux client v1.9.6

[GST] checking for /etc/os-release
[SER] Using microphone hw:2,0
[SER] Using camera HD camera starting…
Failed to initialize linux tool Capture process failed with code 255

also, while checking with “libcamera-hello”
following error is shown
[0:17:00.989547428] [2603] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b
Preview window unavailable
ERROR: *** no cameras available ***

i checked my camera with " v4l2-ctl --list-devices" , it show me list where my camera is present
HD camera : HD camera (usb-xhci-hcd.1-1):
/dev/video0
/dev/video1
/dev/media3

kindly help. looking forward for your solution

Hi @Naman_Rockstar,

Can you update your edge impulse linux tool to the latest and try again.
If it fails can you try adding the --verbose argument to edge-impulse-linux and paste the results here.

Also while you’re usb camera is plugged in can you run the following command and share the following results.

$ gst-device-monitor-1.0

Other: Also regarding libcamera on RPi and our Linux CLI tools take a look at: Cannot find any webcams - #6 by rayenibex

// Raul

Hi @rjames i have run inference on jetson nano previosuly, no wow i try again and i get message “[SER] Could not find any devices connected over serial port” my /dev0 device it works anywhere else heres what i get when i run

$ gst-device-monitor-1.0

Device found:

name  : Monitor of Built-in Audio Digital Stereo (HDMI)
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	device.description = "Monitor\ of\ Built-in\ Audio\ Digital\ Stereo\ \(HDMI\)"
	device.class = monitor
	alsa.card = 0
	alsa.card_name = tegra-hda
	alsa.long_card_name = "tegra-hda\ at\ 0x70038000\ irq\ 83"
	device.bus_path = platform-70030000.hda
	sysfs.path = /devices/70030000.hda/sound/card0
	device.form_factor = internal
	device.string = 0
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 pulsesrc device=alsa_output.platform-70030000.hda.hdmi-stereo.monitor ! ...

Device found:

name  : Monitor of Built-in Audio Analog Stereo
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	device.description = "Monitor\ of\ Built-in\ Audio\ Analog\ Stereo"
	device.class = monitor
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = 1
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 pulsesrc device=alsa_output.platform-sound.analog-stereo.monitor ! ...

Device found:

name  : Built-in Audio Analog Stereo
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = ""
	alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 0
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = front:1
	device.buffering.buffer_size = 32768
	device.buffering.fragment_size = 16384
	device.access_mode = mmap+timer
	device.profile.name = analog-stereo
	device.profile.description = "Analog\ Stereo"
	device.description = "Built-in\ Audio\ Analog\ Stereo"
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 pulsesrc device=alsa_input.platform-sound.analog-stereo ! ...

Device found:

name  : Webcam C270 Analog Mono
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = "USB\ Audio"
	alsa.id = "USB\ Audio"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 0
	alsa.card = 2
	alsa.card_name = "USB\ Device\ 0x46d:0x825"
	alsa.long_card_name = "USB\ Device\ 0x46d:0x825\ at\ usb-70090000.xusb-2.1\,\ high\ speed"
	alsa.driver_name = snd_usb_audio
	device.bus_path = platform-70090000.xusb-usb-0:2.1:1.2
	sysfs.path = /devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.2/sound/card2
	udev.id = usb-046d_0825_5E3631A0-02
	device.bus = usb
	device.vendor.id = 046d
	device.vendor.name = "Logitech\,\ Inc."
	device.product.id = 0825
	device.product.name = "Webcam\ C270"
	device.serial = 046d_0825_5E3631A0
	device.form_factor = webcam
	device.string = hw:2
	device.buffering.buffer_size = 192000
	device.buffering.fragment_size = 96000
	device.access_mode = mmap+timer
	device.profile.name = analog-mono
	device.profile.description = "Analog\ Mono"
	device.description = "Webcam\ C270\ Analog\ Mono"
	alsa.mixer_name = "USB\ Mixer"
	alsa.components = USB046d:0825
	module-udev-detect.discovered = 1
	device.icon_name = camera-web-usb
gst-launch-1.0 pulsesrc device=alsa_input.usb-046d_0825_5E3631A0-02.analog-mono ! ...

Device found:

name  : Built-in Audio Digital Stereo (HDMI)
class : Audio/Sink
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = "HDMI\ 0"
	alsa.id = "HDMI\ 0"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 3
	alsa.card = 0
	alsa.card_name = tegra-hda
	alsa.long_card_name = "tegra-hda\ at\ 0x70038000\ irq\ 83"
	device.bus_path = platform-70030000.hda
	sysfs.path = /devices/70030000.hda/sound/card0
	device.form_factor = internal
	device.string = hdmi:0
	device.buffering.buffer_size = 65536
	device.buffering.fragment_size = 32768
	device.access_mode = mmap+timer
	device.profile.name = hdmi-stereo
	device.profile.description = "Digital\ Stereo\ \(HDMI\)"
	device.description = "Built-in\ Audio\ Digital\ Stereo\ \(HDMI\)"
	alsa.mixer_name = "Nvidia\ Tegra210\ HDMI/DP"
	alsa.components = "HDA:10de0029\,10de0101\,00100100"
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 ... ! pulsesink device=alsa_output.platform-70030000.hda.hdmi-stereo

Device found:

name  : Built-in Audio Analog Stereo
class : Audio/Sink
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = ""
	alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 0
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = front:1
	device.buffering.buffer_size = 32768
	device.buffering.fragment_size = 16384
	device.access_mode = mmap+timer
	device.profile.name = analog-stereo
	device.profile.description = "Analog\ Stereo"
	device.description = "Built-in\ Audio\ Analog\ Stereo"
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 ... ! pulsesink device=alsa_output.platform-sound.analog-stereo

Device found:

name  : UVC Camera (046d:0825)
class : Video/Source
caps  : video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)960, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/2, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)1184, height=(int)656, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)960, height=(int)544, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)752, height=(int)416, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)544, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)320, height=(int)176, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        video/x-raw, format=(string)YUY2, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)1280, height=(int)960, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)1184, height=(int)656, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)960, height=(int)720, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)1024, height=(int)576, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)960, height=(int)544, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)864, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)800, height=(int)448, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)752, height=(int)416, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)640, height=(int)480, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)640, height=(int)360, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)544, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)432, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)352, height=(int)288, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)320, height=(int)176, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)176, height=(int)144, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
        image/jpeg, width=(int)160, height=(int)120, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 25/1, 20/1, 15/1, 10/1, 5/1 };
properties:
	udev-probed = true
	device.bus_path = platform-70090000.xusb-usb-0:2.1:1.0
	sysfs.path = /sys/devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/video4linux/video0
	device.bus = usb
	device.subsystem = video4linux
	device.vendor.id = 046d
	device.vendor.name = 046d
	device.product.id = 0825
	device.product.name = "UVC\ Camera\ \(046d:0825\)"
	device.serial = 046d_0825_5E3631A0
	device.capabilities = :capture:
	device.api = v4l2
	device.path = /dev/video0
	v4l2.device.driver = uvcvideo
	v4l2.device.card = "UVC\ Camera\ \(046d:0825\)"
	v4l2.device.bus_info = usb-70090000.xusb-2.1
	v4l2.device.version = 264701 (0x000409fd)
	v4l2.device.capabilities = 2216689665 (0x84200001)
	v4l2.device.device_caps = 69206017 (0x04200001)
gst-launch-1.0 v4l2src ! ...

Hi @alexrosado,

Can you share which JetPack version you are on?
Also can you return the outputs of

$ edge-impulse-linux --version
$ edge-impulse-linux-runner --verbose <your..args>

Where you replace <your…args> with the arguments you tried previoulsy when it failed.

BTW which tool are you running? edge-impulse-linux, edge-impulse-daemon or another Edge Impulse tool? Because the error you reported hints that you are using the wrong tool. You should be using the lunux cli tools: either edge-impulse-linux or edge-impulse-linux-runner. For more information visit Linux NodeJS SDK.

// Raul