diff --git a/WORKSPACE b/WORKSPACE index a9824996c..5974db32a 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -421,9 +421,9 @@ libedgetpu_dependencies() load("@coral_crosstool//:configure.bzl", "cc_crosstool") cc_crosstool(name = "crosstool") -# android_sdk_repository(name = "androidsdk", path = "/Users/wangrenzhu/Library/Android/sdk") +android_sdk_repository(name = "androidsdk", path = "/Users/wangrenzhu/Library/Android/sdk") # android_ndk_repository(name = "androidndk", api_level=21, path = "/Users/wangrenzhu/Library/Android/sdk/ndk/21.2.6472646") # android_sdk_repository(name = "androidsdk", path = "/Users/wangrenzhu/Android/sdk") # android_ndk_repository(name = "androidndk", api_level=21, path = "/Users/wangrenzhu/Android/sdk/ndk/android-ndk-r21") -android_sdk_repository(name = "androidsdk") -android_ndk_repository(name = "androidndk", api_level=22) +# android_sdk_repository(name = "androidsdk") +# android_ndk_repository(name = "androidndk", api_level=22) diff --git a/mediapipe/graphs/beauty_graph/BUILD b/mediapipe/graphs/beauty_graph/BUILD new file mode 100644 index 000000000..6e2b3ccf4 --- /dev/null +++ b/mediapipe/graphs/beauty_graph/BUILD @@ -0,0 +1,42 @@ +load( + "//mediapipe/framework/tool:mediapipe_graph.bzl", + "mediapipe_binary_graph", +) + +licenses(["notice"]) + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "mobile_calculators", + deps = [ + "//mediapipe/calculators/core:flow_limiter_calculator", + "//mediapipe/graphs/face_mesh/subgraphs:face_renderer_gpu", + "//mediapipe/modules/face_landmark:face_landmark_front_gpu", + "//mediapipe/calculators/image:recolor_calculator", + "//mediapipe/modules/selfie_segmentation:selfie_segmentation_gpu", + ], +) + +mediapipe_binary_graph( + name = "beauty_graph", + graph = "beauty_graph.pbtxt", + output_name = "beauty_graph.binarypb", + deps = [":mobile_calculators"], +) + + +# cc_library( +# name = "selfie_segmentation_gpu_deps", +# deps = [ +# "//mediapipe/calculators/core:flow_limiter_calculator", + +# ], +# ) + +# mediapipe_binary_graph( +# name = "selfie_segmentation_gpu_binary_graph", +# graph = "selfie_segmentation_gpu.pbtxt", +# output_name = "selfie_segmentation_gpu.binarypb", +# deps = [":selfie_segmentation_gpu_deps"], +# ) \ No newline at end of file diff --git a/mediapipe/graphs/beauty_graph/beauty_graph.pbtxt b/mediapipe/graphs/beauty_graph/beauty_graph.pbtxt new file mode 100644 index 000000000..5c85922c7 --- /dev/null +++ b/mediapipe/graphs/beauty_graph/beauty_graph.pbtxt @@ -0,0 +1,83 @@ +# MediaPipe graph that performs face mesh with TensorFlow Lite on GPU. +max_queue_size: 1 +# GPU buffer. (GpuBuffer) +input_stream: "input_video" + +# Max number of faces to detect/process. (int) +input_side_packet: "num_faces" + +# Output image with rendered results. (GpuBuffer) +output_stream: "output_video" +# Collection of detected/processed faces, each represented as a list of +# landmarks. (std::vector) +output_stream: "multi_face_landmarks" + +# output_stream: "face_detections" + +# Throttles the images flowing downstream for flow control. It passes through +# the very first incoming image unaltered, and waits for downstream nodes +# (calculators and subgraphs) in the graph to finish their tasks before it +# passes through another image. All images that come in while waiting are +# dropped, limiting the number of in-flight images in most part of the graph to +# 1. This prevents the downstream nodes from queuing up incoming images and data +# excessively, which leads to increased latency and memory usage, unwanted in +# real-time mobile applications. It also eliminates unnecessarily computation, +# e.g., the output produced by a node may get dropped downstream if the +# subsequent nodes are still busy processing previous inputs. +node { + calculator: "FlowLimiterCalculator" + input_stream: "input_video" + input_stream: "FINISHED:output_video" + input_stream_info: { + tag_index: "FINISHED" + back_edge: true + } + output_stream: "throttled_input_video" +} + +# Defines side packets for further use in the graph. +node { + calculator: "ConstantSidePacketCalculator" + output_side_packet: "PACKET:with_attention" + node_options: { + [type.googleapis.com/mediapipe.ConstantSidePacketCalculatorOptions]: { + packet { bool_value: true } + } + } +} + +# Subgraph that detects faces and corresponding landmarks. +node { + calculator: "FaceLandmarkFrontGpu" + input_stream: "IMAGE:throttled_input_video" + input_side_packet: "NUM_FACES:num_faces" + input_side_packet: "WITH_ATTENTION:with_attention" + output_stream: "LANDMARKS:multi_face_landmarks" + output_stream: "ROIS_FROM_LANDMARKS:face_rects_from_landmarks" + output_stream: "DETECTIONS:face_detections" + output_stream: "ROIS_FROM_DETECTIONS:face_rects_from_detections" +} + +# Subgraph that performs selfie segmentation. +node { + calculator: "SelfieSegmentationGpu" + input_stream: "IMAGE:throttled_input_video" + output_stream: "SEGMENTATION_MASK:segmentation_mask" +} + + +# Colors the selfie segmentation with the color specified in the option. +node { + calculator: "RecolorCalculator" + input_stream: "IMAGE_GPU:throttled_input_video" + input_stream: "MASK_GPU:segmentation_mask" + output_stream: "IMAGE_GPU:output_video" + node_options: { + [type.googleapis.com/mediapipe.RecolorCalculatorOptions] { + color { r: 0 g: 0 b: 255 } + mask_channel: RED + invert_mask: true + adjust_with_luminance: false + } + } +} diff --git a/mediapipe/graphs/face_mesh/face_mesh_mobile.pbtxt b/mediapipe/graphs/face_mesh/face_mesh_mobile.pbtxt index c50d377d1..373d6b89f 100644 --- a/mediapipe/graphs/face_mesh/face_mesh_mobile.pbtxt +++ b/mediapipe/graphs/face_mesh/face_mesh_mobile.pbtxt @@ -1,5 +1,6 @@ # MediaPipe graph that performs face mesh with TensorFlow Lite on GPU. max_queue_size: 2 +num_threads: 2 # GPU buffer. (GpuBuffer) input_stream: "input_video" @@ -59,21 +60,21 @@ node { } # Subgraph that renders face-landmark annotation onto the input image. //画标记 用于调试 -# node { -# calculator: "FaceRendererGpu" -# input_stream: "IMAGE:throttled_input_video" -# input_stream: "LANDMARKS:multi_face_landmarks" -# input_stream: "NORM_RECTS:face_rects_from_landmarks" -# input_stream: "DETECTIONS:face_detections" -# output_stream: "IMAGE:output_video" -# } +node { + calculator: "FaceRendererGpu" + input_stream: "IMAGE:throttled_input_video" + input_stream: "LANDMARKS:multi_face_landmarks" + input_stream: "NORM_RECTS:face_rects_from_landmarks" + input_stream: "DETECTIONS:face_detections" + output_stream: "IMAGE:output_video" +} # Draws annotations and overlays them on top of the input images. -node { - calculator: "AnnotationOverlayCalculator" - input_stream: "IMAGE_GPU:throttled_input_video" - # input_stream: "detections_render_data" - # input_stream: "VECTOR:0:multi_face_landmarks_render_data" - # input_stream: "rects_render_data" - output_stream: "IMAGE_GPU:output_video" -} +# node { +# calculator: "AnnotationOverlayCalculator" +# input_stream: "IMAGE_GPU:throttled_input_video" +# # input_stream: "detections_render_data" +# # input_stream: "VECTOR:0:multi_face_landmarks_render_data" +# # input_stream: "rects_render_data" +# output_stream: "IMAGE_GPU:output_video" +# } diff --git a/mediapipe/render/core/OlaCameraSource.cpp b/mediapipe/render/core/OlaCameraSource.cpp index 8d8d0236b..e9984f3e7 100644 --- a/mediapipe/render/core/OlaCameraSource.cpp +++ b/mediapipe/render/core/OlaCameraSource.cpp @@ -29,7 +29,12 @@ OlaCameraSource::OlaCameraSource(Context *context, SourceType sourceType) : Sour break; } if (_yuvTexture) { + _scaleTexture = OlaShareTextureFilter::create(context); + _scaleTexture->setFramebufferScale(0.5); addTarget(_yuvTexture); + _yuvTexture->addTarget(_scaleTexture); + } else { + addTarget(_scaleTexture); } } @@ -41,6 +46,11 @@ OlaCameraSource::~OlaCameraSource() _yuvTexture->release(); _yuvTexture = nullptr; } + + if (_scaleTexture) { + _scaleTexture->release(); + _scaleTexture = nullptr; + } } void OlaCameraSource::setFrameData(int width, @@ -177,7 +187,13 @@ void OlaCameraSource::_bindIOSurfaceToTexture(int iosurface, RotationMode output } } - +Framebuffer* OlaCameraSource::getScaleFramebuffer() { + if (_scaleTexture && _scaleTexture->getFramebuffer()) { + return _scaleTexture->getFramebuffer(); + } else { + return nullptr; + } +} #endif } diff --git a/mediapipe/render/core/OlaCameraSource.hpp b/mediapipe/render/core/OlaCameraSource.hpp index b7865aea2..95d59b1d9 100644 --- a/mediapipe/render/core/OlaCameraSource.hpp +++ b/mediapipe/render/core/OlaCameraSource.hpp @@ -5,6 +5,7 @@ #include "OlaYUVTexture.hpp" #include "OlaYUVTexture420P.hpp" #include "Framebuffer.hpp" +#include "OlaShareTextureFilter.hpp" #if defined(__APPLE__) #import @@ -31,6 +32,7 @@ namespace Opipe { private: Filter *_yuvTexture = nullptr; + OlaShareTextureFilter *_scaleTexture = nullptr; SourceType _sourceType; int _lastIOSurface = -1; #if defined(__APPLE__) diff --git a/mediapipe/render/core/OpipeDispatch.cpp b/mediapipe/render/core/OpipeDispatch.cpp index e0dc9c14a..deebf238b 100644 --- a/mediapipe/render/core/OpipeDispatch.cpp +++ b/mediapipe/render/core/OpipeDispatch.cpp @@ -18,7 +18,7 @@ namespace Opipe { OpipeDispatch::OpipeDispatch(Opipe::Context *context, void *id, Opipe::GLThreadDispatch *glDispatch) : _context(context) { _id = id; - _contextQueueIO = new dispatch_queue("quaramera_io"); + _contextQueueIO = new dispatch_queue("com.ola.ioContextQueue"); _contextQueueIO->dispatch_sync([&] { _context->useAsCurrent(Opipe::Context::IOContext, true); }); @@ -30,7 +30,7 @@ namespace Opipe { }); #endif - _contextQueueOffline = new dispatch_queue("quaramera_offline"); + _contextQueueOffline = new dispatch_queue("com.ola.offscreenQueue"); _contextQueueOffline->dispatch_sync([&] { _context->useAsCurrent(Opipe::Context::OfflineRenderContext, true); }); diff --git a/mediapipe/render/module/beauty/face_mesh_module_imp.cc b/mediapipe/render/module/beauty/face_mesh_module_imp.cc index 0ffa4c4b6..2edb34417 100644 --- a/mediapipe/render/module/beauty/face_mesh_module_imp.cc +++ b/mediapipe/render/module/beauty/face_mesh_module_imp.cc @@ -140,7 +140,6 @@ namespace Opipe bool FaceMeshModuleIMP::init(void *env, void *binaryData, int size) { - std::string graphName = "face_mesh_mobile_gpu"; _delegate = std::make_shared(); _delegate->attach(this); mediapipe::CalculatorGraphConfig config; @@ -244,7 +243,17 @@ namespace Opipe ts); CVPixelBufferUnlockBaseAddress(pixelbuffer, 0); #endif - + _dispatch->runSync([&] { + std::vector facePoints; + if (_lastLandmark.landmark_size() > 0) { + Log("FaceMeshModule", "检测到人脸输出"); + for (int i = 0; i < _lastLandmark.landmark_size(); i++) { + facePoints.emplace_back( _lastLandmark.landmark(i).x(), _lastLandmark.landmark(i).y()); + } + Log("FaceMeshModule", "检测到人脸输完毕"); + } + _render->setFacePoints(facePoints); + }, Context::IOContext); } #endif @@ -284,15 +293,7 @@ namespace Opipe }); textureInfo = _render->outputRenderTexture(inputTexture); - std::vector facePoints; - if (_lastLandmark.landmark_size() > 0) { - Log("FaceMeshModule", "检测到人脸输出"); - for (int i = 0; i < _lastLandmark.landmark_size(); i++) { - facePoints.emplace_back( _lastLandmark.landmark(i).x(), _lastLandmark.landmark(i).y()); - } - Log("FaceMeshModule", "检测到人脸输完毕"); - } - _render->setFacePoints(facePoints); + return textureInfo; } diff --git a/mediapipe/render/module/beauty/filters/FaceDistortionFilter.cpp b/mediapipe/render/module/beauty/filters/FaceDistortionFilter.cpp index b943ef4ba..bc4fec520 100644 --- a/mediapipe/render/module/beauty/filters/FaceDistortionFilter.cpp +++ b/mediapipe/render/module/beauty/filters/FaceDistortionFilter.cpp @@ -289,6 +289,32 @@ namespace Opipe 0.0f, 0.02); } + + //瘦左鼻子 + { + Vector2 point1 = _positionAt(219); + Vector2 point2 = _positionAt(4); + Vector2 point3 = _positionAt(131); + Vector2 point4 = _positionAt(60); + + float angle = getRadius(point2, point1); + addPoint(point1, point1.distance(point3), point1.distance(point4), 0.02, 3, angle, + 0.0f, + 0.02); + } + + //瘦右鼻子鼻子 + { + Vector2 point1 = _positionAt(294); + Vector2 point2 = _positionAt(4); + Vector2 point3 = _positionAt(429); + Vector2 point4 = _positionAt(290); + + float angle = getRadius(point2, point1); + addPoint(point1, point1.distance(point3), point1.distance(point4), 0.02, 3, angle, + 0.0f, + 0.02); + } _filterProgram->setUniformValue("count", _count); _filterProgram->setUniformValue("center", _count, _center, 2); diff --git a/mediapipe/render/module/beauty/ios/example/OpipeBeautyModuleExample/OpipeBeautyModuleExample/GLRenderViewController.m b/mediapipe/render/module/beauty/ios/example/OpipeBeautyModuleExample/OpipeBeautyModuleExample/GLRenderViewController.m index 1e719fb44..de29f5565 100644 --- a/mediapipe/render/module/beauty/ios/example/OpipeBeautyModuleExample/OpipeBeautyModuleExample/GLRenderViewController.m +++ b/mediapipe/render/module/beauty/ios/example/OpipeBeautyModuleExample/OpipeBeautyModuleExample/GLRenderViewController.m @@ -7,6 +7,7 @@ #import "GLRenderViewController.h" #import +static int glfps = 30; @interface GLRenderViewController () CMVideoDimensions dimensions = CMVideoFormatDescriptionGetDimensions(description); FourCharCode formatType = CMFormatDescriptionGetMediaSubType(description); - if(maxrate == 30 && formatType == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange && + if(maxrate == glfps && formatType == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange && dimensions.width ==[[outputSettings objectForKey:@"Width"] intValue] && dimensions.height ==[[outputSettings objectForKey:@"Height"] intValue]) { if (YES == [self.captureDevice lockForConfiguration:NULL] ) { self.captureDevice.activeFormat = vFormat; - [self.captureDevice setActiveVideoMinFrameDuration:CMTimeMake(1,30)]; - [self.captureDevice setActiveVideoMaxFrameDuration:CMTimeMake(1,30)]; + [self.captureDevice setActiveVideoMinFrameDuration:CMTimeMake(1,glfps)]; + [self.captureDevice setActiveVideoMaxFrameDuration:CMTimeMake(1,glfps)]; [self.captureDevice unlockForConfiguration]; } } diff --git a/mediapipe/render/module/beauty/ios/framework/BUILD b/mediapipe/render/module/beauty/ios/framework/BUILD index c0b781fc6..e58a6c4ba 100644 --- a/mediapipe/render/module/beauty/ios/framework/BUILD +++ b/mediapipe/render/module/beauty/ios/framework/BUILD @@ -37,8 +37,9 @@ objc_library( "@ios_opencv//:OpencvFramework", ], data = [ - # "//mediapipe/graphs/face_mesh:face_mesh_mobile_gpu.binarypb", - "//mediapipe/graphs/face_mesh:face_mesh_mobile_landmark_gpu.binarypb", +# "//mediapipe/graphs/beauty_graph:beauty_graph.binarypb", + "//mediapipe/graphs/face_mesh:face_mesh_mobile_gpu.binarypb", +# "//mediapipe/graphs/face_mesh:face_mesh_mobile_landmark_gpu.binarypb", "//mediapipe/modules/face_detection:face_detection_short_range.tflite", "//mediapipe/modules/face_landmark:face_landmark_with_attention.tflite", "//mediapipe/render/module/beauty:whiten.png", diff --git a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/project.pbxproj b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/project.pbxproj index db686f6f0..49b34ecf5 100644 --- a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/project.pbxproj +++ b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/project.pbxproj @@ -1288,12 +1288,12 @@ ); dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, - 2811397A2F164B6300000000 /* PBXTargetDependency */, - 2811397A2F164B6300000000 /* PBXTargetDependency */, 2811397AE39F886700000000 /* PBXTargetDependency */, + 2811397A2F164B6300000000 /* PBXTargetDependency */, 2811397AF15E172100000000 /* PBXTargetDependency */, - 2811397AE39F886700000000 /* PBXTargetDependency */, 2811397A2F164B6300000000 /* PBXTargetDependency */, + 2811397A2F164B6300000000 /* PBXTargetDependency */, + 2811397AE39F886700000000 /* PBXTargetDependency */, ); name = _idx_cpu_op_resolver_0FB1B7D6_ios_min11.0; productName = _idx_cpu_op_resolver_0FB1B7D6_ios_min11.0; @@ -1344,10 +1344,10 @@ 2811397AE51A0D9D00000000 /* PBXTargetDependency */, 2811397AC4A1069D00000000 /* PBXTargetDependency */, 2811397A36B3CE1700000000 /* PBXTargetDependency */, + 2811397AC4A1069D00000000 /* PBXTargetDependency */, + 2811397AC4A1069D00000000 /* PBXTargetDependency */, 2811397A36B3CE1700000000 /* PBXTargetDependency */, 2811397A40B23BB500000000 /* PBXTargetDependency */, - 2811397AC4A1069D00000000 /* PBXTargetDependency */, - 2811397AC4A1069D00000000 /* PBXTargetDependency */, ); name = _idx_cpu_op_resolver_0FB1B7D6_ios_min15.5; productName = _idx_cpu_op_resolver_0FB1B7D6_ios_min15.5; @@ -1408,7 +1408,7 @@ isa = PBXNativeTarget; buildConfigurationList = 58316E17E93848CA00000000 /* Build configuration list for PBXNativeTarget "_idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0" */; buildPhases = ( - D51719AF000000000000001B /* Sources */, + D51719AF000000000000001C /* Sources */, ); buildRules = ( ); @@ -1580,9 +1580,9 @@ dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, 2811397A2543EE8700000000 /* PBXTargetDependency */, - 2811397A2543EE8700000000 /* PBXTargetDependency */, 2811397A83F4347500000000 /* PBXTargetDependency */, 2811397AAC3AEC4700000000 /* PBXTargetDependency */, + 2811397A2543EE8700000000 /* PBXTargetDependency */, ); name = "_idx_core_core-ios_F9E9FB32_ios_min11.0"; productName = "_idx_core_core-ios_F9E9FB32_ios_min11.0"; @@ -1631,9 +1631,9 @@ ); dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, - 2811397ADA50AA6900000000 /* PBXTargetDependency */, - 2811397A6444CACD00000000 /* PBXTargetDependency */, 2811397AF3A1AA7100000000 /* PBXTargetDependency */, + 2811397A6444CACD00000000 /* PBXTargetDependency */, + 2811397ADA50AA6900000000 /* PBXTargetDependency */, ); name = _idx_OlaFaceUnityLibrary_FaceMeshGPULibrary_2828BEF2_ios_min15.5; productName = _idx_OlaFaceUnityLibrary_FaceMeshGPULibrary_2828BEF2_ios_min15.5; @@ -1666,8 +1666,8 @@ ); dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, - 2811397A91016CBF00000000 /* PBXTargetDependency */, 2811397AAD83C52B00000000 /* PBXTargetDependency */, + 2811397A91016CBF00000000 /* PBXTargetDependency */, ); name = _idx_to_image_calculator_association_norm_rect_calculator_collection_has_min_size_calculator_constant_side_packet_calculator_detections_to_rects_calculator_detections_to_render_data_etc_7D53CB1B_ios_min15.5; productName = _idx_to_image_calculator_association_norm_rect_calculator_collection_has_min_size_calculator_constant_side_packet_calculator_detections_to_rects_calculator_detections_to_render_data_etc_7D53CB1B_ios_min15.5; @@ -1685,9 +1685,9 @@ dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, 2811397A71D64AF700000000 /* PBXTargetDependency */, - 2811397A71D64AF700000000 /* PBXTargetDependency */, 2811397ADC6BB92900000000 /* PBXTargetDependency */, 2811397AA30404F300000000 /* PBXTargetDependency */, + 2811397A71D64AF700000000 /* PBXTargetDependency */, ); name = "_idx_core_core-ios_F9E9FB32_ios_min15.5"; productName = "_idx_core_core-ios_F9E9FB32_ios_min15.5"; @@ -1720,8 +1720,8 @@ ); dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, - 2811397A4521587B00000000 /* PBXTargetDependency */, 2811397A4E78DF7F00000000 /* PBXTargetDependency */, + 2811397A4521587B00000000 /* PBXTargetDependency */, 2811397A2D59C41300000000 /* PBXTargetDependency */, ); name = _idx_OlaFaceUnityLibrary_FaceMeshGPULibrary_2828BEF2_ios_min11.0; @@ -1885,8 +1885,8 @@ ); dependencies = ( 2811397AE51A0D9D00000000 /* PBXTargetDependency */, - 2811397ADF58A07300000000 /* PBXTargetDependency */, 2811397A83F46D1900000000 /* PBXTargetDependency */, + 2811397ADF58A07300000000 /* PBXTargetDependency */, ); name = _idx_mediapipe_framework_ios_4D298135_ios_min15.5; productName = _idx_mediapipe_framework_ios_4D298135_ios_min15.5; @@ -2074,7 +2074,7 @@ isa = PBXNativeTarget; buildConfigurationList = 58316E176FB16FD200000000 /* Build configuration list for PBXNativeTarget "_idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0" */; buildPhases = ( - D51719AF000000000000001C /* Sources */, + D51719AF000000000000001B /* Sources */, ); buildRules = ( ); @@ -2683,9 +2683,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - AE561F62FAF3CE2D00000000 /* transform_tensor_bilinear.cc in operations */, - AE561F621305049200000000 /* landmarks_to_transform_matrix.cc in operations */, - AE561F62E1ED7AB700000000 /* transform_landmarks.cc in operations */, + AE561F62A18B807100000000 /* max_unpooling.cc in operations */, + AE561F62D295FD0100000000 /* max_pool_argmax.cc in operations */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2693,8 +2692,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 0; files = ( - AE561F62A18B807100000000 /* max_unpooling.cc in operations */, - AE561F62D295FD0100000000 /* max_pool_argmax.cc in operations */, + AE561F62FAF3CE2D00000000 /* transform_tensor_bilinear.cc in operations */, + AE561F621305049200000000 /* landmarks_to_transform_matrix.cc in operations */, + AE561F62E1ED7AB700000000 /* transform_landmarks.cc in operations */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3160,7 +3160,7 @@ GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "${PROJECT_FILE_PATH}/.tulsi/Resources/StubInfoPlist.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "--version"; OTHER_LDFLAGS = "--version"; @@ -3253,7 +3253,7 @@ GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "${PROJECT_FILE_PATH}/.tulsi/Resources/StubInfoPlist.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "--version"; OTHER_LDFLAGS = "--version"; @@ -3684,10 +3684,10 @@ isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; - HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/_virtual_includes/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/runtime_cc $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/src/_virtual_includes/flatbuffers $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16 $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers $(TULSI_OUTPUT_BASE)/external/com_google_absl $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/com_google_absl $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog $(TULSI_OUTPUT_BASE)/external/FP16/include $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/include $(TULSI_OUTPUT_BASE)/external/org_tensorflow/tensorflow/lite/schema $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow/tensorflow/lite/schema "; + HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog "; IPHONEOS_DEPLOYMENT_TARGET = 11.0; OTHER_CFLAGS = "-DEIGEN_MAX_ALIGN_BYTES=64 -DEIGEN_MPL2_ONLY -DNDEBUG -DNS_BLOCK_ASSERTIONS=1 -DTFLITE_WITH_RUY -D_FORTIFY_SOURCE=1 -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\""; - PRODUCT_NAME = _idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0; + PRODUCT_NAME = _idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0; SDKROOT = iphoneos; USER_HEADER_SEARCH_PATHS = "$(TULSI_WR)"; }; @@ -3697,10 +3697,10 @@ isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; - HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog "; + HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/_virtual_includes/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/runtime_cc $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/src/_virtual_includes/flatbuffers $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16 $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers $(TULSI_OUTPUT_BASE)/external/com_google_absl $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/com_google_absl $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog $(TULSI_OUTPUT_BASE)/external/FP16/include $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/include $(TULSI_OUTPUT_BASE)/external/org_tensorflow/tensorflow/lite/schema $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow/tensorflow/lite/schema "; IPHONEOS_DEPLOYMENT_TARGET = 11.0; OTHER_CFLAGS = "-DEIGEN_MAX_ALIGN_BYTES=64 -DEIGEN_MPL2_ONLY -DNDEBUG -DNS_BLOCK_ASSERTIONS=1 -DTFLITE_WITH_RUY -D_FORTIFY_SOURCE=1 -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\""; - PRODUCT_NAME = _idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0; + PRODUCT_NAME = _idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0; SDKROOT = iphoneos; USER_HEADER_SEARCH_PATHS = "$(TULSI_WR)"; }; @@ -4069,7 +4069,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; INFOPLIST_FILE = "${PROJECT_FILE_PATH}/.tulsi/Resources/StubInfoPlist.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; PRODUCT_NAME = "mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary"; SDKROOT = iphoneos; TULSI_BUILD_PATH = mediapipe/render/module/beauty/ios/framework; @@ -4494,10 +4494,10 @@ isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; - HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/_virtual_includes/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/runtime_cc $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/src/_virtual_includes/flatbuffers $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16 $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers $(TULSI_OUTPUT_BASE)/external/com_google_absl $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/com_google_absl $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog $(TULSI_OUTPUT_BASE)/external/FP16/include $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/include $(TULSI_OUTPUT_BASE)/external/org_tensorflow/tensorflow/lite/schema $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow/tensorflow/lite/schema "; + HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog "; IPHONEOS_DEPLOYMENT_TARGET = 11.0; OTHER_CFLAGS = "-DEIGEN_MAX_ALIGN_BYTES=64 -DEIGEN_MPL2_ONLY -DNDEBUG -DNS_BLOCK_ASSERTIONS=1 -DTFLITE_WITH_RUY -D_FORTIFY_SOURCE=1 -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\""; - PRODUCT_NAME = _idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0; + PRODUCT_NAME = _idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0; SDKROOT = iphoneos; USER_HEADER_SEARCH_PATHS = "$(TULSI_WR)"; }; @@ -4507,10 +4507,10 @@ isa = XCBuildConfiguration; buildSettings = { GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; - HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog "; + HEADER_SEARCH_PATHS = "$(inherited) $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/_virtual_includes/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/runtime_cc $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo/_virtual_includes/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog/_virtual_includes/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/_virtual_includes/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers/src/_virtual_includes/flatbuffers $(TULSI_WR)/. $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/ $(TULSI_OUTPUT_BASE)/external/org_tensorflow $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow $(TULSI_OUTPUT_BASE)/external/FP16 $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16 $(TULSI_OUTPUT_BASE)/external/gemmlowp $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/gemmlowp $(TULSI_OUTPUT_BASE)/external/flatbuffers $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/flatbuffers $(TULSI_OUTPUT_BASE)/external/com_google_absl $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/com_google_absl $(TULSI_OUTPUT_BASE)/external/eigen_archive $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/eigen_archive $(TULSI_OUTPUT_BASE)/external/ruy $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/ruy $(TULSI_OUTPUT_BASE)/external/cpuinfo $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/cpuinfo $(TULSI_OUTPUT_BASE)/external/clog $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/clog $(TULSI_OUTPUT_BASE)/external/FP16/include $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/FP16/include $(TULSI_OUTPUT_BASE)/external/org_tensorflow/tensorflow/lite/schema $(TULSI_EXECUTION_ROOT)/bazel-tulsi-includes/x/x/external/org_tensorflow/tensorflow/lite/schema "; IPHONEOS_DEPLOYMENT_TARGET = 11.0; OTHER_CFLAGS = "-DEIGEN_MAX_ALIGN_BYTES=64 -DEIGEN_MPL2_ONLY -DNDEBUG -DNS_BLOCK_ASSERTIONS=1 -DTFLITE_WITH_RUY -D_FORTIFY_SOURCE=1 -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\""; - PRODUCT_NAME = _idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0; + PRODUCT_NAME = _idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0; SDKROOT = iphoneos; USER_HEADER_SEARCH_PATHS = "$(TULSI_WR)"; }; @@ -4879,7 +4879,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; INFOPLIST_FILE = "${PROJECT_FILE_PATH}/.tulsi/Resources/StubInfoPlist.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; PRODUCT_NAME = "mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary"; SDKROOT = iphoneos; TULSI_BUILD_PATH = mediapipe/render/module/beauty/ios/framework; @@ -5077,8 +5077,8 @@ 58316E176FB16FD200000000 /* Build configuration list for PBXNativeTarget "_idx_max_unpooling_max_pool_argmax_54A4D221_ios_min11.0" */ = { isa = XCConfigurationList; buildConfigurations = ( - F04780B2C6C86FF10000001E /* Debug */, - F04780B2FA7DE14A0000001E /* Release */, + F04780B2C6C86FF10000001D /* Debug */, + F04780B2FA7DE14A0000001D /* Release */, ); defaultConfigurationIsVisible = 0; }; @@ -5321,8 +5321,8 @@ 58316E17E93848CA00000000 /* Build configuration list for PBXNativeTarget "_idx_transform_tensor_bilinear_landmarks_to_transform_matrix_transform_landmarks_F04B04B0_ios_min11.0" */ = { isa = XCConfigurationList; buildConfigurations = ( - F04780B2C6C86FF10000001D /* Debug */, - F04780B2FA7DE14A0000001D /* Release */, + F04780B2C6C86FF10000001E /* Debug */, + F04780B2FA7DE14A0000001E /* Release */, ); defaultConfigurationIsVisible = 0; }; diff --git a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/OlaFaceUnityFramework.xcscheme b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/OlaFaceUnityFramework.xcscheme index e6b01bb4c..d445061aa 100644 --- a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/OlaFaceUnityFramework.xcscheme +++ b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/OlaFaceUnityFramework.xcscheme @@ -1,27 +1,27 @@ - + - - + + - + - + - + - + - + - + diff --git a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/_idx_Scheme.xcscheme b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/_idx_Scheme.xcscheme index 963b05469..85eb50868 100644 --- a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/_idx_Scheme.xcscheme +++ b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/_idx_Scheme.xcscheme @@ -2,369 +2,369 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary.xcscheme b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary.xcscheme index 947f2a1a7..f59ef05be 100644 --- a/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary.xcscheme +++ b/mediapipe/render/module/beauty/ios/framework/FaceUnityFramework.xcodeproj/xcshareddata/xcschemes/mediapipe-render-module-beauty-ios-framework-OlaFaceUnityLibrary.xcscheme @@ -2,28 +2,28 @@ - - + + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/mediapipe/render/module/beauty/ios/framework/OlaFaceUnity.mm b/mediapipe/render/module/beauty/ios/framework/OlaFaceUnity.mm index 9adf4a0d1..56e50f8ca 100644 --- a/mediapipe/render/module/beauty/ios/framework/OlaFaceUnity.mm +++ b/mediapipe/render/module/beauty/ios/framework/OlaFaceUnity.mm @@ -4,6 +4,7 @@ #include "mediapipe/render/core/OlaCameraSource.hpp" #include "mediapipe/render/core/Context.hpp" #include "mediapipe/render/core/Filter.hpp" +#include "mediapipe/render/core/CVFramebuffer.hpp" using namespace Opipe; @interface OlaFaceUnity() { @@ -43,7 +44,7 @@ using namespace Opipe; { _face_module = Opipe::FaceMeshModule::create(); NSBundle *bundle = [NSBundle bundleForClass:[self class]]; - NSURL* graphURL = [bundle URLForResource:@"face_mesh_mobile_landmark_gpu" withExtension:@"binarypb"]; + NSURL* graphURL = [bundle URLForResource:@"face_mesh_mobile_gpu" withExtension:@"binarypb"]; NSData* data = [NSData dataWithContentsOfURL:graphURL options:0 error:nil]; if (data) { _face_module->init(nullptr, (void *)data.bytes, data.length); @@ -126,7 +127,6 @@ using namespace Opipe; int height = (int)CVPixelBufferGetHeight(imagebuffer); CFRetain(samplebuffer); - NSLog(@"surfaceId:%@", @(surfaceId)); dispatch_async(videoQueue, ^{ _face_module->runInContextSync([&] { CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(samplebuffer); @@ -143,9 +143,14 @@ using namespace Opipe; CVPixelBufferUnlockBaseAddress(imageBuffer, 0); sourceCamera->updateTargets(frameTime); dispatch_semaphore_signal(block_camera_sema); + CVFramebuffer *framebuffer = dynamic_cast(sourceCamera->getScaleFramebuffer()); + if (framebuffer && framebuffer->renderTarget) { + _face_module->processVideoFrame(framebuffer->renderTarget, frameTime); + } }); CFRelease(samplebuffer); }); + } }