Skip to content

Commit

Permalink
feat: implement HolisticLandmarker (#1315)
Browse files Browse the repository at this point in the history
* build: import HolisticLandmarkerGraphOptions

* fix: get face blendshapes when running on GPU

* feat: include holistic_landmarker resources

* feat: implement HolisticLandmarker
  • Loading branch information
homuler authored Jan 19, 2025
1 parent 49d8ed5 commit da27ade
Show file tree
Hide file tree
Showing 21 changed files with 1,655 additions and 52 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,248 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_roi_refinement_graph_options.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Mediapipe.Tasks.Vision.HandLandmarker.Proto {

/// <summary>Holder for reflection information generated from mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_roi_refinement_graph_options.proto</summary>
public static partial class HandRoiRefinementGraphOptionsReflection {

#region Descriptor
/// <summary>File descriptor for mediapipe/tasks/cc/vision/hand_landmarker/proto/hand_roi_refinement_graph_options.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;

static HandRoiRefinementGraphOptionsReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CldtZWRpYXBpcGUvdGFza3MvY2MvdmlzaW9uL2hhbmRfbGFuZG1hcmtlci9w",
"cm90by9oYW5kX3JvaV9yZWZpbmVtZW50X2dyYXBoX29wdGlvbnMucHJvdG8S",
"LG1lZGlhcGlwZS50YXNrcy52aXNpb24uaGFuZF9sYW5kbWFya2VyLnByb3Rv",
"GjBtZWRpYXBpcGUvdGFza3MvY2MvY29yZS9wcm90by9iYXNlX29wdGlvbnMu",
"cHJvdG8iXgodSGFuZFJvaVJlZmluZW1lbnRHcmFwaE9wdGlvbnMSPQoMYmFz",
"ZV9vcHRpb25zGAEgASgLMicubWVkaWFwaXBlLnRhc2tzLmNvcmUucHJvdG8u",
"QmFzZU9wdGlvbnNCXAo2Y29tLmdvb2dsZS5tZWRpYXBpcGUudGFza3Mudmlz",
"aW9uLmhhbmRsYW5kbWFya2VyLnByb3RvQiJIYW5kUm9pUmVmaW5lbWVudEdy",
"YXBoT3B0aW9uc1Byb3RvYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Mediapipe.Tasks.Core.Proto.BaseOptionsReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Mediapipe.Tasks.Vision.HandLandmarker.Proto.HandRoiRefinementGraphOptions), global::Mediapipe.Tasks.Vision.HandLandmarker.Proto.HandRoiRefinementGraphOptions.Parser, new[]{ "BaseOptions" }, null, null, null, null)
}));
}
#endregion

}
#region Messages
public sealed partial class HandRoiRefinementGraphOptions : pb::IMessage<HandRoiRefinementGraphOptions>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<HandRoiRefinementGraphOptions> _parser = new pb::MessageParser<HandRoiRefinementGraphOptions>(() => new HandRoiRefinementGraphOptions());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<HandRoiRefinementGraphOptions> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::Mediapipe.Tasks.Vision.HandLandmarker.Proto.HandRoiRefinementGraphOptionsReflection.Descriptor.MessageTypes[0]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public HandRoiRefinementGraphOptions() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public HandRoiRefinementGraphOptions(HandRoiRefinementGraphOptions other) : this() {
baseOptions_ = other.baseOptions_ != null ? other.baseOptions_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public HandRoiRefinementGraphOptions Clone() {
return new HandRoiRefinementGraphOptions(this);
}

/// <summary>Field number for the "base_options" field.</summary>
public const int BaseOptionsFieldNumber = 1;
private global::Mediapipe.Tasks.Core.Proto.BaseOptions baseOptions_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public global::Mediapipe.Tasks.Core.Proto.BaseOptions BaseOptions {
get { return baseOptions_; }
set {
baseOptions_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as HandRoiRefinementGraphOptions);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(HandRoiRefinementGraphOptions other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (!object.Equals(BaseOptions, other.BaseOptions)) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (baseOptions_ != null) hash ^= BaseOptions.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (baseOptions_ != null) {
output.WriteRawTag(10);
output.WriteMessage(BaseOptions);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}

#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (baseOptions_ != null) {
output.WriteRawTag(10);
output.WriteMessage(BaseOptions);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (baseOptions_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(BaseOptions);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(HandRoiRefinementGraphOptions other) {
if (other == null) {
return;
}
if (other.baseOptions_ != null) {
if (baseOptions_ == null) {
BaseOptions = new global::Mediapipe.Tasks.Core.Proto.BaseOptions();
}
BaseOptions.MergeFrom(other.BaseOptions);
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 10: {
if (baseOptions_ == null) {
BaseOptions = new global::Mediapipe.Tasks.Core.Proto.BaseOptions();
}
input.ReadMessage(BaseOptions);
break;
}
}
}
#endif
}

#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 10: {
if (baseOptions_ == null) {
BaseOptions = new global::Mediapipe.Tasks.Core.Proto.BaseOptions();
}
input.ReadMessage(BaseOptions);
break;
}
}
}
}
#endif

}

#endregion

}

#endregion Designer generated code

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit da27ade

Please sign in to comment.