Skip to content

Commit

Permalink
[E-103104] - Port gaze_estimation_demo gapi demo to OV API2.0 (#3891)
Browse files Browse the repository at this point in the history
* Port gaze_estimation_demo gapi demo to OV API2.0

* Port gaze_estimation_demo gapi demo to OV API2.0 - video input

* Port gaze_estimation_demo gapi demo to OV API2.0 - review comments
  • Loading branch information
DariaMityagina authored Jan 5, 2024
1 parent e8fb4cd commit 8c9bc0d
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 11 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/cpp_gapi-demos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,11 @@ jobs:
- if: ${{ !steps.cache.outputs.cache-hit }}
name: Compile OpenCV
run: |
sudo apt install pkg-config ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
rm -rf cache/opencv/.git/ # Minimize cache
mkdir cache/opencv/build
cd cache/opencv/build
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_INF_ENGINE=y -DOpenVINO_DIR=$GITHUB_WORKSPACE/ov/runtime/cmake/ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_LINKER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_C_LINKER_LAUNCHER=ccache -DBUILD_TESTS=n -DBUILD_PERF_TESTS=n -DBUILD_EXAMPLES=n -DBUILD_opencv_apps=n -DWITH_OPENCL=n -DWITH_OPENCLAMDBLAS=n -DWITH_OPENCLAMDFFT=n -DWITH_VA=n -DWITH_VA_INTEL=n -DWITH_V4L=n -DWITH_GSTREAMER=n -DWITH_PROTOBUF=n -DBUILD_PROTOBUF=n -DBUILD_JAVA=n -DBUILD_opencv_java_bindings_generator=n -DBUILD_opencv_python2=n -DBUILD_opencv_python3=n -DWITH_IMGCODEC_HDR=n -DWITH_IMGCODEC_SUNRASTER=n -DWITH_IMGCODEC_PXM=n -DWITH_IMGCODEC_PFM=n -DWITH_PNG=n -DWITH_TIFF=n -DWITH_WEBP=n -DWITH_OPENJPEG=n -DWITH_JASPER=n -DWITH_OPENEXR=n -DBUILD_opencv_dnn=n -DBUILD_opencv_features2d=n -DBUILD_opencv_flann=n -DWITH_TBB=n -DBUILD_INFO_SKIP_EXTRA_MODULES=n -DBUILD_JASPER=n -DBUILD_PNG=n -DBUILD_OPENEXR=n -DBUILD_WEBP=n -DBUILD_ZLIB=n -DWITH_CUDA=n -DWITH_EIGEN=n -DWITH_GPHOTO2=n -DOPENCV_GAPI_GSTREAMER=n -DWITH_LAPACK=n -DWITH_MATLAB=n -DWITH_MFX=n -DWITH_QUIRC=n -DWITH_VTK=n -DINSTALL_PDB=n -DINSTALL_TESTS=n -DINSTALL_C_EXAMPLES=n -DINSTALL_PYTHON_EXAMPLES=n -DOPENCV_GENERATE_SETUPVARS=n -DWITH_1394=n -DWITH_FFMPEG=n -DWITH_GTK_2_X=y -DBUILD_JPEG=y -DWITH_IPP=y -DENABLE_CONFIG_VERIFICATION=y -DBUILD_LIST=core,gapi,highgui,imgcodecs,imgproc,videoio ..
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_INF_ENGINE=y -DOpenVINO_DIR=$GITHUB_WORKSPACE/ov/runtime/cmake/ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_LINKER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_C_LINKER_LAUNCHER=ccache -DBUILD_TESTS=y -DVIDEOIO_ENABLE_PLUGINS=y -DBUILD_PERF_TESTS=n -DBUILD_EXAMPLES=n -DBUILD_opencv_apps=y -DWITH_OPENCL=n -DWITH_OPENCLAMDBLAS=n -DWITH_GSTREAMER=n -DWITH_V4L=ON -DWITH_LIBV4L=ON -DWITH_OPENCLAMDFFT=n -DWITH_VA=n -DWITH_VA_INTEL=n -DWITH_PROTOBUF=n -DBUILD_PROTOBUF=n -DBUILD_JAVA=n -DBUILD_opencv_java_bindings_generator=n -DBUILD_opencv_python2=n -DBUILD_opencv_python3=n -DWITH_IMGCODEC_HDR=y -DWITH_IMGCODEC_SUNRASTER=y -DWITH_IMGCODEC_PXM=y -DWITH_IMGCODEC_PFM=y -DWITH_PNG=y -DWITH_TIFF=n -DWITH_WEBP=n -DWITH_OPENJPEG=n -DWITH_JASPER=n -DWITH_OPENEXR=n -DBUILD_opencv_dnn=n -DBUILD_opencv_features2d=n -DBUILD_opencv_flann=n -DWITH_TBB=n -DBUILD_INFO_SKIP_EXTRA_MODULES=n -DBUILD_JASPER=n -DBUILD_PNG=n -DBUILD_OPENEXR=n -DBUILD_WEBP=n -DBUILD_ZLIB=n -DWITH_CUDA=n -DWITH_EIGEN=n -DWITH_GPHOTO2=n -DOPENCV_GAPI_GSTREAMER=n -DWITH_LAPACK=n -DWITH_MATLAB=n -DWITH_MFX=n -DWITH_QUIRC=n -DWITH_VTK=n -DINSTALL_PDB=n -DINSTALL_TESTS=n -DINSTALL_C_EXAMPLES=n -DINSTALL_PYTHON_EXAMPLES=n -DOPENCV_GENERATE_SETUPVARS=n -DWITH_1394=n -DWITH_FFMPEG=y -DWITH_GTK_2_X=y -DBUILD_JPEG=y -DWITH_IPP=y -DENABLE_CONFIG_VERIFICATION=y -DBUILD_LIST=core,gapi,highgui,imgcodecs,imgproc,videoio,video ..
cmake --build . -j $((`nproc`*2+2))
- name: build_demos.sh
run: |
Expand Down
14 changes: 7 additions & 7 deletions demos/gaze_estimation_demo/cpp_gapi/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
#include <opencv2/gapi/gproto.hpp>
#include <opencv2/gapi/gstreaming.hpp>
#include <opencv2/gapi/infer.hpp>
#include <opencv2/gapi/infer/ie.hpp>
#include <opencv2/gapi/infer/ov.hpp>
#include <opencv2/gapi/streaming/format.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
Expand Down Expand Up @@ -175,7 +175,7 @@ int main(int argc, char* argv[]) {
processed_gaze_vectors));
/** ---------------- End of graph ---------------- **/
/** Configure networks **/
auto face_net = cv::gapi::ie::Params<nets::Faces>{
auto face_net = cv::gapi::ov::Params<nets::Faces>{
FLAGS_m_fd, // path to topology IR
fileNameNoExt(FLAGS_m_fd) + ".bin", // path to weights
FLAGS_d_fd, // device specifier
Expand Down Expand Up @@ -210,11 +210,11 @@ int main(int argc, char* argv[]) {

if (std::fabs(imageAspectRatio - networkAspectRatio) > aspectRatioThreshold) {
inShape[3] = static_cast<unsigned long>(inShape[2] * imageAspectRatio);
face_net.cfgInputReshape(input.get_any_name(), inShape);
face_net.cfgReshape(inShape);
}
}
auto head_net =
cv::gapi::ie::Params<nets::HeadPose>{
cv::gapi::ov::Params<nets::HeadPose>{
FLAGS_m_hp, // path to topology IR
fileNameNoExt(FLAGS_m_hp) + ".bin", // path to weights
FLAGS_d_hp, // device specifier
Expand All @@ -223,7 +223,7 @@ int main(int argc, char* argv[]) {
slog::info << "The Head Pose Estimation model " << FLAGS_m_hp << " is loaded to " << FLAGS_d_hp << " device."
<< slog::endl;

auto landmarks_net = cv::gapi::ie::Params<nets::Landmarks>{
auto landmarks_net = cv::gapi::ov::Params<nets::Landmarks>{
FLAGS_m_lm, // path to topology IR
fileNameNoExt(FLAGS_m_lm) + ".bin", // path to weights
FLAGS_d_lm, // device specifier
Expand All @@ -233,7 +233,7 @@ int main(int argc, char* argv[]) {

// clang-format off
auto gaze_net =
cv::gapi::ie::Params<nets::Gaze>{
cv::gapi::ov::Params<nets::Gaze>{
FLAGS_m, // path to topology IR
fileNameNoExt(FLAGS_m) + ".bin", // path to weights
FLAGS_d, // device specifier
Expand All @@ -242,7 +242,7 @@ int main(int argc, char* argv[]) {
slog::info << "The Gaze Estimation model " << FLAGS_m << " is loaded to " << FLAGS_d << " device."
<< slog::endl;

auto eyes_net = cv::gapi::ie::Params<nets::Eyes>{
auto eyes_net = cv::gapi::ov::Params<nets::Eyes>{
FLAGS_m_es, // path to topology IR
fileNameNoExt(FLAGS_m_es) + ".bin", // path to weights
FLAGS_d_es, // device specifier
Expand Down
7 changes: 5 additions & 2 deletions demos/tests/cases.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,8 +254,7 @@ def single_option_cases(key, *args):
device_keys=['-d', '-d_fd', '-d_hp', '-d_lm', '-d_es'],
test_cases=combine_cases(
TestCase(options={'-no_show': None,
**MONITORS,
'-i': TestDataArg('coco128/images/train2017/')}),
**MONITORS}),
TestCase(options={
'-m': ModelArg('gaze-estimation-adas-0002'),
'-m_hp': ModelArg('head-pose-estimation-adas-0001'),
Expand All @@ -266,6 +265,10 @@ def single_option_cases(key, *args):
'-m_fd',
ModelArg('face-detection-adas-0001'),
ModelArg('face-detection-retail-0004')),
single_option_cases(
'-i',
str('video.mp4'),
DataPatternArg('coco128-every-480x640x3')),
)),

CppDemo(name='gesture_recognition_demo', implementation='cpp_gapi',
Expand Down
8 changes: 7 additions & 1 deletion demos/tests/run_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,14 @@
from cases import Demo
from data_sequences import DATA_SEQUENCES

import requests

scopes = {
'base': importlib.import_module('cases').DEMOS,
'performance': importlib.import_module('performance_cases').DEMOS,
}
COCO128_URL = "https://ultralytics.com/assets/coco128.zip"

VIDEO_URL = "https://storage.openvinotoolkit.org/data/test_data/videos/head-pose-face-detection-male.mp4"

def parser_paths_list(supported_devices):
paths = supported_devices.split(',')
Expand Down Expand Up @@ -247,6 +249,10 @@ def main():
with ZipFile(BytesIO(zipresp.read())) as zfile:
zfile.extractall(args.test_data_dir)

r = requests.get(VIDEO_URL)
with open("video.mp4", 'wb') as f:
f.write(r.content)

with temp_dir_as_path() as global_temp_dir:
if args.models_dir:
dl_dir = args.models_dir
Expand Down

0 comments on commit 8c9bc0d

Please sign in to comment.