Giter VIP home page Giter VIP logo

dlstreamer / dlstreamer Goto Github PK

View Code? Open in Web Editor NEW
501.0 47.0 166.0 9.58 MB

This repository is a home to Intel® Deep Learning Streamer (Intel® DL Streamer) Pipeline Framework. Pipeline Framework is a streaming media analytics framework, based on GStreamer* multimedia framework, for creating complex media analytics pipelines.

Home Page: https://dlstreamer.github.io

License: MIT License

CMake 3.78% Shell 0.43% C 9.98% C++ 82.17% Python 3.61% Batchfile 0.03%
gstreamer gstreamer-plugins inference intel openvino

dlstreamer's Introduction

Intel® Deep Learning Streamer (Intel® DL Streamer) Pipeline Framework

Overview

Intel® Deep Learning Streamer (Intel® DL Streamer) Pipeline Framework is an open-source streaming media analytics framework, based on GStreamer* multimedia framework, for creating complex media analytics pipelines for the Cloud or at the Edge.

Media analytics is the analysis of audio & video streams to detect, classify, track, identify and count objects, events and people. The analyzed results can be used to take actions, coordinate events, identify patterns and gain insights across multiple domains: retail store and events facilities analytics, warehouse and parking management, industrial inspection, safety and regulatory compliance, security monitoring, and many other.

Backend libraries

Intel® DL Streamer Pipeline Framework is optimized for performance and functional interoperability between GStreamer* plugins built on various backend libraries

This page contains a list of elements provided in this repository.

Installation

Please refer to Install Guide for installation options

  1. Install APT packages
  2. Run Docker image
  3. Compile from source code
  4. Build Docker image from source code

Samples

Samples available for C/C++ and Python programming, and as gst-launch command lines and scripts.

NN models

Intel® DL Streamer supports NN models in OpenVINO™ IR and ONNX* formats:

  • Refer to OpenVINO™ Model Optimizer how to convert model into OpenVINO™ IR format
  • Refer to training frameworks documentation how to export model into ONNX* format

Or you can start from over 70 pre-trained models in OpenVINO™ Open Model Zoo and corresponding model-proc files (pre- and post-processing specification) in /opt/intel/dlstreamer/samples/model_proc folder. These models include object detection, object classification, human pose detection, sound classification, semantic segmentation, and other use cases on SSD, MobileNet, YOLO, Tiny YOLO, EfficientDet, ResNet, FasterRCNN and other backbones.

Reporting Bugs and Feature Requests

Report bugs and requests on the issues page

Other Useful Links


* Other names and brands may be claimed as the property of others.

dlstreamer's People

Contributors

adranit avatar alekseyfa avatar andruxin52rus avatar bradh avatar cgdougla avatar ddeuerme avatar dmitry-polunin avatar dsmertin avatar dvnagorny avatar fenghaitao avatar ib-intel avatar kumarpus avatar mikhail-nikolskiy avatar openvino-pushbot avatar pk1d3v avatar rumyants avatar sdxkeeper avatar tbujewsk avatar umed avatar ymaskina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dlstreamer's Issues

ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Internal data stream error.

root@k3s:~/gst-video-analytics/samples/shell# ./face_detection_and_classification.sh $VIDEO_EXAMPLES_DIR/Pexels.mp4
[setup_env.sh] GStreamer-plugins environment initialized
[setlocale.sh] C locale is set
Running sample with the following parameters:
GST_PLUGIN_PATH=/root/gst-video-analytics/scripts/../build/intel64/Release/lib:/usr/lib/gst-video-analytics/:/root/gst-video-analytics/
LD_LIBRARY_PATH=/opt/intel/dldt/inference-engine/external/hddl/lib
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
qtdemux.c(6073): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

vaInitialize failed with error code -1 (unknown libva error),exit

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.0.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva error: /usr/lib64/dri/i965_drv_video.so has no function __vaDriverInit_1_0
libva info: va_openDriver() returns -1

When i am trying to run vainfo, i am getting the above error. I rebooted the system multiple times and repeated the steps. But the error is not resolved.

PLease help me in resolving the error

is this openvino gst-video-analytics only from amd64?

I was hoping for a docker recipe to build a gst-video-analytics image to run on raspberry pi4 and movidius NCS2. Possible? Does Step18 just need to be skipped?

My docker build attempt failed here

Step 18/97 : RUN mkdir neo && cd neo && wget https://github.com/intel/compute-runtime/releases/download/19.31.13700/intel-gmmlib_19.2.3_amd64.deb && wget https://github.com/intel/compute-runtime/releases/download/19.31.13700/intel-igc-core_1.0.10-2364_amd64.deb && wget https://github.com/intel/compute-runtime/releases/download/19.31.13700/intel-igc-opencl_1.0.10-2364_amd64.deb && wget https://github.com/intel/compute-runtime/releases/download/19.31.13700/intel-opencl_19.31.13700_amd64.deb && wget https://github.com/intel/compute-runtime/releases/download/19.31.13700/intel-ocloc_19.31.13700_amd64.deb && dpkg -i *.deb && dpkg-deb -x intel-gmmlib_19.2.3_amd64.deb /home/build/ && dpkg-deb -x intel-igc-core_1.0.10-2364_amd64.deb /home/build/ && dpkg-deb -x intel-igc-opencl_1.0.10-2364_amd64.deb /home/build/ && dpkg-deb -x intel-opencl_19.31.13700_amd64.deb /home/build/ && dpkg-deb -x intel-ocloc_19.31.13700_amd64.deb /home/build/ && cp -a /home/build/. /

