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

Commit 68e4fd5

Browse files
authored
Merge pull request #3 from intel-iot-devkit/document_revise
Document revise
2 parents 2e964dd + 49d27fb commit 68e4fd5

9 files changed

+175
-4
lines changed

README.md

+77-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,77 @@
1-
# concurrent-video-anlalytic-pipeline-optimzation-sample
1+
# Concurrent Video Analytic Pipeline Optimzation Sample
2+
Support users to quickly setup and adjust the core concurrent video analysis workload through configuration file to obtain the best performance of video codec, post-processing and inference based on Intel® integrated GPU according to their product requirements.
3+
Users can use the sample application video_e2e_sample to complete runtime performance evaluation or as a reference for debugging core video workload issues.
4+
5+
## Typical workloads
6+
Sample par files can be found in par_files directory. Verfied on i7-8559U. Performance differs on other platforms.
7+
* 16 1080p H264 decoding, scaling, face detection inference, rendering inference results, composition, saving composition results to local H264 file, and display
8+
* 4 1080p H264 decoding, scaling, human pose estimation inference, rendering inference results, composition and display
9+
* 4 1080p H264 decoding, scaling, vehicle and vehicle attributes detection inference, rendering inference results, composition and display
10+
* 16 1080p RTSP H264 stream decoding, scaling, face detection inference, rendering inference results, composition and display.
11+
* 16 1080p H264 decoding, scaling, face detection inference, rendering inference results, composition and display. Plus 16 1080p H264 decoding, composition and showing on second display.
12+
13+
# Dependencies
14+
The sample application depends on [Intel® Media SDK](https://github.com/Intel-Media-SDK/), [Intel® OpenVINO™](https://software.intel.com/en-us/openvino-toolkit) and [FFmpeg](https://www.ffmpeg.org/)
15+
16+
# FAQ
17+
See doc/FAQ.md
18+
19+
# Table of contents
20+
21+
* [License](#license)
22+
* [How to contribute](#how-to-contribute)
23+
* [Documentation](#documentation)
24+
* [System requirements](#system-requirements)
25+
* [How to build](#how-to-build)
26+
* [Build steps](#build-steps)
27+
* [Known limitations](#know-limitations)
28+
29+
# License
30+
The sample application is licensed under MIT license. See [LICENSE](./LICENSE) for details.
31+
32+
# How to contribute
33+
See [CONTRIBUTING](./doc/CONTRIBUTING.md) for details. Thank you!
34+
35+
# Documentation
36+
See [user guide](./doc/concurrent_video_analytic_sample_application_user_guide_2020.1.0.pdf)
37+
38+
# System requirements
39+
40+
**Operating System:**
41+
* Ubuntu 18.04.02
42+
43+
**Software:**
44+
* [MediaSDK 19.4.0](https://github.com/Intel-Media-SDK/MediaSDK/releases/tag/intel-mediasdk-19.4.0)
45+
* [OpenVINO™ 2019 R3](https://software.intel.com/en-us/openvino-toolkit)
46+
47+
**Hardware:**
48+
* Intel® platforms supported by the MediaSDK 19.4.0 and OpenVINO 2019 R3.
49+
* For Media SDK, the major platform dependency comes from the back-end media driver. https://github.com/intel/media-driver
50+
* For OpenVINO™, see details from here: https://software.intel.com/en-us/openvino-toolkit/documentation/system-requirements
51+
52+
# How to build
53+
54+
Run build_and_install.sh to install dependent software packages and build sample application video_e2e_sample.
55+
56+
Please refer to ”Installation Guide“ in [user guide](./doc/concurrent_video_analytic_sample_application_user_guide_2020.1.0.pdf) for details.
57+
58+
## Build steps
59+
60+
Get sources with the following git command:
61+
```sh
62+
git clone https://github.com/intel-iot-devkit/concurrent-video-analytic-pipeline-optimization-sample-l.git cva_sample
63+
```
64+
65+
```sh
66+
cd cva_sample
67+
./build_and_install.sh
68+
```
69+
This script will install the dependent software packages by running command "apt install". So it will ask for sudo password. Then it will download libva, libva-util, media-driver and MediaSDK source code and install these libraries. It might take 10 to 20 minutes depending on the network bandwidth.
70+
71+
After the script finishing, the sample application video_e2e_sample can be found under ./bin. Please refer to "Run sample application" in [user guide](./doc/concurrent_video_analytic_sample_application_user_guide_2020.1.0.pdf) for details.
72+
73+
# Known limitations
74+
75+
The sample application has been validated on Intel® platforms Skylake(i7-6770HQ), Coffee Lake(i7-8559U i7-8700) and Whiskey Lake(i7-8665UE).
76+
77+

build_and_install.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ then
6363
echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/intel/mediasdk/lib"' >> ~/.bashrc
6464
fi
6565

66-
echo "VAAS sample application building has completed!"
66+
echo "Sample application building has completed!"
6767
echo "Please use ./bin/video_e2e_sample for testing"
6868
fi
6969

doc/CONTRIBUTING.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
We welcome community contributions to SVET sample application. Thank you for your time!
2+
3+
Please note that review and merge might take some time at this point.
4+
5+
SVET sample application is licensed under MIT license. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
6+
7+
Steps:
8+
- In the commit message, explain what bug is fixed or what new feature is added in details.
9+
- Validate that your changes don't break a build. [build instruction](../README.md#how-to-build)
10+
- Pass [testing](#testing)
11+
- Wait while your patchset is reviewed and tested by our internal validation cycle
12+
13+
# Testing
14+
15+
## Requirements
16+
17+
Hardware Requirements: Coffee Lake or Whiskey Lake
18+
Software Requirements: Ubuntu 18.04, MediaSDK 19.4.0 and OpenVINO 2019 R3
19+
20+
## How to test your changes
21+
22+
### 1. Build the SVET sample applicaton
23+
24+
```sh
25+
./build_and_install.sh
26+
```
27+
Apply the changes to MediaSDK/samples/video_e2e_sample/. Then build video_e2e_sample:
28+
```sh
29+
cp msdk_build.sh MediaSDK
30+
cd MediaSDK
31+
./msdk_build.sh
32+
```
33+
34+
### 2. Run tests to make sure below tests can run without error
35+
36+
Simple display test:
37+
```sh
38+
./bin/video_e2e_sample -par par_file/par_file_name.par
39+
```
40+
Basic video decoding and inference tests:
41+
n16_1080p_1080p_dp_noinfer.par
42+
n16_1080p_1080p_dp.par
43+
n16_1080p_4k_dp.par
44+
n4_1080p_1080p_dp.par
45+
n4_vehical_detect_1080p.par
46+
n64_d1_1080p_dp.par
47+
48+
RTSP play and saving tests:
49+
rtsp_dump_only.par
50+
n16_1080p_rtsp_simu.pa
51+
n4_1080p_rtsp_simu_dp.par
52+
n16_1080p_rtsp_simu_dump.par
53+
54+
Multiple display tests:
55+
```sh
56+
./bin/video_e2e_sample -par par_file/n16_1080p_1080p_dp_noinfer.par -par par_file/n16_1080p_1080p_dp.par
57+
```
58+

doc/FAQ.md

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Frequently asked questions (SVET sample application)
2+
3+
## Where can I find the descritpion of options used in par file?
4+
See chapter 2.4 in doc/svet_sample_application_user_guide_2020.1.0.pdf
5+
Running the SVET sample applicton with option "-?" can show the usage of options.
6+
7+
## Why does the system need to be switched to text mode before running the sample application
8+
The sample application uses libDRM to render the video directly to display, so it needs to act as master of the DRM display, which isn't allowed when X server is running.
9+
If the par file doesn't include display session, there is no need to switch to text mode.
10+
11+
## Why it needs "su -p" to switch to root user before running the sample application
12+
To become DRM master, it needs root privileges. With option "-p", it will preserve environment variables, like LIBVA_DRIVERS_PATH, LIBVA_DRIVER_NAME and LD_LIBRARY_PATH. If without "-p", these environment variables will be reset and the sample application will run into problems.
13+
14+
## The loading time of 16-channel face detection demo is too long
15+
Please enable cl_cache by running command "export cl_cache_dir=/tmp/cl_cache" and "mkdir -p /tmp/cl_cache". Then after the first running of 16-channel face detection demo, the compiled OpenCL kernles are cached and the model loading time of next runnings of 16-channel face detection demo will only take about 10 seconds.
16+
More details about cl_cache can be found at https://github.com/intel/compute-runtime/blob/master/opencl/doc/FAQ.md
17+
18+
## Can sources number for "-vpp_comp_only" or "-vpp_comp" be different from number of decoding sessions?
19+
No. The sources number for "-vpp_comp_only" or "-vpp_comp" must be equal to the numer of decoding sessions. Otherwise, the sample application will fail during pipeline initialization or running.
20+
21+
## How to limit the fps of whole pipeline to 30?
22+
Add "-fps 30" to every decoding session.
23+
24+
## How to limit the frame number of input to 1000?
25+
Add "-n 1000" to every decoding dessions. However this option won't work if both "-vpp_comp_only" and "-vpp_comp" are set.
26+
27+
## Where can I find tutorials for inference engine?
28+
Please refer to https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Deep_Learning_Inference_Engine_DevGuide.html
29+
30+
## Where can I find information for the models?
31+
Please refer to https://github.com/opencv/open_model_zoo/tree/master/models/intel. The names of models used in sample application are
32+
face-detection-retail-0004, human-pose-estimation-0001, vehicle-attributes-recognition-barrier-0039, vehicle-license-plate-detection-barrier-0106.
33+
34+
## Can I use other OpenVINO version rather than 2019 R3?
35+
Yes, but you have to modify some code due to interfaces changing. And also you need to download the IR files and copy them to ./model manually. Please refer to script/download_and_copy_models.sh for how to download the IR files.
Binary file not shown.
Binary file not shown.

script/install_binary.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
2-
3-
#use should use sudo to run this binaries
2+
#This script is supposed to run under directory svet_e2e_sample_l which is generated by script pack_binary.sh
3+
#Please use "sudo" to run this script for installing libva, media-driver and MediaSDK library binaries.
44

55
echo "If libva/media-driver/MediaSDK have been installed before, their libraies will be overwrote!"
66

script/pack_binary.sh

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#!/bin/bash
2+
#This script is used to pack all libva, media-driver and MediaSDK binaries to directory svet_e2e_sample_l.
3+
#Copy whole directory svet_e2e_sample_l to another device and run install_binary.sh to install the binaries
24

35
root_path=$PWD
46
release_folder=$root_path/svet_e2e_sample_l

0 commit comments

Comments
 (0)