Skip to content
This repository was archived by the owner on Dec 16, 2024. It is now read-only.

Commit b66f17d

Browse files
committed
first commit
0 parents  commit b66f17d

File tree

160 files changed

+30217
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+30217
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build/*

ATTRIBUTION.md

+189
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
2+
Component: libva-utils
3+
Repository: https://github.com/intel/libva-utils
4+
License: https://github.com/intel/libva-utils/blob/master/COPYING
5+
6+
Component: Chart.js
7+
Repository: https://github.com/chartjs/Chart.js
8+
License: MIT (https://github.com/chartjs/Chart.js/blob/master/LICENSE.md)
9+
10+
Component: curl
11+
Repository: https://github.com/curl/curl
12+
License: https://github.com/curl/curl/blob/master/COPYING
13+
14+
Component: ffmpeg
15+
Repository: https://ffmpeg.org
16+
License: https://ffmpeg.org/legal.html
17+
18+
Component: Foundation Icon Font Sets
19+
Repository: https://github.com/zurb/foundation-icons
20+
License: MIT (https://github.com/zurb/foundation-icons/blob/master/MIT-LICENSE.txt)
21+
22+
Component: gflags
23+
Repository: https://github.com/gflags/gflags
24+
License: https://github.com/gflags/gflags/blob/master/COPYING.txt
25+
26+
Component: glog
27+
Repository: https://github.com/google/glog
28+
License: https://github.com/google/glog/blob/master/COPYING
29+
30+
Component: Google Test
31+
Repository: https://github.com/google/googletest
32+
License: https://github.com/google/googletest/blob/master/LICENSE
33+
34+
Component: gst-libav
35+
Repository: https://github.com/GStreamer/gst-libav
36+
License: https://github.com/GStreamer/gst-libav/blob/master/COPYING
37+
38+
Component: Gstreamer
39+
Repository: https://github.com/GStreamer/gstreamer
40+
License: https://github.com/GStreamer/gstreamer/blob/master/COPYING
41+
42+
Component: Gstreamer ORC
43+
Repository: https://github.com/GStreamer/orc
44+
License: https://github.com/GStreamer/orc/blob/master/COPYING
45+
46+
Component: Gstreamer plugin-bad
47+
Repository: https://github.com/GStreamer/gst-plugins-bad
48+
License: https://github.com/GStreamer/gst-plugins-bad/blob/master/COPYING
49+
50+
Component: Gstreamer plugin-base
51+
Repository: https://github.com/GStreamer/gst-plugins-base
52+
License: https://github.com/GStreamer/gst-plugins-base/blob/master/COPYING
53+
54+
Component: Gstreamer plugin-good
55+
Repository: https://github.com/GStreamer/gst-plugins-good
56+
License: https://github.com/GStreamer/gst-plugins-good/blob/master/COPYING
57+
58+
Component: Gstreamer plugin-ugly
59+
Repository: https://github.com/GStreamer/gst-plugins-ugly
60+
License: https://github.com/GStreamer/gst-plugins-ugly/blob/master/COPYING
61+
62+
Component: Gstreamer vaapi
63+
Repository: https://github.com/GStreamer/gstreamer-vaapi
64+
License: https://github.com/GStreamer/gstreamer-vaapi/blob/master/COPYING.LIB
65+
66+
Component: Intel DLDT
67+
Repository: https://github.com/openvinotoolkit/openvino
68+
License: https://github.com/openvinotoolkit/openvino/blob/2020/LICENSE
69+
70+
Component: Intel Graphics Memory Management Library
71+
Repository: https://github.com/intel/gmmlib
72+
License: https://github.com/intel/gmmlib/blob/master/LICENSE.md
73+
74+
Component: Intel VDMS
75+
Repository: https://github.com/intellabs/vdms
76+
License: https://github.com/IntelLabs/vdms/blob/develop/LICENSE
77+
78+
Component: Intel libva
79+
Repository: https://github.com/intel/libva
80+
License: https://github.com/intel/libva/blob/master/COPYING
81+
82+
Component: Intel media-driver
83+
Repository: https://github.com/intel/media-driver
84+
License: https://github.com/intel/media-driver/blob/master/LICENSE.md
85+
86+
Component: SVT-AV1
87+
Repository: https://github.com/OpenVisualCloud/SVT-AV1
88+
License: https://github.com/OpenVisualCloud/SVT-AV1/blob/master/LICENSE.md
89+
90+
Component: SVT-HEVC
91+
Repository: https://github.com/OpenVisualCloud/SVT-HEVC
92+
License: https://github.com/OpenVisualCloud/SVT-HEVC/blob/master/LICENSE.md
93+
94+
Component: SVT-VP9
95+
Repository: https://github.com/OpenVisualCloud/SVT-VP9
96+
License: https://github.com/OpenVisualCloud/SVT-VP9/blob/master/LICENSE.md
97+
98+
Component: Intel Media SDK
99+
Repository: https://github.com/Intel-Media-SDK/MediaSDK
100+
License: https://github.com/Intel-Media-SDK/MediaSDK/blob/master/LICENSE
101+
102+
Component: jQuery (New Wave JavaScript)
103+
Repository: https://github.com/jquery/jquery
104+
License: MIT (https://github.com/jquery/jquery/blob/master/LICENSE.txt)
105+
106+
Component: JSON-CPP
107+
Repository: https://github.com/open-source-parsers/jsoncpp
108+
License: https://github.com/open-source-parsers/jsoncpp/blob/master/LICENSE
109+
110+
Component: kafkacat
111+
Repository: https://github.com/edenhill/kafkacat
112+
License: https://github.com/edenhill/kafkacat/blob/master/LICENSE
113+
114+
Component: libogg
115+
Repository: https://github.com/xiph/ogg
116+
License: https://github.com/xiph/ogg/blob/master/COPYING
117+
118+
Component: libvorbis
119+
Repository: https://github.com/xiph/vorbis
120+
License: https://github.com/xiph/vorbis/blob/master/COPYING
121+
122+
Component: libvpx
123+
Repository: https://github.com/webmproject/libvpx/
124+
License: https://github.com/webmproject/libvpx/blob/master/LICENSE
125+
126+
Component: fdk-aac
127+
Repository: https://sourceforge.net/p/opencore-amr/fdk-aac/ci/master/tree
128+
License: https://fedoraproject.org/wiki/Licensing/FDK-AAC
129+
130+
Component: nginx
131+
Repository: https://github.com/nginx/nginx
132+
License: https://nginx.org/LICENSE
133+
134+
Component: opencv
135+
Repository: https://github.com/opencv/opencv
136+
License: https://github.com/opencv/opencv/blob/master/LICENSE
137+
138+
Component: gst-video-analytics
139+
Repository: https://github.com/opencv/gst-video-analytics
140+
License: https://github.com/opencv/gst-video-analytics/blob/master/LICENSE
141+
142+
Component: open model zoo
143+
Repository: https://github.com/opencv/open_model_zoo
144+
License: https://github.com/opencv/open_model_zoo/blob/master/LICENSE
145+
146+
Component: opus
147+
Repository: https://github.com/xiph/opus
148+
License: https://github.com/xiph/opus/blob/master/COPYING
149+
150+
Component: PINTO0309 OpenVINO-YoloV3
151+
Repository: https://github.com/PINTO0309/OpenVINO-YoloV3
152+
License: https://github.com/PINTO0309/OpenVINO-YoloV3/blob/master/LICENSE
153+
154+
Component: protobuf
155+
Repository: https://github.com/protocolbuffers/protobuf
156+
License: https://github.com/protocolbuffers/protobuf/blob/master/LICENSE
157+
158+
Component: python-requests
159+
Repository: https://github.com/psf/requests
160+
License: https://github.com/psf/requests/blob/master/LICENSE
161+
162+
Component: scanner
163+
Repository: https://github.com/scanner-research/scanner
164+
License: https://github.com/scanner-research/scanner/blob/master/LICENSE
165+
166+
Component: python tornado
167+
Repository: https://github.com/tornadoweb/tornado
168+
License: https://github.com/tornadoweb/tornado/blob/master/LICENSE
169+
170+
Component: what-input
171+
Repository: https://github.com/ten1seven/what-input
172+
License: https://github.com/ten1seven/what-input/blob/master/LICENSE
173+
174+
Component: kafka docker
175+
Repository: https://github.com/wurstmeister/kafka-docker
176+
License: https://github.com/wurstmeister/kafka-docker/blob/master/LICENSE
177+
178+
Component: x264
179+
Repository: https://github.com/mirror/x264
180+
License: https://github.com/mirror/x264/blob/master/COPYING
181+
182+
Component: x265
183+
Repository: https://github.com/videolan/x265
184+
License: https://github.com/videolan/x265/blob/master/COPYING
185+
186+
Component: zookeeper
187+
Repository: https://hub.docker.com/_/zookeeper
188+
License: https://github.com/apache/zookeeper/blob/master/LICENSE.txt
189+

CMakeLists.txt

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
cmake_minimum_required (VERSION 2.8)
2+
3+
Project(library_curation NONE)
4+
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_HOME_DIRECTORY}/dist")
5+
6+
if (NOT DEFINED REGISTRY)
7+
set(REGISTRY "")
8+
elseif (NOT ${REGISTRY} MATCHES "/$")
9+
set(REGISTRY "${REGISTRY}/")
10+
endif()
11+
if (NOT DEFINED PLATFORM)
12+
set(PLATFORM "Xeon")
13+
endif()
14+
if (NOT DEFINED NCURATIONS)
15+
set(NCURATIONS 1)
16+
endif()
17+
if (NOT DEFINED INGESTION)
18+
set(INGESTION "object,face")
19+
endif()
20+
21+
if(NOT REGISTRY)
22+
add_custom_target(update ${CMAKE_HOME_DIRECTORY}/script/update-image.sh)
23+
endif()
24+
add_custom_target(dist ${CMAKE_HOME_DIRECTORY}/script/mk-dist.sh)
25+
26+
file(GLOB dirs "deployment" "*")
27+
list(REMOVE_DUPLICATES dirs)
28+
foreach (dir ${dirs})
29+
if(EXISTS ${dir}/CMakeLists.txt)
30+
add_subdirectory(${dir})
31+
endif()
32+
endforeach()
33+
34+
# legal message
35+
execute_process(COMMAND printf "\n\nThis script will build third party components licensed under various open source licenses into your container images. The terms under which those components may be used and distributed can be found with the license document that is provided with those components. Please familiarize yourself with those terms to ensure your distribution of those components complies with the terms of those licenses.\n\n")
36+
37+
execute_process(COMMAND printf "PLATFORM=${PLATFORM}, NCURATIONS=${NCURATIONS}, INGESTION=${INGESTION}\n")
38+
execute_process(COMMAND printf "REGISTRY=${REGISTRY}\n\n")
39+

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 Intel Corporation
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
This sample implements libraries of video files content analysis, database ingestion, content search and visualization:
2+
- **Ingest**: Analyze video content and ingest the data into the VDMS.
3+
- **VDMS**: Store metadata efficiently in a graph-based database.
4+
- **Visualization**: Visualize content search based on video metadata.
5+
6+
<IMG src="doc/arch.png" height="250px">
7+
8+
**This is a concept sample in active development.**
9+
10+
### Software Stacks
11+
12+
The sample is powered by the following Open Visual Cloud software stacks:
13+
- **Media Analytics**:
14+
- [The GStreamer-based media analytics stack](https://github.com/OpenVisualCloud/Dockerfiles/tree/master/Xeon/ubuntu-16.04/analytics/gst) is used for object, face and emotion detection. The software stack is optimized for [Intel® Xeon® Scalable Processors](https://github.com/OpenVisualCloud/Dockerfiles/tree/master/Xeon/ubuntu-16.04/analytics/gst).
15+
16+
- **NGINX Web Service**:
17+
- [The NGINX/FFmpeg-based web serving stack](https://github.com/OpenVisualCloud/Dockerfiles/tree/master/Xeon/centos-7.6/media/nginx) is used to store and segment video content and serve web services. The software stack is optimized for [Intel Xeon Scalable Processors](https://github.com/OpenVisualCloud/Dockerfiles/tree/master/Xeon/centos-7.6/media/nginx).
18+
19+
### Install Prerequisites:
20+
21+
- **Time Zone**: Check that the timezone setting of your host machine is correctly configured. Timezone is used during build. If you plan to run the sample on a cluster of machines managed by Docker Swarm or Kubernetes, please make sure to synchronize time among the manager/master node and worker nodes.
22+
23+
- **Build Tools**: Install ```cmake``` and ```m4``` if they are not available on your system.
24+
25+
- **Docker Engine**:
26+
- Install [docker engine](https://docs.docker.com/install).
27+
- Install [docker compose](https://docs.docker.com/compose/install), if you plan to deploy through docker compose. Version 1.20+ is required.
28+
- Setup [docker swarm](https://docs.docker.com/engine/swarm), if you plan to deploy through docker swarm. See [Docker Swarm Setup](deployment/docker-swarm/README.md) for additional setup details.
29+
- Setup [Kubernetes](https://kubernetes.io/docs/setup), if you plan to deploy through Kubernetes. See [Kubernetes Setup](deployment/kubernetes/README.md) for additional setup details.
30+
- Setup docker proxy as follows if you are behind a firewall:
31+
32+
```bash
33+
sudo mkdir -p /etc/systemd/system/docker.service.d
34+
printf "[Service]\nEnvironment=\"HTTPS_PROXY=$https_proxy\" \"NO_PROXY=$no_proxy\"\n" | sudo tee /etc/systemd/system/docker.service.d/proxy.conf
35+
sudo systemctl daemon-reload
36+
sudo systemctl restart docker
37+
```
38+
39+
### Build Sample:
40+
41+
```bash
42+
mkdir build
43+
cd build
44+
cmake ..
45+
make
46+
```
47+
48+
See also: [Customize Build Process](doc/cmake.md).
49+
50+
### Start/stop Sample:
51+
52+
Use the following commands to start/stop services via docker-compose:
53+
54+
```bash
55+
make start_docker_compose
56+
make stop_docker_compose
57+
```
58+
59+
Use the following commands to start/stop services via docker swarm:
60+
61+
```bash
62+
make update # optional for private registry
63+
make start_docker_swarm
64+
make stop_docker_swarm
65+
```
66+
67+
See also: [Docker Swarm Setup](deployment/docker-swarm/README.md).
68+
69+
Use the following commands to start/stop Kubernetes services:
70+
71+
```
72+
make update # optional for private registry
73+
make start_kubernetes
74+
make stop_kubernetes
75+
```
76+
77+
See also: [Kubernetes Setup](deployment/kubernetes/README.md).
78+
79+
### Launch Sample UI:
80+
81+
Launch your browser and browse to ```https://<hostname>```. The sample UI is similar to the following:
82+
83+
<IMG src="doc/sample-ui.gif" height="270px"></IMG>
84+
85+
---
86+
87+
* For Kubernetes/Docker Swarm, ```<hostname>``` is the hostname of the manager/master node.
88+
* If you see a browser warning of self-signed certificate, please accept it to proceed to the sample UI.
89+
90+
---
91+
92+
### See Also
93+
94+
- [Configuration Options](doc/cmake.md)
95+
- [Docker Swarm Setup](deployment/docker-swarm/README.md)
96+
- [Kubernetes Setup](deployment/kubernetes/README.md)
97+
- [Sample Distribution](doc/dist.md)
98+
- [Visual Data Management System](https://github.com/intellabs/vdms)
99+

deployment/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include("${CMAKE_SOURCE_DIR}/script/scan-all.cmake")

deployment/certificate/.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.rnd
2+
*.key
3+
*.pem
4+
*.crt

deployment/certificate/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
set(service "lcc_certificate")
2+
include("${CMAKE_SOURCE_DIR}/script/service.cmake")

deployment/certificate/Dockerfile

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
FROM centos:7.6.1810
3+
RUN yum install -y -q openssl && rm -rf /var/cache/yum/*
4+
5+
####
6+
ARG USER
7+
ARG GROUP
8+
ARG UID
9+
ARG GID
10+
## must use ; here to ignore user exist status code
11+
RUN [ ${GID} -gt 0 ] && groupadd -f -g ${GID} ${GROUP}; \
12+
[ ${UID} -gt 0 ] && useradd -d /home/${USER} -g ${GID} -K UID_MAX=${UID} -K UID_MIN=${UID} ${USER}; \
13+
echo
14+
USER ${UID}
15+
####

deployment/certificate/build.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash -e
2+
3+
IMAGE="lcc_certificate"
4+
DIR=$(dirname $(readlink -f "$0"))
5+
6+
. "$DIR/../../script/build.sh"

0 commit comments

Comments
 (0)