dpkg: error processing archive intel-gmmlib_19.2.3_amd64.deb (--install):
package architecture (amd64) does not match system (armhf)
dpkg: error processing archive intel-igc-core_1.0.10-2364_amd64.deb (--install):
package architecture (amd64) does not match system (armhf)
dpkg: error processing archive intel-igc-opencl_1.0.10-2364_amd64.deb (--install):
package architecture (amd64) does not match system (armhf)
dpkg: error processing archive intel-ocloc_19.31.13700_amd64.deb (--install):
package architecture (amd64) does not match system (armhf)
dpkg: error processing archive intel-opencl_19.31.13700_amd64.deb (--install):
package architecture (amd64) does not match system (armhf)
Errors were encountered while processing:
intel-gmmlib_19.2.3_amd64.deb
intel-igc-core_1.0.10-2364_amd64.deb
intel-igc-opencl_1.0.10-2364_amd64.deb
intel-ocloc_19.31.13700_amd64.deb
intel-opencl_19.31.13700_amd64.deb

vainfo errors inspite of reboot

$ vainfo
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva error: /opt/intel/mediasdk/lib64/iHD_drv_video.so has no function __vaDriverInit_0_32
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

Due to unavoidable reasons, I am using Ubuntu 16.04 instead of 18.04. Would this cause this driver error?

Pipelines with software decoding

When constructing pipelines that use software decoding on systems with available hardware-accelerated decoding and rendering, hardware-accelerated rendering in samples via fpsdisplaysink and autovideo sink may crash

openvino instance sharing

Can anyone please explain what it means to share openvino model instance between various instances of pipeline?

Build fails on enabling "tests building" in latest docker

CMake Error at thirdparty/CMakeLists.txt:12 (add_subdirectory):
The source directory

/root/gstreamer-plugins/thirdparty/googletest

does not contain a CMakeLists.txt file.

-- Found OpenCV: /usr/local (found version "4.1.0") found components: core imgproc
-- Checking for module 'gstreamer-check-1.0'
-- Found gstreamer-check-1.0, version 1.16.0
-- Found OpenCV: /usr/local (found version "4.1.0") found components: core imgproc imgcodecs
-- Configuring incomplete, errors occurred!
See also "/root/gstreamer-plugins/build/CMakeFiles/CMakeOutput.log".
See also "/root/gstreamer-plugins/build/CMakeFiles/CMakeError.log".
The command '/bin/sh -c mkdir -p gstreamer-plugins/build && cd gstreamer-plugins/build && cmake -DCMAKE_INSTALL_PREFIX=/usr .. -DVERSION_PATCH=${SOURCE_REV} -DGIT_INFO=${GIT_INFO} -DBUILD_SHARED_LIBS=ON -DENABLE_PAHO_INSTALLATION=${ENABLE_PAHO_INSTALLATION} -DENABLE_RDKAFKA_INSTALLATION=${ENABLE_RDKAFKA_INSTALLATION} -DCMAKE_INSTALL_PREFIX=/usr .. && make -j $(nproc) && make install && echo "/usr/lib/va-gstreamer-plugins" >> /etc/ld.so.conf.d/opencv-dldt-gst.conf && ldconfig' returned a non-zero code: 1

This isn't a device '/dev/video0'

Cloned the repo and followed the getting started guide by installing Gstreamer as a docker image and while running the samples with USB camera facing the following issue.

root@test-SER0:/gst-video-analytics# source /opt/intel/dldt/inference-engine/external/opencv/setupvars.sh
root@test-SER0:
/gst-video-analytics# ./samples/shell/face_detection_and_classification.sh /dev/video0
[setup_env.sh] GStreamer-plugins environment initialized
[setlocale.sh] C locale is set
Running sample with the following parameters:
GST_PLUGIN_PATH=/root/gst-video-analytics/scripts/../build/intel64/Release/lib:/usr/lib/gst-video-analytics/
LD_LIBRARY_PATH=/opencv/lib:/opt/intel/dldt/inference-engine/external/hddl/lib
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: This isn't a device '/dev/video0'.
Additional debug info:
v4l2_calls.c(616): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: Resource temporarily unavailable
Setting pipeline to NULL ...
Freeing pipeline ...

System Properties:
OS: Ubuntu 16.04
Kernel:4.15.0-64-generic

Please help me to resolve this issue.
Thanks in advance.

iHD_drv_video.so init failed

when i run vainfo , it notice error:
libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_4
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
param: 4, val: 0
libva error: /opt/intel/mediasdk/lib64/iHD_drv_video.so init failed
libva info: va_openDriver() returns 18
vaInitialize failed with error code 18 (invalid parameter),exit

I try reinstall but it show error the same!

OSError: libgstvideoanalyticsmeta.so

Hi,
How can I get "libgstvideoanalyticsmeta.so", Ubuntu was upgraded to 19.10 w/ LK 5.3.0, however the file is not found in /usr/lib/x86_64-linux-gnu/gstreamer-1.0.

Error:
libgstva = ctypes.CDLL("libgstvideoanalyticsmeta.so")
File "/usr/lib/python3.6/ctypes/init.py", line 348, in init
self._handle = _dlopen(self._name, mode)
OSError: libgstvideoanalyticsmeta.so: cannot open shared object file: No such file or directory

Thanks!
BR/Kobu

gvametaconvert does not create features for different model

The python script gallery_generator.py launches the following gst pipeline for a sample image:

gst-launch-1.0 filesrc location=<face_img.png> ! decodebin ! video/x-raw ! videoconvert ! gvadetect model=/root/intel_models/Transportation/object_detection/face/pruned_mobilenet_reduced_ssd_shared_weights/dldt/face-detection-adas-0001.xml ! gvaclassify model=/root/intel_models/Retail/object_reidentification/face/mobilenet_based/dldt/face-reidentification-retail-0095.xml ! gvametaconvert model=/root/intel_models/Retail/object_reidentification/face/mobilenet_based/dldt/face-reidentification-retail-0095.xml converter=tensors-to-file layer-name=658 tags=sometag location=./gallery/features ! fakesink sync=false

This works fine. The model face-reidentification-retail-0095.xml takes input of shape [1,3,128,128] and outputs [1,256,1,1] at layer name 658 (type Convolution).

For our model (Its insightfaces FR model). Its input is [1,3,112,112] and output is layer name pre_fc1 of type FullyConnected with shape [1, 512].

There are no features produced. The earlier gvaclassify plugin in the same pipeline does not seem to fail as the pipeline seems to take a long time when using this mode, but the gvametaconvert seems to fail when producing features for gallery generation. Below is the pipeline for our model:

gst-launch-1.0 filesrc location=<face_img.png> ! decodebin ! video/x-raw ! videoconvert ! gvadetect model=/root/intel_models/Transportation/object_detection/face/pruned_mobilenet_reduced_ssd_shared_weights/dldt/face-detection-adas-0001.xml ! gvaclassify model=/root/models/model-fr.xml ! gvametaconvert model=/root/models/model-fr.xml converter=tensors-to-file layer-name=pre_fc1 tags=sometag location=./gallery/features ! fakesink sync=false

Also, please note that in your original case, the layer-name was not needed.

Threads not found by cmake on ubuntu 18.04. OpenVINO 2019 R1 also looks for threads and finds it.

cfl-nuc:~/gst-video-analytics/build$ cmake ../
-- CMAKE_BUILD_TYPE is undefined. Set default build type Release.
CMake Warning at CMakeLists.txt:25 (message):
VERSION_PATCH is undefined. Set default value 0.

CMake Warning at CMakeLists.txt:30 (message):
GIT_INFO is undefined. Set default value git_unknown.

-- Host CPU features:
-- 3DNOW not supported
-- 3DNOWEXT not supported
-- ABM not supported
-- ADX supported
-- AES supported
-- AVX supported
-- AVX2 supported
-- AVX512CD not supported
-- AVX512F not supported
-- AVX512ER not supported
-- AVX512PF not supported
-- BMI1 supported
-- BMI2 supported
-- CLFSH supported
-- CMPXCHG16B supported
-- CX8 supported
-- ERMS supported
-- F16C supported
-- FMA supported
-- FSGSBASE supported
-- FXSR supported
-- HLE not supported
-- INVPCID supported
-- LAHF supported
-- LZCNT supported
-- MMX supported
-- MMXEXT not supported
-- MONITOR supported
-- MOVBE supported
-- MSR supported
-- OSXSAVE supported
-- PCLMULQDQ supported
-- POPCNT supported
-- PREFETCHWT1 not supported
-- RDRAND supported
-- RDSEED supported
-- RDTSCP supported
-- RTM not supported
-- SEP supported
-- SHA not supported
-- SSE supported
-- SSE2 supported
-- SSE3 supported
-- SSE4.1 supported
-- SSE4.2 supported
-- SSE4a not supported
-- SSSE3 supported
-- SYSCALL supported
-- TBM not supported
-- XOP not supported
-- XSAVE supported
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindThreads.cmake:205 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/share/ie_parallel.cmake:103 (find_package)
/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/src/extension/CMakeLists.txt:43 (set_ie_threading_interface_for)

-- Configuring incomplete, errors occurred!

Error Message with vainfo

After following the installation steps several times and rebooting the system, I still get this error with the command vainfo

libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva error: /opt/intel/mediasdk/lib64/iHD_drv_video.so has no function __vaDriverInit_0_32
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

Stopping pipelines

In rare cases, when stopping pipelines execution manually, or when pipelines stop because of finished data source, the pipeline may crash or hung

Build failed on ubuntu 16.04

OS: Ubuntu 16.04
Steps:
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools

sudo apt-get install libgstreamer-plugins-base1.0-dev

source /opt/intel/computer_vision_sdk/bin/setupvars.sh
export MODELS_PATH=/opt/intel/computer_vision_sdk/deployment_tools/intel_models

git clone https://github.com/opencv/gst-video-analytics.git
cd ~/gst-video-analytics
mkdir build
cd build
cmake ..
make -j8

Error Message
[ 60%] Building CXX object gst/common/CMakeFiles/common.dir/meta_converters.cpp.o
In file included from /media/ylin8/work/gst-video-analytics/gst/common/meta_converters.cpp:8:0:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h: In function ‘GstMeta* _gst_buffer_iterate_meta_filtered(GstBuffer*, void**, GType)’:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:36:64: error: suggest parentheses around assignment used as truth value [-Werror=parentheses]
while (meta = gst_buffer_iterate_meta(gst_buffer, state_ptr))
^
In file included from /media/ylin8/work/gst-video-analytics/gst/common/meta_converters.cpp:8:0:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h: In constructor ‘GVA::RegionOfInterest::RegionOfInterest(GstVideoRegionOfInterestMeta*)’:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:186:45: error: ‘struct GstVideoRegionOfInterestMeta’ has no member named ‘params’
tensors.reserve(g_list_length(meta->params));
^
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:188:31: error: ‘struct GstVideoRegionOfInterestMeta’ has no member named ‘params’
for (GList l = meta->params; l; l = g_list_next(l)) {
^
/media/ylin8/work/gst-video-analytics/gst/common/meta_converters.cpp: In function ‘bool Attributes2Text(GstStructure
)’:
/media/ylin8/work/gst-video-analytics/gst/common/meta_converters.cpp:42:54: error: ‘gst_structure_get_array’ was not declared in this scope
if (!gst_structure_get_array(s, "labels", &labels))
^
In file included from /media/ylin8/work/gst-video-analytics/gst/common/blob2metadata.cpp:8:0:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h: In function ‘GstMeta* _gst_buffer_iterate_meta_filtered(GstBuffer*, void**, GType)’:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:36:64: error: suggest parentheses around assignment used as truth value [-Werror=parentheses]
while (meta = gst_buffer_iterate_meta(gst_buffer, state_ptr))
^
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h: In constructor ‘GVA::RegionOfInterest::RegionOfInterest(GstVideoRegionOfInterestMeta*)’:
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:186:45: error: ‘struct GstVideoRegionOfInterestMeta’ has no member named ‘params’
tensors.reserve(g_list_length(meta->params));
^
/media/ylin8/work/gst-video-analytics/gst-libs/gst/videoanalytics/gva_roi_meta.h:188:31: error: ‘struct GstVideoRegionOfInterestMeta’ has no member named ‘params’
for (GList l = meta->params; l; l = g_list_next(l)) {
^
cc1plus: all warnings being treated as errors
gst/common/CMakeFiles/common.dir/build.make:158: recipe for target 'gst/common/CMakeFiles/common.dir/meta_converters.cpp.o' failed
make[2]: *** [gst/common/CMakeFiles/common.dir/meta_converters.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/media/ylin8/work/gst-video-analytics/gst/common/blob2metadata.cpp: In function ‘void Blob2RoiMeta(const std::map<std::__cxx11::basic_string, std::shared_ptrInferenceBackend::OutputBlob >&, std::vector, const gchar
, const gchar*, const std::map<std::__cxx11::basic_string, _GstStructure*>&)’:
/media/ylin8/work/gst-video-analytics/gst/common/blob2metadata.cpp:123:64: error: ‘gst_video_region_of_interest_meta_add_param’ was not declared in this scope
gst_video_region_of_interest_meta_add_param(meta, s);
^
cc1plus: all warnings being treated as errors
gst/common/CMakeFiles/common.dir/build.make:86: recipe for target 'gst/common/CMakeFiles/common.dir/blob2metadata.cpp.o' failed
make[2]: *** [gst/common/CMakeFiles/common.dir/blob2metadata.cpp.o] Error 1
CMakeFiles/Makefile2:113: recipe for target 'gst/common/CMakeFiles/common.dir/all' failed
make[1]: *** [gst/common/CMakeFiles/common.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Modification of GStreamer* buffers from the application

When subscribing to GST_PAD events in the application, the frame buffer cannot be made writable.

WORKAROUND:
Option 1. Write in the read-only buffer but ensure that it is accessed only from one thread at the moment.
Option 2. Create a simple GStreamer* element that does the job with the buffer and sends events to an application if necessary

Can't run face_detection_and_classification shell example

Hello,

I'm trying to run the face_detection_and_classification shell example in Ubuntu 16.04

As recommended, I have followed instructions how to build plugins and run samples in docker container.

In the step related to datasets and models I found "ready-for-use models in IR (Intermediate Representation, .xml + .bin) format" here. These models are in IR (XML+BIN) format and you have the FP32 folder that the code of ./face_detection_and_classification.sh is looking for.

I have also downloaded the videos from here

Then, I have followed your instructions to run samples from here and here

Then I have executed:

GST_DEBUG=2 ./face_detection_and_classification.sh /root/video-examples/face-demographics-walking.mp4

However, I get the same error than here

GST_PLUGIN_PATH=/usr/lib/va-gstreamer-plugins/
LD_LIBRARY_PATH=/usr/local/lib/:/usr/lib/va-gstreamer-plugins/:/usr/lib/x86_64-linux-gnu/:/opt/intel/dldt/inference-engine/lib/ubuntu_16.04/:/opt/intel/dldt/inference-engine/lib/ubuntu_16.04/intel64/:/opt/intel/dldt/inference-engine/external/omp/lib/:/opt/intel/dldt/inference-engine/lib/
Setting pipeline to PAUSED ...
0:00:00.077278574  1666      0x1eb8e90 WARN                xcontext xvcontext.c:534:gst_xvcontext_check_xshm_calls: MIT-SHM extension check failed at XShmAttach. Not using shared memory.
0:00:00.130583818  1666      0x1eb8e90 WARN                 default inference.cpp:310:Inference:<gvainference0> Loading model: device=CPU, path=/root/intel_models/intel/FP32/face-detection-adas-0001.xml
0:00:00.130604465  1666      0x1eb8e90 WARN                 default inference.cpp:311:Inference:<gvainference0> Setting batch_size=1, nireq=2
0:00:00.211738817  1666      0x1eb8e90 WARN            gvainference gstgvainference.c:452:gst_gva_inference_start:<gvainference0> error: gvainference plugin intitialization failed
0:00:00.211770068  1666      0x1eb8e90 WARN            gvainference gstgvainference.c:452:gst_gva_inference_start:<gvainference0> error: Incorrect number of input edges for layer mbox_conf_reshape
/opt/intel/dldt/inference-engine/include/details/ie_exception_conversion.hpp:71
0:00:00.211814134  1666      0x1eb8e90 WARN                GST_PADS gstpad.c:1149:gst_pad_set_active:<gvainference0:sink> Failed to activate pad
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstGvaInference:gvainference0: gvainference plugin intitialization failed
Additional debug info:
/root/gstreamer-plugins/gst/elements/gvainference/gstgvainference.c(452): gst_gva_inference_start (): /GstPipeline:pipeline0/GstGvaInference:gvainference0:
Incorrect number of input edges for layer mbox_conf_reshape
/opt/intel/dldt/inference-engine/include/details/ie_exception_conversion.hpp:71
Setting pipeline to NULL ...
Freeing pipeline ...

As you can see there is a problem about MKLDNNPlugin with an Incorrect number of input edges for layer mbox_conf_reshape

It looks like a model format problem of openVINO...

Could you explicitly point out the URL from where to download the models or the specific version to be employed?

Thank you.

gst-resource-error-quark: base_inference plugin intitialization failed (2)"

Tried running the application with the GPU by updating my pipeline file.Please find the part of the pipeline.

template": "urisourcebin uri="{source[uri]}" ! concat name=c ! decodebin ! video/x-raw ! videoconvert name="videoconvert" ! gvadetect inference-id=inf0 model="{models[person_detection][1][network]}" model-proc="{models[person_detection][1][proc]}" device=GPU name="detection" ! gvametaconvert converter=json method=detection source="{source[uri]}" name="jsonmetaconvert" ! tee name=t ! queue ! gvawatermark ! videoconvert ! autovideosink t. ! queue ! appsink name=appsink",

When i checked the log file i observed the following issue

{"levelname": "ERROR", "asctime": "2019-10-23 10:47:27,566", "message": "Error on Pipeline : gst-resource-error-quark: base_inference plugin intitialization failed (2)", "name": "GSTPipeline"}

Thanks in advance.

I am able to run by adding device=CPU but for GPU i am getting the issue.

How does the gvawatermark connect to the rtmpsink

一.Expectation
gst elements gvawatermark connect to the rtmpsink by direct or indirect means

二.Environment
1.Ubuntu 18.04
2.gst-video-analytics:latest

三.Process
1.default gst-video-analytics:latest does not include rtmpsink, need to install:

apt-get install gstreamer1.0-plugins-bad –y

2.rtspsrc as the input, rtmpsink as the output

gst-launch-1.0 rtspsrc location="rtsp://192.168.0.10:554/user=admin&password=&channel=1&stream=0.sdp?" protocols=tcp ! rtph264depay ! h264parse ! queue ! flvmux ! rtmpsink location="rtmp://192.168.0.128:1935/stream/hello"

notes: the above pipeline can work
3.modify the file "/root/gst-video-analytics/samples/shell/face_detection_and_classification.sh"

gst-launch-1.0 --gst-plugin-path ${GST_PLUGIN_PATH} \
$SOURCE_ELEMENT ! decodebin ! videoconvert ! video/x-raw,format=BGRx ! \
gvadetect model=$DETECT_MODEL_PATH device=$DEVICE pre-proc=$PRE_PROC ! queue ! \
gvawatermark ! videoconvert ! x264enc ! h264parse ! flvmux \
! rtmpsink location="rtmp://192.168.0.128:1935/stream/hello"

run ./face_detection_and_classification.sh /dev/video0:

root@ubuntu:~/gst-video-analytics/samples/shell# ./face_detection_and_classification.sh /dev/video0
[setup_env.sh] GStreamer-plugins environment initialized
[setlocale.sh] C locale is set
Running sample with the following parameters:
GST_PLUGIN_PATH=/root/gst-video-analytics/scripts/../build/intel64/Release/lib:/usr/lib/gst-video-analytics/:/root/gst-video-analytics/
LD_LIBRARY_PATH=/opt/intel/dldt/inference-engine/external/hddl/lib
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
param: 4, val: 0
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
param: 4, val: 0
DRM_IOCTL_I915_GEM_APERTURE failed: Invalid argument
Assuming 131072kB available aperture size.
May lead to reduced performance or incorrect rendering.
get chip id failed: -1 [22]
param: 4, val: 0
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...

There was no error, but VLC cannot get RTMP by URL rtmp://192.168.0.128:1935/stream/hello

So how does the gvawatermark connect to the rtmpsink, that I can get the RTMP flow.

Security barrier

Security barrier shell sample uses model that is trained to recognize Chinese license plates, so recognition results of other country car license plates are not valid.

Confusing "Run Samples" directions when using docker container

I built the container, ran the command in "Run container:" step and got into the container's shell prompt.

The directions say to go to "Run Samples" section. The steps there seem to be for the host machine, not the container.

For example, in the container, setupvars.sh is found in ./opt/intel/dldt/inference-engine/external/opencv_4.1.1_ubuntu16/

Additionally, using the docker run command in "Run container" section, the container doesn't have a ~/gva directory as shown in "Run Samples" command.

root@clftower:/# cd ~/gva
bash: cd: /root/gva: No such file or directory
root@clftower:/#

issues with identification

Hi,
I have few issues with your reidentification:

  1. the output tensor of feature extractor in your code is not the same as if I run it with openvino and same input for openvino and your gstream app.
  2. when creating gallery It doesnt give same feature vector as when I run same image throw pipline (I have added the landmark to the gallery creating so it should be same pipline)
  3. there is a bug in binding the gallery to the pearson detected: when I run video with more than one person it takes feature vector from one person but lable is as different person, i.e if I run video with only one face is gives correct label , but if I run same video with more faces it gives wrong label.

OpenVINO 2019 R3 host machine GVA cmake .. failed

Dear experts,

I try to install gva in my host machine follow the steps by the below link,

however, I got error when I build gst-video-analytics, could anyone can suggest is there anything I missing? (no error in clinfo & vainfo, and openvino 2019 R3 was installed)

Build GVA plugin

source /opt/intel/openvino/bin/setupvars.sh

[setupvars.sh] OpenVINO environment initialized

build GVA plugin

mkdir ~/gva/gst-video-analytics/build # was cloned on step 2.1 of current instruction
cd ~/gva/gst-video-analytics/build
cmake ..

-- CMAKE_BUILD_TYPE is undefined. Set default build type Release.
CMake Warning at CMakeLists.txt:25 (message):
VERSION_PATCH is undefined. Set default value 0.

CMake Warning at CMakeLists.txt:30 (message):
GIT_INFO is undefined. Set default value git_unknown.

ENABLE_PAHO_INSTALLATION=OFF
ENABLE_RDKAFKA_INSTALLATION=OFF
-- Checking for module 'gstreamer-1.0>=1.14'

CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
gst/common/CMakeLists.txt:12 (pkg_check_modules)

-- Configuring incomplete, errors occurred!
See also "/home/<>/gva/gst-video-analytics/build/CMakeFiles/CMakeOutput.log".
See also "/home/<>/gva/gst-video-analytics/build/CMakeFiles/CMakeError.log".

#####Here is the CMakeError.log########

Determining if the pthread_create exist failed with the following output:
Change Dir: /home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_14d33/fast"
/usr/bin/make -f CMakeFiles/cmTC_14d33.dir/build.make CMakeFiles/cmTC_14d33.dir/build
make[1]: Entering directory '/home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_14d33.dir/CheckSymbolExists.c.o
/usr/bin/cc -o CMakeFiles/cmTC_14d33.dir/CheckSymbolExists.c.o -c /home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_14d33
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_14d33.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTC_14d33.dir/CheckSymbolExists.c.o -o cmTC_14d33 -rdynamic
CMakeFiles/cmTC_14d33.dir/CheckSymbolExists.c.o: In function main': CheckSymbolExists.c:(.text+0x16): undefined reference to pthread_create'
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_14d33.dir/build.make:97: recipe for target 'cmTC_14d33' failed
make[1]: *** [cmTC_14d33] Error 1
make[1]: Leaving directory '/home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_14d33/fast' failed
make: *** [cmTC_14d33/fast] Error 2

File /home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_84ef1/fast"
/usr/bin/make -f CMakeFiles/cmTC_84ef1.dir/build.make CMakeFiles/cmTC_84ef1.dir/build
make[1]: Entering directory '/home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_84ef1.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_84ef1.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.5/Modules/CheckFunctionExists.c
Linking C executable cmTC_84ef1
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_84ef1.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_84ef1.dir/CheckFunctionExists.c.o -o cmTC_84ef1 -rdynamic -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_84ef1.dir/build.make:97: recipe for target 'cmTC_84ef1' failed
make[1]: *** [cmTC_84ef1] Error 1
make[1]: Leaving directory '/home/iei/gva/gst-video-analytics/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_84ef1/fast' failed
make: *** [cmTC_84ef1/fast] Error 2

Try to take advantage of hardware acceleration in OV 2019 R3 ...

Thank you so much!

Malcolm

Running sample in docker fails

root@up2:~/gstreamer-plugins# ./samples/shell/face_detection_and_classification.sh /root/video-examples/input.avi
[setup_env.sh] GStreamer-plugins environment initialized
Running sample with the following parameters:
GST_PLUGIN_PATH=/usr/lib/va-gstreamer-plugins/
LD_LIBRARY_PATH=
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Got context from element 'fps-display-video_sink-actual-sink-vaapi': gst.vaapi.Display=context, gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayGLX\)\ vaapidisplayglx1";
ERROR: from element /GstPipeline:pipeline0/GstGvaInference:gvainference0: gvainference plugin intitialization failed
Additional debug info:
/root/gstreamer-plugins/gst/elements/gvainference/gstgvainference.c(452): gst_gva_inference_start (): /GstPipeline:pipeline0/GstGvaInference:gvainference0:
Incorrect number of input edges for layer mbox_conf_reshape
/opt/intel/dldt/inference-engine/include/details/ie_exception_conversion.hpp:71
Setting pipeline to NULL ...
Freeing pipeline ...
root@up2:~/gstreamer-plugins# 

seek events

“seek” GStreamer* events are leading to unexpected stream position or stop playback

docker installation of gst plugins binary version failing

Hi,
I have a core-i7 system where i am trying to install the gst-plugins via docker, as i need binary version i am trying to run ./build_docker_image.sh package, but the in between it throws an error(PFA screenshot).

Thanks
Mushtaq
gst-error1
gst-error2

cmake pkgconfig can't find gstreamer-1.0 pkg conf

-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'gstreamer-1.0'
-- No package 'gstreamer-1.0' found
CMake Error at /usr/local/share/cmake-3.14/Modules/FindPkgConfig.cmake:457 (message):
A required package was not found
Call Stack (most recent call first):
/usr/local/share/cmake-3.14/Modules/FindPkgConfig.cmake:642 (_pkg_check_modules_internal)
gst/common/CMakeLists.txt:13 (pkg_check_modules)

Build fails on enabling the VA-API in the latest docker.

/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp: In function 'VASurfaceID InferenceBackend::CreateVASurfaceFromAlignedBuffer(VADisplay, InferenceBackend::Image&)':
/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp:140:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
for (int i = 0; i < external.num_planes; i++) {
^
/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp: In member function 'virtual void InferenceBackend::VAAPIPreProc::ReleaseImage(const InferenceBackend::Image&)':
/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp:202:20: error: statement has no effect [-Werror=unused-value]
image.type == MemoryType::ANY;
^
/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp: At global scope:
/root/gstreamer-plugins/inference_backend/pre_proc/vaapi/vaapi_pre_proc.cpp:126:20: error: 'VASurfaceID InferenceBackend::CreateVASurfaceFromAlignedBuffer(VADisplay, InferenceBackend::Image&)' defined but not used [-Werror=unused-function]
static VASurfaceID CreateVASurfaceFromAlignedBuffer(VADisplay dpy, Image &src) {
^
cc1plus: all warnings being treated as errors
make[2]: *** [inference_backend/pre_proc/vaapi/CMakeFiles/vaapi_pre_proc.dir/vaapi_pre_proc.cpp.o] Error 1
inference_backend/pre_proc/vaapi/CMakeFiles/vaapi_pre_proc.dir/build.make:62: recipe for target 'inference_backend/pre_proc/vaapi/CMakeFiles/vaapi_pre_proc.dir/vaapi_pre_proc.cpp.o' failed
CMakeFiles/Makefile2:1058: recipe for target 'inference_backend/pre_proc/vaapi/CMakeFiles/vaapi_pre_proc.dir/all' failed
make[1]: *** [inference_backend/pre_proc/vaapi/CMakeFiles/vaapi_pre_proc.dir/all] Error 2

Multilevel or back to back detectors

Hi,
Is there any option to have back to back detectors in the single pipeline?
detection->classification in the roi is there.
But is there any option for
detection->detection in given roi?

face detection sample doesn't run

user@cfl-nuc:~/gst-video-analytics/samples/shell$ ./face_detection_and_classification.sh ~/videos/input.mp4 
[setup_env.sh] GStreamer-plugins environment initialized
Running sample with the following parameters:
GST_PLUGIN_PATH=:/home/user/gst-video-analytics/build/intel64/Release/lib
LD_LIBRARY_PATH=/opt/intel/common/mdf/lib64:/opt/intel/openvino_2019.1.094/opencv/lib:/opt/intel/opencl:/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/external/hddl/lib:/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/external/gna/lib:/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/external/mkltiny_lnx/lib:/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/external/tbb/lib:/opt/intel/openvino_2019.1.094/deployment_tools/inference_engine/lib/intel64:/opt/intel/openvino_2019.1.094/openvx/lib:
WARNING: erroneous pipeline: no element "fpsdisplaysink"
user@cfl-nuc:~/gst-video-analytics/samples/shell$ 

user@cfl-nuc:~/gst-video-analytics/samples/shell$ echo $MODELS_PATH 
/home/user/ov_models/
user@cfl-nuc:~/gst-video-analytics/samples/shell$ echo $MODELS_DIR
/home/user/ov_models/
user@cfl-nuc:~/gst-video-analytics/samples/shell$ 

GST_PLUGIN_PATH env variable

Should $GST_PLUGIN_PATH already exist. The "build on host machine" directions specify that the env variable should be set but the command implies the variable exists already. In my case, by default, the env variable is not set.

export GST_PLUGIN_PATH=$GST_PLUGIN_PATH:~/gst-video-analytics/build/intel64/Release/lib

GPU decode and GPU inference is broken

Hi,
If I run
~/gst-video-analytics/samples/benchmark# ./benchmark.sh file.avi GPU GPU
Then the following error occurs:

WARNING: erroneous pipeline: could not link vaapipostproc0 to gvadetect0, gvadetect0 can't handle caps video/x-raw(memory:VASurface)

met issue when build docker of fst plufgins

when run this command:
$sudo ./build_docker_image.sh package

met below issue:
Step 61/93 : COPY ./l_openvino_toolkit_p_${OpenVINO_VERSION}.tgz .
COPY failed: stat /var/lib/docker/tmp/docker-builder814337069/l_openvino_toolkit_p_2020.1.023.tgz: no such file or directory

vaapi features won't be shown by gst-video-analytics on CentOS containers

Referred to this guide : https://github.com/opencv/gst-video-analytics/wiki/Getting-Started-Guide-%5B2020.1%5D#run-docker-image-with-command-

With providing necessary flags(privileged, net=host, Xauth, tmp/X11-unix) I can see all vaapi features listed in ubuntu docker:

root@vca_node_0:/home# gst-inspect-1.0 vaapi

(gst-plugin-scanner:11): GLib-GObject-CRITICAL **: g_object_class_install_property: assertion 'property_id > 0' failed
Plugin Details:
  Name                     vaapi
  Description              VA-API based elements
  Filename                 /usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so
  Version                  1.16.0
  License                  LGPL
  Source module            gstreamer-vaapi
  Source release date      2019-04-19
  Binary package           gstreamer-vaapi
  Origin URL               http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

  vaapih264feienc: VA-API H264 FEI Advanced encoder (Experimental)
  vaapih264enc: VA-API H264 encoder
  vaapijpegenc: VA-API JPEG encoder
  vaapih265enc: VA-API H265 encoder
  vaapimpeg2enc: VA-API MPEG-2 encoder
  vaapisink: VA-API sink
  vaapidecodebin: VA-API Decode Bin
  vaapipostproc: VA-API video postprocessing
  vaapih265dec: VA-API H265 decoder
  vaapivp9dec: VA-API VP9 decoder
  vaapivp8dec: VA-API VP8 decoder
  vaapivc1dec: VA-API VC1 decoder
  vaapih264dec: VA-API H264 decoder
  vaapimpeg2dec: VA-API MPEG2 decoder
  vaapijpegdec: VA-API JPEG decoder

  15 features:
  +-- 15 elements

But on CentOS I don't have luck:

[root@vca_node_0 home]# gst-inspect-1.0 vaapi

(gst-plugin-scanner:15): GLib-GObject-CRITICAL **: 23:14:20.179: g_object_class_install_property: assertion 'property_id > 0' failed
Plugin Details:
  Name                     vaapi
  Description              VA-API based elements
  Filename                 /usr/local/lib64/gstreamer-1.0/libgstvaapi.so
  Version                  1.16.0
  License                  LGPL
  Source module            gstreamer-vaapi
  Source release date      2019-04-19
  Binary package           gstreamer-vaapi
  Origin URL               http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer


  0 features:

What am I missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.