From 1314c6aa8900367796302426b936c3717df0c986 Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Sun, 9 Oct 2022 13:31:45 +0500 Subject: [PATCH 01/18] renamed example app name --- .../com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD index 0f513ddb8..5c268744c 100644 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD +++ b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD @@ -75,7 +75,7 @@ cc_library( # Hello World example app. android_binary( - name = "helloworld", + name = "PoseTrackingGpuSolution", # assets = [ # "//mediapipe/graphs/edge_detection:mobile_gpu.binarypb", # ], @@ -83,7 +83,7 @@ android_binary( manifest = "AndroidManifest.xml", manifest_values = { "applicationId": "com.google.mediapipe.apps.posetrackingsolutiongpu", - "appName": "Hello World", + "appName": "PoseTrackingGpuSolution", "mainActivity": ".MainActivity", # "cameraFacingFront": "False", # "binaryGraphName": "mobile_gpu.binarypb", From 535d769fcb2f17d8a969e20867763481e69212d6 Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Sun, 9 Oct 2022 13:32:06 +0500 Subject: [PATCH 02/18] added android toolchain in workspace from ease of use --- WORKSPACE | 208 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 119 insertions(+), 89 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index d3cc40fbe..82d3c12b3 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -10,46 +10,50 @@ bind( http_archive( name = "bazel_skylib", + sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", type = "tar.gz", urls = [ "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz", ], - sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c", ) + load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") + bazel_skylib_workspace() + load("@bazel_skylib//lib:versions.bzl", "versions") + versions.check(minimum_bazel_version = "3.7.2") # ABSL cpp library lts_2021_03_24, patch 2. http_archive( name = "com_google_absl", - urls = [ - "https://github.com/abseil/abseil-cpp/archive/refs/tags/20210324.2.tar.gz", - ], - # Remove after https://github.com/abseil/abseil-cpp/issues/326 is solved. - patches = [ - "@//third_party:com_google_absl_f863b622fe13612433fdf43f76547d5edda0c93001.diff" - ], patch_args = [ "-p1", ], + # Remove after https://github.com/abseil/abseil-cpp/issues/326 is solved. + patches = [ + "@//third_party:com_google_absl_f863b622fe13612433fdf43f76547d5edda0c93001.diff", + ], + sha256 = "59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f", strip_prefix = "abseil-cpp-20210324.2", - sha256 = "59b862f50e710277f8ede96f083a5bb8d7c9595376146838b9580be90374ee1f" + urls = [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20210324.2.tar.gz", + ], ) http_archive( name = "rules_cc", strip_prefix = "rules_cc-2f8c04c04462ab83c545ab14c0da68c3b4c96191", -# The commit can be updated if the build passes. Last updated 6/23/22. + # The commit can be updated if the build passes. Last updated 6/23/22. urls = ["https://github.com/bazelbuild/rules_cc/archive/2f8c04c04462ab83c545ab14c0da68c3b4c96191.zip"], ) http_archive( - name = "rules_foreign_cc", - strip_prefix = "rules_foreign_cc-0.1.0", - url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.1.0.zip", + name = "rules_foreign_cc", + strip_prefix = "rules_foreign_cc-0.1.0", + url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.1.0.zip", ) load("@rules_foreign_cc//:workspace_definitions.bzl", "rules_foreign_cc_dependencies") @@ -63,67 +67,68 @@ all_content = """filegroup(name = "all", srcs = glob(["**"]), visibility = ["//v # Last updated 2021-07-02. http_archive( name = "com_google_googletest", - urls = ["https://github.com/google/googletest/archive/4ec4cd23f486bf70efcc5d2caa40f24368f752e3.zip"], - strip_prefix = "googletest-4ec4cd23f486bf70efcc5d2caa40f24368f752e3", sha256 = "de682ea824bfffba05b4e33b67431c247397d6175962534305136aa06f92e049", + strip_prefix = "googletest-4ec4cd23f486bf70efcc5d2caa40f24368f752e3", + urls = ["https://github.com/google/googletest/archive/4ec4cd23f486bf70efcc5d2caa40f24368f752e3.zip"], ) # Google Benchmark library v1.6.1 released on 2022-01-10. http_archive( name = "com_google_benchmark", - urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.6.1.tar.gz"], - strip_prefix = "benchmark-1.6.1", - sha256 = "6132883bc8c9b0df5375b16ab520fac1a85dc9e4cf5be59480448ece74b278d4", build_file = "@//third_party:benchmark.BUILD", + sha256 = "6132883bc8c9b0df5375b16ab520fac1a85dc9e4cf5be59480448ece74b278d4", + strip_prefix = "benchmark-1.6.1", + urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.6.1.tar.gz"], ) # gflags needed by glog http_archive( name = "com_github_gflags_gflags", - strip_prefix = "gflags-2.2.2", sha256 = "19713a36c9f32b33df59d1c79b4958434cb005b5b47dc5400a7a4b078111d9b5", + strip_prefix = "gflags-2.2.2", url = "https://github.com/gflags/gflags/archive/v2.2.2.zip", ) # 2020-08-21 http_archive( name = "com_github_glog_glog", - strip_prefix = "glog-0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6", sha256 = "58c9b3b6aaa4dd8b836c0fd8f65d0f941441fb95e27212c5eeb9979cfd3592ab", + strip_prefix = "glog-0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6", urls = [ "https://github.com/google/glog/archive/0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6.zip", ], ) + http_archive( name = "com_github_glog_glog_no_gflags", - strip_prefix = "glog-0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6", - sha256 = "58c9b3b6aaa4dd8b836c0fd8f65d0f941441fb95e27212c5eeb9979cfd3592ab", build_file = "@//third_party:glog_no_gflags.BUILD", - urls = [ - "https://github.com/google/glog/archive/0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6.zip", + patch_args = [ + "-p1", ], patches = [ "@//third_party:com_github_glog_glog_9779e5ea6ef59562b030248947f787d1256132ae.diff", ], - patch_args = [ - "-p1", + sha256 = "58c9b3b6aaa4dd8b836c0fd8f65d0f941441fb95e27212c5eeb9979cfd3592ab", + strip_prefix = "glog-0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6", + urls = [ + "https://github.com/google/glog/archive/0a2e5931bd5ff22fd3bf8999eb8ce776f159cda6.zip", ], ) # easyexif http_archive( name = "easyexif", - url = "https://github.com/mayanklahiri/easyexif/archive/master.zip", - strip_prefix = "easyexif-master", build_file = "@//third_party:easyexif.BUILD", + strip_prefix = "easyexif-master", + url = "https://github.com/mayanklahiri/easyexif/archive/master.zip", ) # libyuv http_archive( name = "libyuv", + build_file = "@//third_party:libyuv.BUILD", # Error: operand type mismatch for `vbroadcastss' caused by commit 8a13626e42f7fdcf3a6acbb0316760ee54cda7d8. urls = ["https://chromium.googlesource.com/libyuv/libyuv/+archive/2525698acba9bf9b701ba6b4d9584291a1f62257.tar.gz"], - build_file = "@//third_party:libyuv.BUILD", ) # Note: protobuf-javalite is no longer released as a separate download, it's included in the main Java download. @@ -137,18 +142,19 @@ http_archive( http_archive( name = "com_google_protobuf", - sha256 = "87407cd28e7a9c95d9f61a098a53cf031109d451a7763e7dd1253abf8b4df422", - strip_prefix = "protobuf-3.19.1", - urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.19.1.tar.gz"], - patches = [ - "@//third_party:com_google_protobuf_fixes.diff" - ], patch_args = [ "-p1", ], + patches = [ + "@//third_party:com_google_protobuf_fixes.diff", + ], + sha256 = "87407cd28e7a9c95d9f61a098a53cf031109d451a7763e7dd1253abf8b4df422", + strip_prefix = "protobuf-3.19.1", + urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.19.1.tar.gz"], ) load("//third_party/flatbuffers:workspace.bzl", flatbuffers = "repo") + flatbuffers() http_archive( @@ -160,27 +166,27 @@ http_archive( # sentencepiece http_archive( name = "com_google_sentencepiece", - strip_prefix = "sentencepiece-1.0.0", + repo_mapping = {"@com_google_glog": "@com_github_glog_glog"}, sha256 = "c05901f30a1d0ed64cbcf40eba08e48894e1b0e985777217b7c9036cac631346", + strip_prefix = "sentencepiece-1.0.0", urls = [ "https://github.com/google/sentencepiece/archive/1.0.0.zip", ], - repo_mapping = {"@com_google_glog" : "@com_github_glog_glog"}, ) http_archive( name = "org_tensorflow_text", + patch_args = ["-p1"], + patches = [ + "//third_party:tensorflow_text_remove_tf_deps.diff", + "//third_party:tensorflow_text_a0f49e63.diff", + ], + repo_mapping = {"@com_google_re2": "@com_googlesource_code_re2"}, sha256 = "f64647276f7288d1b1fe4c89581d51404d0ce4ae97f2bcc4c19bd667549adca8", strip_prefix = "text-2.2.0", urls = [ "https://github.com/tensorflow/text/archive/v2.2.0.zip", ], - patches = [ - "//third_party:tensorflow_text_remove_tf_deps.diff", - "//third_party:tensorflow_text_a0f49e63.diff", - ], - patch_args = ["-p1"], - repo_mapping = {"@com_google_re2": "@com_googlesource_code_re2"}, ) http_archive( @@ -195,20 +201,20 @@ http_archive( # 2020-07-09 http_archive( name = "pybind11_bazel", + sha256 = "75922da3a1bdb417d820398eb03d4e9bd067c4905a4246d35a44c01d62154d91", strip_prefix = "pybind11_bazel-203508e14aab7309892a1c5f7dd05debda22d9a5", urls = ["https://github.com/pybind/pybind11_bazel/archive/203508e14aab7309892a1c5f7dd05debda22d9a5.zip"], - sha256 = "75922da3a1bdb417d820398eb03d4e9bd067c4905a4246d35a44c01d62154d91", ) # Point to the commit that deprecates the usage of Eigen::MappedSparseMatrix. http_archive( name = "pybind11", + build_file = "@pybind11_bazel//:pybind11.BUILD", + sha256 = "b971842fab1b5b8f3815a2302331782b7d137fef0e06502422bc4bc360f4956c", + strip_prefix = "pybind11-70a58c577eaf067748c2ec31bfd0b0a614cffba6", urls = [ "https://github.com/pybind/pybind11/archive/70a58c577eaf067748c2ec31bfd0b0a614cffba6.zip", ], - sha256 = "b971842fab1b5b8f3815a2302331782b7d137fef0e06502422bc4bc360f4956c", - strip_prefix = "pybind11-70a58c577eaf067748c2ec31bfd0b0a614cffba6", - build_file = "@pybind11_bazel//:pybind11.BUILD", ) http_archive( @@ -223,15 +229,15 @@ http_archive( # Point to the commit that deprecates the usage of Eigen::MappedSparseMatrix. http_archive( name = "ceres_solver", - url = "https://github.com/ceres-solver/ceres-solver/archive/123fba61cf2611a3c8bddc9d91416db26b10b558.zip", - patches = [ - "@//third_party:ceres_solver_compatibility_fixes.diff" - ], patch_args = [ "-p1", ], + patches = [ + "@//third_party:ceres_solver_compatibility_fixes.diff", + ], + sha256 = "8b7b16ceb363420e0fd499576daf73fa338adb0b1449f58bea7862766baa1ac7", strip_prefix = "ceres-solver-123fba61cf2611a3c8bddc9d91416db26b10b558", - sha256 = "8b7b16ceb363420e0fd499576daf73fa338adb0b1449f58bea7862766baa1ac7" + url = "https://github.com/ceres-solver/ceres-solver/archive/123fba61cf2611a3c8bddc9d91416db26b10b558.zip", ) http_archive( @@ -250,7 +256,7 @@ new_local_repository( new_local_repository( name = "linux_ffmpeg", build_file = "@//third_party:ffmpeg_linux.BUILD", - path = "/usr" + path = "/usr", ) new_local_repository( @@ -288,39 +294,39 @@ http_archive( # '-DBUILD_PROTOBUF=OFF -DBUILD_opencv_dnn=OFF'. http_archive( name = "ios_opencv", - sha256 = "7dd536d06f59e6e1156b546bd581523d8df92ce83440002885ec5abc06558de2", build_file = "@//third_party:opencv_ios.BUILD", + sha256 = "7dd536d06f59e6e1156b546bd581523d8df92ce83440002885ec5abc06558de2", type = "zip", url = "https://github.com/opencv/opencv/releases/download/3.2.0/opencv-3.2.0-ios-framework.zip", ) http_archive( name = "stblib", - strip_prefix = "stb-b42009b3b9d4ca35bc703f5310eedc74f584be58", - sha256 = "13a99ad430e930907f5611325ec384168a958bf7610e63e60e2fd8e7b7379610", - urls = ["https://github.com/nothings/stb/archive/b42009b3b9d4ca35bc703f5310eedc74f584be58.tar.gz"], build_file = "@//third_party:stblib.BUILD", - patches = [ - "@//third_party:stb_image_impl.diff" - ], patch_args = [ "-p1", ], + patches = [ + "@//third_party:stb_image_impl.diff", + ], + sha256 = "13a99ad430e930907f5611325ec384168a958bf7610e63e60e2fd8e7b7379610", + strip_prefix = "stb-b42009b3b9d4ca35bc703f5310eedc74f584be58", + urls = ["https://github.com/nothings/stb/archive/b42009b3b9d4ca35bc703f5310eedc74f584be58.tar.gz"], ) # iOS basic build deps. http_archive( name = "build_bazel_rules_apple", - sha256 = "77e8bf6fda706f420a55874ae6ee4df0c9d95da6c7838228b26910fc82eea5a2", - url = "https://github.com/bazelbuild/rules_apple/releases/download/0.32.0/rules_apple.0.32.0.tar.gz", - patches = [ - # Bypass checking ios unit test runner when building MP ios applications. - "@//third_party:build_bazel_rules_apple_bypass_test_runner_check.diff" - ], patch_args = [ "-p1", ], + patches = [ + # Bypass checking ios unit test runner when building MP ios applications. + "@//third_party:build_bazel_rules_apple_bypass_test_runner_check.diff", + ], + sha256 = "77e8bf6fda706f420a55874ae6ee4df0c9d95da6c7838228b26910fc82eea5a2", + url = "https://github.com/bazelbuild/rules_apple/releases/download/0.32.0/rules_apple.0.32.0.tar.gz", ) load( @@ -341,7 +347,7 @@ http_archive( name = "build_bazel_apple_support", sha256 = "741366f79d900c11e11d8efd6cc6c66a31bfb2451178b58e0b5edc6f1db17b35", urls = [ - "https://github.com/bazelbuild/apple_support/releases/download/0.10.0/apple_support.0.10.0.tar.gz" + "https://github.com/bazelbuild/apple_support/releases/download/0.10.0/apple_support.0.10.0.tar.gz", ], ) @@ -356,21 +362,22 @@ apple_support_dependencies() http_archive( name = "google_toolbox_for_mac", - url = "https://github.com/google/google-toolbox-for-mac/archive/v2.2.1.zip", + build_file = "@//third_party:google_toolbox_for_mac.BUILD", sha256 = "e3ac053813c989a88703556df4dc4466e424e30d32108433ed6beaec76ba4fdc", strip_prefix = "google-toolbox-for-mac-2.2.1", - build_file = "@//third_party:google_toolbox_for_mac.BUILD", + url = "https://github.com/google/google-toolbox-for-mac/archive/v2.2.1.zip", ) # Maven dependencies. RULES_JVM_EXTERNAL_TAG = "4.0" + RULES_JVM_EXTERNAL_SHA = "31701ad93dbfe544d597dbe62c9a1fdd76d81d8a9150c2bf1ecf928ecdf97169" http_archive( name = "rules_jvm_external", - strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, sha256 = RULES_JVM_EXTERNAL_SHA, + strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, ) @@ -409,13 +416,13 @@ maven_install( "junit:junit:4.12", "org.hamcrest:hamcrest-library:1.3", ], + fetch_sources = True, repositories = [ "https://maven.google.com", "https://dl.google.com/dl/android/maven2", "https://repo1.maven.org/maven2", "https://jcenter.bintray.com", ], - fetch_sources = True, version_conflict_policy = "pinned", ) @@ -435,60 +442,83 @@ http_archive( http_archive( name = "zlib", build_file = "//third_party:zlib.BUILD", + patch_args = [ + "-p1", + ], + patches = [ + "@//third_party:zlib.diff", + ], sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", strip_prefix = "zlib-1.2.11", urls = [ "http://mirror.bazel.build/zlib.net/fossils/zlib-1.2.11.tar.gz", "http://zlib.net/fossils/zlib-1.2.11.tar.gz", # 2017-01-15 ], - patches = [ - "@//third_party:zlib.diff", - ], - patch_args = [ - "-p1", - ], ) # TensorFlow repo should always go after the other external dependencies. # TF on 2022-08-10. _TENSORFLOW_GIT_COMMIT = "af1d5bc4fbb66d9e6cc1cf89503014a99233583b" + _TENSORFLOW_SHA256 = "f85a5443264fc58a12d136ca6a30774b5bc25ceaf7d114d97f252351b3c3a2cb" + http_archive( name = "org_tensorflow", - urls = [ - "https://github.com/tensorflow/tensorflow/archive/%s.tar.gz" % _TENSORFLOW_GIT_COMMIT, + patch_args = [ + "-p1", ], patches = [ "@//third_party:org_tensorflow_compatibility_fixes.diff", # Diff is generated with a script, don't update it manually. "@//third_party:org_tensorflow_custom_ops.diff", ], - patch_args = [ - "-p1", - ], - strip_prefix = "tensorflow-%s" % _TENSORFLOW_GIT_COMMIT, sha256 = _TENSORFLOW_SHA256, + strip_prefix = "tensorflow-%s" % _TENSORFLOW_GIT_COMMIT, + urls = [ + "https://github.com/tensorflow/tensorflow/archive/%s.tar.gz" % _TENSORFLOW_GIT_COMMIT, + ], ) load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3") + tf_workspace3() + load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2") + tf_workspace2() # Edge TPU http_archive( - name = "libedgetpu", - sha256 = "14d5527a943a25bc648c28a9961f954f70ba4d79c0a9ca5ae226e1831d72fe80", - strip_prefix = "libedgetpu-3164995622300286ef2bb14d7fdc2792dae045b7", - urls = [ - "https://github.com/google-coral/libedgetpu/archive/3164995622300286ef2bb14d7fdc2792dae045b7.tar.gz" - ], + name = "libedgetpu", + sha256 = "14d5527a943a25bc648c28a9961f954f70ba4d79c0a9ca5ae226e1831d72fe80", + strip_prefix = "libedgetpu-3164995622300286ef2bb14d7fdc2792dae045b7", + urls = [ + "https://github.com/google-coral/libedgetpu/archive/3164995622300286ef2bb14d7fdc2792dae045b7.tar.gz", + ], ) + load("@libedgetpu//:workspace.bzl", "libedgetpu_dependencies") + libedgetpu_dependencies() load("@coral_crosstool//:configure.bzl", "cc_crosstool") + cc_crosstool(name = "crosstool") load("//third_party:external_files.bzl", "external_files") + external_files() + +load("@build_bazel_rules_android//android:rules.bzl", "android_ndk_repository", "android_sdk_repository") + +android_sdk_repository( + name = "androidsdk", + build_tools_version = "30.0.3", + # path = "/Users/tj/Library/Android/sdk", # Path to Android SDK, optional if $ANDROID_HOME is set +) + +android_ndk_repository( + name = "androidndk", # Required. Name *must* be "androidndk". + api_level = 21, + # path = "/Users/tj/Library/Android/sdk/ndk/21.4.7075529", # Optional. Can be omitted if `ANDROID_NDK_HOME` environment variable is set. +) From 6a70aa4a51167820da784da129f65d18682c4926 Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Mon, 10 Oct 2022 08:26:53 +0500 Subject: [PATCH 03/18] removed build tools version constraint --- WORKSPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WORKSPACE b/WORKSPACE index 82d3c12b3..6eef6c63e 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -513,7 +513,7 @@ load("@build_bazel_rules_android//android:rules.bzl", "android_ndk_repository", android_sdk_repository( name = "androidsdk", - build_tools_version = "30.0.3", + # build_tools_version = "30.0.3", # path = "/Users/tj/Library/Android/sdk", # Path to Android SDK, optional if $ANDROID_HOME is set ) From ce1f0d76fd0dea9d718ef1b289dd348aa6e67f1e Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Mon, 10 Oct 2022 20:38:53 +0500 Subject: [PATCH 04/18] added points index --- .../posetracking/PoseTrackingResult.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingResult.java b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingResult.java index 06035e94b..1e173c3b5 100644 --- a/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingResult.java +++ b/mediapipe/java/com/google/mediapipe/solutions/posetracking/PoseTrackingResult.java @@ -24,6 +24,8 @@ import com.google.mediapipe.solutioncore.ImageSolutionResult; import com.google.mediapipe.formats.proto.DetectionProto.Detection; import java.util.List; + + /** * FaceDetectionResult contains the detected faces, and the input {@link Bitmap} or {@link * TextureFrame}. If not in static image mode, the timestamp field will be set to the timestamp of @@ -33,6 +35,41 @@ public class PoseTrackingResult extends ImageSolutionResult { private final ImmutableList multiPoseDetections; private final ImmutableList multiPoseLandmarks; + public static final int NOSE = 0; + public static final int LEFT_EYE_INNER = 1; + public static final int LEFT_EYE = 2; + public static final int LEFT_EYE_OUTER = 3; + public static final int RIGHT_EYE_INNER = 4; + public static final int RIGHT_EYE = 5; + public static final int RIGHT_EYE_OUTER = 6; + public static final int LEFT_EAR = 7; + public static final int RIGHT_EAR = 8; + public static final int MOUTH_LEFT = 9; + public static final int MOUTH_RIGHT = 10; + public static final int LEFT_SHOULDER = 11; + public static final int RIGHT_SHOULDER = 12; + public static final int LEFT_ELBOW = 13; + public static final int RIGH_ELBOW = 14; + public static final int LEFT_WRIST = 15; + public static final int RIGHT_WRIST = 16; + public static final int LEFT_PINKY = 17; + public static final int RIGHT_PINKY = 18; + public static final int LEFT_INDEX = 19; + public static final int RIGHT_INDEX = 20; + public static final int LEFT_THUMB = 21; + public static final int RIGHT_THUMB = 22; + public static final int LEFT_HIP = 23; + public static final int RIGHT_HIP = 24; + public static final int LEFT_KNEE = 25; + public static final int RIGHT_KNEE = 26; + public static final int LEFT_ANKLE = 27; + public static final int RIGHT_ANKLE = 28; + public static final int LEFT_HEEL = 29; + public static final int RIGHT_HEEL = 30; + public static final int LEFT_FOOT = 31; + public static final int RIGHT_FOOT = 32; + + PoseTrackingResult( ImmutableList multiPoseDetections,ImmutableList multiPoseLandmarks, Packet imagePacket, long timestamp) { this.multiPoseDetections = multiPoseDetections; From 9b54cae625f60525476971349d0c462d4b07bbb3 Mon Sep 17 00:00:00 2001 From: Mautisim Munir Date: Tue, 11 Oct 2022 00:23:07 +0500 Subject: [PATCH 05/18] added working posetracking gradle solution --- .gitignore | 3 + .../solutions/posetracking/build.gradle | 57 +++ .../solutions/posetracking/build_aar.sh | 32 ++ .../solutions/posetracking/proguard-rules.pro | 21 ++ .../posetracking/src/main/AndroidManifest.xml | 35 ++ .../solutions/posetracking/src/main/BUILD | 50 +++ .../examples/posetracking}/MainActivity.java | 2 +- .../PoseTrackingResultGlRenderer.java | 2 +- .../solutions/posetracking/src/main/res | 1 + .../android/solutions/settings.gradle | 1 + .../AndroidManifest.xml | 40 -- .../apps/posetrackingsolutiongpu/BUILD | 100 ----- .../drawable-v24/ic_launcher_foreground.xml | 34 -- .../res/drawable/ic_launcher_background.xml | 74 ---- .../res/layout/activity_main.xml | 40 -- .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - .../res/mipmap-hdpi/ic_launcher.png | Bin 1354 -> 0 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 2257 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 3246 -> 0 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 959 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 900 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 1955 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 1971 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 1845 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 4658 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 3562 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 5655 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 7745 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 5004 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 8278 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 11062 -> 0 bytes .../res/values/colors.xml | 6 - .../res/values/strings.xml | 3 - .../res/values/styles.xml | 11 - .../com/google/mediapipe/solutioncore/BUILD | 9 +- .../mediapipe/solutions/posetracking/BUILD | 94 ++++- .../solutions/posetracking/copperlabs_aar.bzl | 347 ++++++++++++++++++ 38 files changed, 632 insertions(+), 340 deletions(-) create mode 100644 mediapipe/examples/android/solutions/posetracking/build.gradle create mode 100644 mediapipe/examples/android/solutions/posetracking/build_aar.sh create mode 100644 mediapipe/examples/android/solutions/posetracking/proguard-rules.pro create mode 100644 mediapipe/examples/android/solutions/posetracking/src/main/AndroidManifest.xml create mode 100644 mediapipe/examples/android/solutions/posetracking/src/main/BUILD rename mediapipe/examples/android/{src/java/com/google/mediapipe/apps/posetrackingsolutiongpu => solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking}/MainActivity.java (99%) rename mediapipe/examples/android/{src/java/com/google/mediapipe/apps/posetrackingsolutiongpu => solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking}/PoseTrackingResultGlRenderer.java (99%) create mode 120000 mediapipe/examples/android/solutions/posetracking/src/main/res delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/AndroidManifest.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable-v24/ic_launcher_foreground.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable/ic_launcher_background.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/layout/activity_main.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-hdpi/ic_launcher.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-mdpi/ic_launcher.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/values/colors.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/values/strings.xml delete mode 100644 mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/values/styles.xml create mode 100644 mediapipe/java/com/google/mediapipe/solutions/posetracking/copperlabs_aar.bzl diff --git a/.gitignore b/.gitignore index b3a881711..44c1bab35 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ mediapipe/MediaPipe.tulsiproj/*.tulsiconf-user mediapipe/provisioning_profile.mobileprovision .configure.bazelrc .user.bazelrc +/mediapipe/examples/android/solutions/posetracking/libs/ +/mediapipe/examples/android/solutions/.idea/ +/mediapipe/examples/android/solutions/ diff --git a/mediapipe/examples/android/solutions/posetracking/build.gradle b/mediapipe/examples/android/solutions/posetracking/build.gradle new file mode 100644 index 000000000..833600189 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/build.gradle @@ -0,0 +1,57 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdkVersion 30 + buildToolsVersion "30.0.3" + + defaultConfig { + applicationId "com.google.mediapipe.apps.posetracking" + minSdkVersion 21 + targetSdkVersion 30 + versionCode 1 + versionName "1.0" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + // Copper Labs AAR Files + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) + + // App Dependencies + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'com.google.android.material:material:1.3.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.exifinterface:exifinterface:1.3.3' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + + // Mediapipe dependencies + implementation 'com.google.protobuf:protobuf-javalite:3.19.1' + implementation 'com.google.flogger:flogger:latest.release' + implementation 'com.google.flogger:flogger-system-backend:latest.release' + implementation 'com.google.code.findbugs:jsr305:latest.release' + implementation 'com.google.guava:guava:27.0.1-android' + + // CameraX core library + def camerax_version = "1.0.0-beta10" + implementation "androidx.camera:camera-core:$camerax_version" + implementation "androidx.camera:camera-camera2:$camerax_version" + implementation "androidx.camera:camera-lifecycle:$camerax_version" + // We cannot use official solution as it is missing dependencies for pose tracking. +// implementation 'com.google.mediapipe:solution-core:latest.release' + +} diff --git a/mediapipe/examples/android/solutions/posetracking/build_aar.sh b/mediapipe/examples/android/solutions/posetracking/build_aar.sh new file mode 100644 index 000000000..2d739c394 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/build_aar.sh @@ -0,0 +1,32 @@ +POSE_TRACKING_OUTPUT_DIR=bazel-bin/mediapipe/java/com/google/mediapipe/solutions/posetracking +GRADLE_LIBS_DIR=mediapipe/examples/android/solutions/posetracking/libs +# +bazel build -c opt --strip=ALWAYS\ + --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \ + --fat_apk_cpu=arm64-v8a,armeabi-v7a \ + --legacy_whole_archive=0 \ + --features=-legacy_whole_archive \ + --copt=-fvisibility=hidden \ + --copt=-ffunction-sections \ + --copt=-fdata-sections \ + --copt=-fstack-protector \ + --copt=-Oz \ + --copt=-fomit-frame-pointer \ + --copt=-DABSL_MIN_LOG_LEVEL=2 \ + --linkopt=-Wl,--gc-sections,--strip-all \ + //mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-api.aar \ + //mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-landmark.aar \ + //mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-detection.aar \ + //mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-graph.aar \ + //mediapipe/java/com/google/mediapipe/solutioncore:copperlabs-mediapipe + + +mkdir $GRADLE_LIBS_DIR +rm -f $GRADLE_LIBS_DIR/copperlabs-*.aar + +\cp $POSE_TRACKING_OUTPUT_DIR/copperlabs-pose-api.aar $GRADLE_LIBS_DIR +\cp $POSE_TRACKING_OUTPUT_DIR/copperlabs-pose-detection.aar $GRADLE_LIBS_DIR +\cp $POSE_TRACKING_OUTPUT_DIR/copperlabs-pose-graph.aar $GRADLE_LIBS_DIR +\cp $POSE_TRACKING_OUTPUT_DIR/copperlabs-pose-landmark.aar $GRADLE_LIBS_DIR +\cp bazel-bin/mediapipe/java/com/google/mediapipe/solutioncore/copperlabs-mediapipe.aar $GRADLE_LIBS_DIR + diff --git a/mediapipe/examples/android/solutions/posetracking/proguard-rules.pro b/mediapipe/examples/android/solutions/posetracking/proguard-rules.pro new file mode 100644 index 000000000..f1b424510 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/mediapipe/examples/android/solutions/posetracking/src/main/AndroidManifest.xml b/mediapipe/examples/android/solutions/posetracking/src/main/AndroidManifest.xml new file mode 100644 index 000000000..3db9d8bd0 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mediapipe/examples/android/solutions/posetracking/src/main/BUILD b/mediapipe/examples/android/solutions/posetracking/src/main/BUILD new file mode 100644 index 000000000..c98a04939 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/src/main/BUILD @@ -0,0 +1,50 @@ +# Copyright 2021 The MediaPipe Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +licenses(["notice"]) + +package(default_visibility = ["//visibility:private"]) + +android_binary( + name = "posetracking", + srcs = glob(["**/*.java"]), + custom_package = "com.google.mediapipe.examples.posetracking", + manifest = "AndroidManifest.xml", + manifest_values = { + "applicationId": "com.google.mediapipe.examples.posetracking", + }, + multidex = "native", + resource_files = ["//mediapipe/examples/android/solutions:resource_files"], + deps = [ + "//mediapipe/framework/formats:detection_java_proto_lite", + "//mediapipe/framework/formats:landmark_java_proto_lite", + "//mediapipe/framework/formats:location_data_java_proto_lite", + "//mediapipe/java/com/google/mediapipe/solutioncore:camera_input", + "//mediapipe/java/com/google/mediapipe/solutioncore:mediapipe_jni_lib", + "//mediapipe/java/com/google/mediapipe/solutioncore:solution_rendering", + "//mediapipe/java/com/google/mediapipe/solutioncore:video_input", + "//mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-api", + "//mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-detection", + "//mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-graph", + "//mediapipe/java/com/google/mediapipe/solutions/posetracking:copperlabs-pose-landmark", + "//third_party:androidx_appcompat", + "//third_party:androidx_constraint_layout", + "//third_party:opencv", + "@maven//:androidx_activity_activity", + "@maven//:androidx_concurrent_concurrent_futures", + "@maven//:androidx_exifinterface_exifinterface", + "@maven//:androidx_fragment_fragment", + "@maven//:com_google_guava_guava", + ], +) diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java b/mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/MainActivity.java similarity index 99% rename from mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java rename to mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/MainActivity.java index 1612c9f21..5782ea869 100644 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/MainActivity.java +++ b/mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/MainActivity.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.mediapipe.apps.posetrackingsolutiongpu; +package com.google.mediapipe.examples.posetracking;; import android.content.Intent; import android.graphics.Bitmap; diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/PoseTrackingResultGlRenderer.java b/mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/PoseTrackingResultGlRenderer.java similarity index 99% rename from mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/PoseTrackingResultGlRenderer.java rename to mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/PoseTrackingResultGlRenderer.java index 9c8b7d57f..66832466b 100644 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/PoseTrackingResultGlRenderer.java +++ b/mediapipe/examples/android/solutions/posetracking/src/main/java/com/google/mediapipe/examples/posetracking/PoseTrackingResultGlRenderer.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.mediapipe.apps.posetrackingsolutiongpu; +package com.google.mediapipe.examples.posetracking;; import android.opengl.GLES20; diff --git a/mediapipe/examples/android/solutions/posetracking/src/main/res b/mediapipe/examples/android/solutions/posetracking/src/main/res new file mode 120000 index 000000000..fc8850136 --- /dev/null +++ b/mediapipe/examples/android/solutions/posetracking/src/main/res @@ -0,0 +1 @@ +../../../res \ No newline at end of file diff --git a/mediapipe/examples/android/solutions/settings.gradle b/mediapipe/examples/android/solutions/settings.gradle index c050ba4bf..5bcd8da13 100644 --- a/mediapipe/examples/android/solutions/settings.gradle +++ b/mediapipe/examples/android/solutions/settings.gradle @@ -1,4 +1,5 @@ rootProject.name = "mediapipe-solutions-examples" include ':facedetection' include ':facemesh' +include ':posetracking' include ':hands' diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/AndroidManifest.xml b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/AndroidManifest.xml deleted file mode 100644 index b61304f0d..000000000 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/AndroidManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD deleted file mode 100644 index 5c268744c..000000000 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/BUILD +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright 2019 The MediaPipe Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -licenses(["notice"]) - -# Basic library common across example apps. -android_library( - name = "basic_lib", - srcs = glob(["*.java"]), - manifest = "AndroidManifest.xml", - resource_files = glob(["res/**"]), - visibility = ["//visibility:public"], - deps = [ - "//mediapipe/framework/formats:landmark_java_proto_lite", - "//mediapipe/framework/formats:detection_java_proto_lite", - "//mediapipe/framework/formats:location_data_java_proto_lite", - "//mediapipe/java/com/google/mediapipe/components:android_camerax_helper", - "//mediapipe/java/com/google/mediapipe/components:android_components", - "//mediapipe/java/com/google/mediapipe/framework:android_framework", - "//mediapipe/java/com/google/mediapipe/glutil", - "//mediapipe/java/com/google/mediapipe/solutioncore:camera_input", - "//mediapipe/java/com/google/mediapipe/solutioncore:solution_rendering", - "//mediapipe/java/com/google/mediapipe/solutioncore:video_input", - # "//mediapipe/java/com/google/mediapipe/solutions/facedetection", - "//mediapipe/java/com/google/mediapipe/solutions/posetracking", - "//third_party:androidx_appcompat", - "//third_party:androidx_constraint_layout", - "//third_party:opencv", - "@maven//:androidx_activity_activity", - "@maven//:androidx_concurrent_concurrent_futures", - "@maven//:androidx_exifinterface_exifinterface", - "@maven//:androidx_fragment_fragment", - "@maven//:com_google_guava_guava", - ], -) - -# Manifest common across example apps. -exports_files( - srcs = ["AndroidManifest.xml"], -) - -# Native dependencies to perform edge detection in the Hello World example. -cc_binary( - name = "libmediapipe_jni.so", - linkshared = 1, - linkstatic = 1, - deps = [ - # "//mediapipe/graphs/edge_detection:mobile_calculators", - "//mediapipe/java/com/google/mediapipe/framework/jni:mediapipe_framework_jni", - #facedetection deps - # "//mediapipe/graphs/face_detection:face_detection_full_range_mobile_gpu_deps", - # "//mediapipe/graphs/face_detection:mobile_calculators", - #pose tracking deps - "//mediapipe/graphs/pose_tracking:pose_tracking_gpu_deps", - ], -) - -# Converts the .so cc_binary into a cc_library, to be consumed in an android_binary. -cc_library( - name = "mediapipe_jni_lib", - srcs = [":libmediapipe_jni.so"], - alwayslink = 1, -) - -# Hello World example app. -android_binary( - name = "PoseTrackingGpuSolution", - # assets = [ - # "//mediapipe/graphs/edge_detection:mobile_gpu.binarypb", - # ], - # assets_dir = "", - manifest = "AndroidManifest.xml", - manifest_values = { - "applicationId": "com.google.mediapipe.apps.posetrackingsolutiongpu", - "appName": "PoseTrackingGpuSolution", - "mainActivity": ".MainActivity", - # "cameraFacingFront": "False", - # "binaryGraphName": "mobile_gpu.binarypb", - # "inputVideoStreamName": "input_video", - # "outputVideoStreamName": "output_video", - # "flipFramesVertically": "True", - # "converterNumBuffers": "2", - }, - multidex = "native", - deps = [ - ":basic_lib", - ":mediapipe_jni_lib", - ], -) diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable-v24/ic_launcher_foreground.xml b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21dbd..000000000 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable/ic_launcher_background.xml b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 01f0af0ad..000000000 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/layout/activity_main.xml b/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/layout/activity_main.xml deleted file mode 100644 index 8c7278475..000000000 --- a/mediapipe/examples/android/src/java/com/google/mediapipe/apps/posetrackingsolutiongpu/res/layout/activity_main.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - -