google-coral/project-posenet

view output on streaming server

ilonadem opened this issue · 5 comments

Can I stream outputs to remote server?

Hi, really cool stuff!

I am currently running pose_camera.py and I have a monitor connected to the coral via HDMI which is great for seeing the segments and key points being picked up by the model. Is it possible to send these outputs straight to a streaming server I could view in chrome? Would be great not to need an extra monitor for this.

I.e. I want to have pose_camera.py stream its outputs just like this demo: https://coral.ai/docs/dev-board/camera/#view-with-a-streaming-server, which I run by calling edgetpu_demo --stream

Click to expand!

Issue Type

Performance, Support, Feature Request

Operating System

Mendel Linux, Mac OS

Coral Device

Dev Board

Other Devices

No response

Programming Language

Python 3.8

Relevant Log Output

No response

Hi, actually an update on this:

I'm trying to run the demos (https://coral.ai/docs/dev-board/camera/#view-on-a-monitor) that connect to a USB camera (since this is what I need), but running

edgetpu_classify \
--source /dev/video1:YUY2:800x600:24/1 \
--model ${DEMO_FILES}/mobilenet_v2_1.0_224_quant_edgetpu.tflite \
--labels ${DEMO_FILES}/imagenet_labels.txt

and also

edgetpu_classify \
--source /dev/video1:YUY2:800x600:15/1 \
--model ${DEMO_FILES}/mobilenet_v2_1.0_224_quant_edgetpu.tflite \
--labels ${DEMO_FILES}/imagenet_labels.txt

as well as

edgetpu_classify \
--source /dev/video1:YUY2:320x240:30/1 \
--model ${DEMO_FILES}/mobilenet_v2_1.0_224_quant_edgetpu.tflite \
--labels ${DEMO_FILES}/imagenet_labels.txt

I get the following error:

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.889: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.889: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

I've tried doing sudo systemctl restart Weston but this hasn't helped.

Also, when I run the demo in https://coral.ai/docs/dev-board/get-started/#update-mendel step 7, as per the linked issue, I'm now getting this error:

mendel@arid-quill:~$ edgetpu_demo --stream                               
Press 'q' to quit.
Press 'n' to switch between models.
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused

(edgetpu_detect_server:6390): Gtk-WARNING **: 01:06:35.134: cannot open display:

This is only fixed when I do a sudo reboot. But the demos with the camera don't work still :(

Sorry for the spam, but any help is really appreciated!!

And also, when I do v4l2-ctl --list-formats-ext --device /dev/video1 I get

[1]: 'H264' (H.264, compressed)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 480x272
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 640x360
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1024x576
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1440x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
        [2]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 320x240
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 480x272
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x360
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 1024x576
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.100s (10.000 fps)

I have also done export DISISPLAY=:0

(edgetpu_classify:5606): Gdk-CRITICAL **: 01:01:58.888: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed

Have you connected any monitor to the dev board? If not please try edgetpu_classify_server or edgetpu_detect_server commands to view the output on server as mentioned at: https://coral.ai/docs/dev-board/camera/#view-with-a-streaming-server