From 416723b933950bfae104c2f30d746a97d65872e2 Mon Sep 17 00:00:00 2001 From: homuler Date: Fri, 10 Sep 2021 14:08:58 +0900 Subject: [PATCH] refactor: rename Anchor (InstantMotionTracking) to Anchor3d --- .../matrices_manager_calculator.cc | 14 +++++------ .../calculators/sticker_manager_calculator.cc | 8 +++---- .../tracked_anchor_manager_calculator.cc | 24 +++++++++---------- .../calculators/transformations.h | 2 +- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/mediapipe/graphs/instant_motion_tracking/calculators/matrices_manager_calculator.cc b/mediapipe/graphs/instant_motion_tracking/calculators/matrices_manager_calculator.cc index c003135bd..edcd239fe 100644 --- a/mediapipe/graphs/instant_motion_tracking/calculators/matrices_manager_calculator.cc +++ b/mediapipe/graphs/instant_motion_tracking/calculators/matrices_manager_calculator.cc @@ -58,7 +58,7 @@ constexpr float kInitialZ = -10.0f; // perspective matrix] // // Input streams: -// ANCHORS - Anchor data with x,y,z coordinates (x,y are in [0.0-1.0] range for +// ANCHORS - Anchor3d data with x,y,z coordinates (x,y are in [0.0-1.0] range for // position on the device screen, while z is the scaling factor that changes // in proportion to the distance from the tracked region) [REQUIRED] // IMU_ROTATION - float[9] of row-major device rotation matrix [REQUIRED] @@ -101,7 +101,7 @@ class MatricesManagerCalculator : public CalculatorBase { const Matrix4fCM GenerateEigenModelMatrix( const Vector3f& translation_vector, const Matrix3f& rotation_submatrix) const; - const Vector3f GenerateAnchorVector(const Anchor& tracked_anchor) const; + const Vector3f GenerateAnchorVector(const Anchor3d& tracked_anchor) const; DiagonalMatrix3f GetDefaultRenderScaleDiagonal( const int render_id, const float user_scale_factor, const float gif_aspect_ratio) const; @@ -145,7 +145,7 @@ absl::Status MatricesManagerCalculator::GetContract(CalculatorContract* cc) { cc->InputSidePackets().HasTag(kFOVSidePacketTag) && cc->InputSidePackets().HasTag(kAspectRatioSidePacketTag)); - cc->Inputs().Tag(kAnchorsTag).Set>(); + cc->Inputs().Tag(kAnchorsTag).Set>(); cc->Inputs().Tag(kIMUMatrixTag).Set(); cc->Inputs().Tag(kUserScalingsTag).Set>(); cc->Inputs().Tag(kUserRotationsTag).Set>(); @@ -193,8 +193,8 @@ absl::Status MatricesManagerCalculator::Process(CalculatorContext* cc) { const std::vector render_data = cc->Inputs().Tag(kRendersTag).Get>(); - const std::vector anchor_data = - cc->Inputs().Tag(kAnchorsTag).Get>(); + const std::vector anchor_data = + cc->Inputs().Tag(kAnchorsTag).Get>(); if (cc->Inputs().HasTag(kGifAspectRatioTag) && !cc->Inputs().Tag(kGifAspectRatioTag).IsEmpty()) { gif_aspect_ratio_ = cc->Inputs().Tag(kGifAspectRatioTag).Get(); @@ -213,7 +213,7 @@ absl::Status MatricesManagerCalculator::Process(CalculatorContext* cc) { } int render_idx = 0; - for (const Anchor& anchor : anchor_data) { + for (const Anchor3d& anchor : anchor_data) { const int id = anchor.sticker_id; mediapipe::TimedModelMatrixProto* model_matrix; // Add model matrix to matrices list for defined object render ID @@ -302,7 +302,7 @@ const Matrix3f MatricesManagerCalculator::GenerateUserRotationMatrix( // screen Using the sticker anchor data, a translation vector can be generated // in OpenGL coordinate space const Vector3f MatricesManagerCalculator::GenerateAnchorVector( - const Anchor& tracked_anchor) const { + const Anchor3d& tracked_anchor) const { // Using an initial z-value in OpenGL space, generate a new base z-axis value // to mimic scaling by distance. const float z = kInitialZ * tracked_anchor.z; diff --git a/mediapipe/graphs/instant_motion_tracking/calculators/sticker_manager_calculator.cc b/mediapipe/graphs/instant_motion_tracking/calculators/sticker_manager_calculator.cc index 40210c27a..c25842bd6 100644 --- a/mediapipe/graphs/instant_motion_tracking/calculators/sticker_manager_calculator.cc +++ b/mediapipe/graphs/instant_motion_tracking/calculators/sticker_manager_calculator.cc @@ -61,7 +61,7 @@ class StickerManagerCalculator : public CalculatorBase { cc->Outputs().HasTag(kRenderDescriptorsTag)); cc->Inputs().Tag(kProtoDataString).Set(); - cc->Outputs().Tag(kAnchorsTag).Set>(); + cc->Outputs().Tag(kAnchorsTag).Set>(); cc->Outputs().Tag(kUserRotationsTag).Set>(); cc->Outputs().Tag(kUserScalingsTag).Set>(); cc->Outputs().Tag(kRenderDescriptorsTag).Set>(); @@ -78,7 +78,7 @@ class StickerManagerCalculator : public CalculatorBase { std::string sticker_proto_string = cc->Inputs().Tag(kProtoDataString).Get(); - std::vector initial_anchor_data; + std::vector initial_anchor_data; std::vector user_rotation_data; std::vector user_scaling_data; std::vector render_data; @@ -91,7 +91,7 @@ class StickerManagerCalculator : public CalculatorBase { for (int i = 0; i < sticker_roll.sticker().size(); ++i) { // Declare empty structures for sticker data - Anchor initial_anchor; + Anchor3d initial_anchor; UserRotation user_rotation; UserScaling user_scaling; // Get individual Sticker object as defined by Protobuffer @@ -116,7 +116,7 @@ class StickerManagerCalculator : public CalculatorBase { if (cc->Outputs().HasTag(kAnchorsTag)) { cc->Outputs() .Tag(kAnchorsTag) - .AddPacket(MakePacket>(initial_anchor_data) + .AddPacket(MakePacket>(initial_anchor_data) .At(cc->InputTimestamp())); } if (cc->Outputs().HasTag(kUserRotationsTag)) { diff --git a/mediapipe/graphs/instant_motion_tracking/calculators/tracked_anchor_manager_calculator.cc b/mediapipe/graphs/instant_motion_tracking/calculators/tracked_anchor_manager_calculator.cc index 446aee781..3f3ebd94e 100644 --- a/mediapipe/graphs/instant_motion_tracking/calculators/tracked_anchor_manager_calculator.cc +++ b/mediapipe/graphs/instant_motion_tracking/calculators/tracked_anchor_manager_calculator.cc @@ -68,7 +68,7 @@ constexpr float kUsToMs = class TrackedAnchorManagerCalculator : public CalculatorBase { private: // Previous graph iteration anchor data - std::vector previous_anchor_data_; + std::vector previous_anchor_data_; public: static absl::Status GetContract(CalculatorContract* cc) { @@ -77,14 +77,14 @@ class TrackedAnchorManagerCalculator : public CalculatorBase { RET_CHECK(cc->Outputs().HasTag(kAnchorsTag) && cc->Outputs().HasTag(kBoxesOutputTag)); - cc->Inputs().Tag(kAnchorsTag).Set>(); + cc->Inputs().Tag(kAnchorsTag).Set>(); cc->Inputs().Tag(kSentinelTag).Set(); if (cc->Inputs().HasTag(kBoxesInputTag)) { cc->Inputs().Tag(kBoxesInputTag).Set(); } - cc->Outputs().Tag(kAnchorsTag).Set>(); + cc->Outputs().Tag(kAnchorsTag).Set>(); cc->Outputs().Tag(kBoxesOutputTag).Set(); if (cc->Outputs().HasTag(kCancelTag)) { @@ -103,10 +103,10 @@ REGISTER_CALCULATOR(TrackedAnchorManagerCalculator); absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { mediapipe::Timestamp timestamp = cc->InputTimestamp(); const int sticker_sentinel = cc->Inputs().Tag(kSentinelTag).Get(); - std::vector current_anchor_data = - cc->Inputs().Tag(kAnchorsTag).Get>(); + std::vector current_anchor_data = + cc->Inputs().Tag(kAnchorsTag).Get>(); auto pos_boxes = absl::make_unique(); - std::vector tracked_scaled_anchor_data; + std::vector tracked_scaled_anchor_data; // Delete any boxes being tracked without an associated anchor for (const mediapipe::TimedBoxProto& box : @@ -115,7 +115,7 @@ absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { .Get() .box()) { bool anchor_exists = false; - for (Anchor anchor : current_anchor_data) { + for (Anchor3d anchor : current_anchor_data) { if (box.id() == anchor.sticker_id) { anchor_exists = true; break; @@ -129,8 +129,8 @@ absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { } // Perform tracking or updating for each anchor position - for (const Anchor& anchor : current_anchor_data) { - Anchor output_anchor = anchor; + for (const Anchor3d& anchor : current_anchor_data) { + Anchor3d output_anchor = anchor; // Check if anchor position is being reset by user in this graph iteration if (sticker_sentinel == anchor.sticker_id) { // Delete associated tracking box @@ -150,7 +150,7 @@ absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { // Default value for normalized z (scale factor) output_anchor.z = 1.0f; } else { - // Anchor position was not reset by user + // Anchor3d position was not reset by user // Attempt to update anchor position from tracking subgraph // (TimedBoxProto) bool updated_from_tracker = false; @@ -175,7 +175,7 @@ absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { // stickers to be tracked at approximately last location even if // re-acquisitioning in the BoxTrackingSubgraph encounters errors if (!updated_from_tracker) { - for (const Anchor& prev_anchor : previous_anchor_data_) { + for (const Anchor3d& prev_anchor : previous_anchor_data_) { if (anchor.sticker_id == prev_anchor.sticker_id) { mediapipe::TimedBoxProto* box = pos_boxes->add_box(); box->set_left(prev_anchor.x - kBoxEdgeSize * 0.5f); @@ -199,7 +199,7 @@ absl::Status TrackedAnchorManagerCalculator::Process(CalculatorContext* cc) { cc->Outputs() .Tag(kAnchorsTag) - .AddPacket(MakePacket>(tracked_scaled_anchor_data) + .AddPacket(MakePacket>(tracked_scaled_anchor_data) .At(cc->InputTimestamp())); cc->Outputs() .Tag(kBoxesOutputTag) diff --git a/mediapipe/graphs/instant_motion_tracking/calculators/transformations.h b/mediapipe/graphs/instant_motion_tracking/calculators/transformations.h index cbacdb712..f40cf9126 100644 --- a/mediapipe/graphs/instant_motion_tracking/calculators/transformations.h +++ b/mediapipe/graphs/instant_motion_tracking/calculators/transformations.h @@ -30,7 +30,7 @@ struct UserScaling { }; // The normalized anchor coordinates of a sticker -struct Anchor { +struct Anchor3d { float x; // [0.0-1.0] float y; // [0.0-1.0] float z; // Centered around 1.0 [current_scale = z * initial_scale]