| @@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowDatasets", "src\T | |||||
| EndProject | EndProject | ||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Examples.GPU", "test\TensorFlowNET.Examples\TensorFlowNET.Examples.GPU.csproj", "{6F6B3382-8F87-4CD9-BF87-C81D5405685A}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Examples.GPU", "test\TensorFlowNET.Examples\TensorFlowNET.Examples.GPU.csproj", "{6F6B3382-8F87-4CD9-BF87-C81D5405685A}" | ||||
| EndProject | EndProject | ||||
| Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Models", "src\TensorFlowNET.Models\TensorFlowNET.Models.csproj", "{D03F94CF-B283-4730-B177-21A57641061F}" | |||||
| EndProject | |||||
| Global | Global | ||||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| Debug|Any CPU = Debug|Any CPU | Debug|Any CPU = Debug|Any CPU | ||||
| @@ -63,6 +65,10 @@ Global | |||||
| {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Debug|Any CPU.Build.0 = Debug|Any CPU | {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
| {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Release|Any CPU.ActiveCfg = Release|Any CPU | {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
| {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Release|Any CPU.Build.0 = Release|Any CPU | {6F6B3382-8F87-4CD9-BF87-C81D5405685A}.Release|Any CPU.Build.0 = Release|Any CPU | ||||
| {D03F94CF-B283-4730-B177-21A57641061F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
| {D03F94CF-B283-4730-B177-21A57641061F}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
| {D03F94CF-B283-4730-B177-21A57641061F}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
| {D03F94CF-B283-4730-B177-21A57641061F}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
| EndGlobalSection | EndGlobalSection | ||||
| GlobalSection(SolutionProperties) = preSolution | GlobalSection(SolutionProperties) = preSolution | ||||
| HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
| @@ -0,0 +1,343 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/anchor_generator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/anchor_generator.proto</summary> | |||||
| public static partial class AnchorGeneratorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/anchor_generator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static AnchorGeneratorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "Ci5vYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9hbmNob3JfZ2VuZXJhdG9yLnBy", | |||||
| "b3RvEhdvYmplY3RfZGV0ZWN0aW9uLnByb3Rvcxo8b2JqZWN0X2RldGVjdGlv", | |||||
| "bi9wcm90b3MvZmxleGlibGVfZ3JpZF9hbmNob3JfZ2VuZXJhdG9yLnByb3Rv", | |||||
| "GjNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9ncmlkX2FuY2hvcl9nZW5lcmF0", | |||||
| "b3IucHJvdG8aOW9iamVjdF9kZXRlY3Rpb24vcHJvdG9zL211bHRpc2NhbGVf", | |||||
| "YW5jaG9yX2dlbmVyYXRvci5wcm90bxoyb2JqZWN0X2RldGVjdGlvbi9wcm90", | |||||
| "b3Mvc3NkX2FuY2hvcl9nZW5lcmF0b3IucHJvdG8iggMKD0FuY2hvckdlbmVy", | |||||
| "YXRvchJNChVncmlkX2FuY2hvcl9nZW5lcmF0b3IYASABKAsyLC5vYmplY3Rf", | |||||
| "ZGV0ZWN0aW9uLnByb3Rvcy5HcmlkQW5jaG9yR2VuZXJhdG9ySAASSwoUc3Nk", | |||||
| "X2FuY2hvcl9nZW5lcmF0b3IYAiABKAsyKy5vYmplY3RfZGV0ZWN0aW9uLnBy", | |||||
| "b3Rvcy5Tc2RBbmNob3JHZW5lcmF0b3JIABJZChttdWx0aXNjYWxlX2FuY2hv", | |||||
| "cl9nZW5lcmF0b3IYAyABKAsyMi5vYmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5N", | |||||
| "dWx0aXNjYWxlQW5jaG9yR2VuZXJhdG9ySAASXgoeZmxleGlibGVfZ3JpZF9h", | |||||
| "bmNob3JfZ2VuZXJhdG9yGAQgASgLMjQub2JqZWN0X2RldGVjdGlvbi5wcm90", | |||||
| "b3MuRmxleGlibGVHcmlkQW5jaG9yR2VuZXJhdG9ySABCGAoWYW5jaG9yX2dl", | |||||
| "bmVyYXRvcl9vbmVvZmIGcHJvdG8z")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGeneratorReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGeneratorReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGeneratorReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGeneratorReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.AnchorGenerator), global::Tensorflow.Models.ObjectDetection.Protos.AnchorGenerator.Parser, new[]{ "GridAnchorGenerator", "SsdAnchorGenerator", "MultiscaleAnchorGenerator", "FlexibleGridAnchorGenerator" }, new[]{ "AnchorGeneratorOneof" }, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for the anchor generator to use in the object detection | |||||
| /// pipeline. See core/anchor_generator.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class AnchorGenerator : pb::IMessage<AnchorGenerator> { | |||||
| private static readonly pb::MessageParser<AnchorGenerator> _parser = new pb::MessageParser<AnchorGenerator>(() => new AnchorGenerator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<AnchorGenerator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.AnchorGeneratorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGenerator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGenerator(AnchorGenerator other) : this() { | |||||
| switch (other.AnchorGeneratorOneofCase) { | |||||
| case AnchorGeneratorOneofOneofCase.GridAnchorGenerator: | |||||
| GridAnchorGenerator = other.GridAnchorGenerator.Clone(); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.SsdAnchorGenerator: | |||||
| SsdAnchorGenerator = other.SsdAnchorGenerator.Clone(); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator: | |||||
| MultiscaleAnchorGenerator = other.MultiscaleAnchorGenerator.Clone(); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator: | |||||
| FlexibleGridAnchorGenerator = other.FlexibleGridAnchorGenerator.Clone(); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGenerator Clone() { | |||||
| return new AnchorGenerator(this); | |||||
| } | |||||
| /// <summary>Field number for the "grid_anchor_generator" field.</summary> | |||||
| public const int GridAnchorGeneratorFieldNumber = 1; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator GridAnchorGenerator { | |||||
| get { return anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator ? (global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator) anchorGeneratorOneof_ : null; } | |||||
| set { | |||||
| anchorGeneratorOneof_ = value; | |||||
| anchorGeneratorOneofCase_ = value == null ? AnchorGeneratorOneofOneofCase.None : AnchorGeneratorOneofOneofCase.GridAnchorGenerator; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "ssd_anchor_generator" field.</summary> | |||||
| public const int SsdAnchorGeneratorFieldNumber = 2; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator SsdAnchorGenerator { | |||||
| get { return anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator ? (global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator) anchorGeneratorOneof_ : null; } | |||||
| set { | |||||
| anchorGeneratorOneof_ = value; | |||||
| anchorGeneratorOneofCase_ = value == null ? AnchorGeneratorOneofOneofCase.None : AnchorGeneratorOneofOneofCase.SsdAnchorGenerator; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "multiscale_anchor_generator" field.</summary> | |||||
| public const int MultiscaleAnchorGeneratorFieldNumber = 3; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator MultiscaleAnchorGenerator { | |||||
| get { return anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator ? (global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator) anchorGeneratorOneof_ : null; } | |||||
| set { | |||||
| anchorGeneratorOneof_ = value; | |||||
| anchorGeneratorOneofCase_ = value == null ? AnchorGeneratorOneofOneofCase.None : AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "flexible_grid_anchor_generator" field.</summary> | |||||
| public const int FlexibleGridAnchorGeneratorFieldNumber = 4; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator FlexibleGridAnchorGenerator { | |||||
| get { return anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator ? (global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator) anchorGeneratorOneof_ : null; } | |||||
| set { | |||||
| anchorGeneratorOneof_ = value; | |||||
| anchorGeneratorOneofCase_ = value == null ? AnchorGeneratorOneofOneofCase.None : AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator; | |||||
| } | |||||
| } | |||||
| private object anchorGeneratorOneof_; | |||||
| /// <summary>Enum of possible cases for the "anchor_generator_oneof" oneof.</summary> | |||||
| public enum AnchorGeneratorOneofOneofCase { | |||||
| None = 0, | |||||
| GridAnchorGenerator = 1, | |||||
| SsdAnchorGenerator = 2, | |||||
| MultiscaleAnchorGenerator = 3, | |||||
| FlexibleGridAnchorGenerator = 4, | |||||
| } | |||||
| private AnchorGeneratorOneofOneofCase anchorGeneratorOneofCase_ = AnchorGeneratorOneofOneofCase.None; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGeneratorOneofOneofCase AnchorGeneratorOneofCase { | |||||
| get { return anchorGeneratorOneofCase_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void ClearAnchorGeneratorOneof() { | |||||
| anchorGeneratorOneofCase_ = AnchorGeneratorOneofOneofCase.None; | |||||
| anchorGeneratorOneof_ = null; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as AnchorGenerator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(AnchorGenerator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(GridAnchorGenerator, other.GridAnchorGenerator)) return false; | |||||
| if (!object.Equals(SsdAnchorGenerator, other.SsdAnchorGenerator)) return false; | |||||
| if (!object.Equals(MultiscaleAnchorGenerator, other.MultiscaleAnchorGenerator)) return false; | |||||
| if (!object.Equals(FlexibleGridAnchorGenerator, other.FlexibleGridAnchorGenerator)) return false; | |||||
| if (AnchorGeneratorOneofCase != other.AnchorGeneratorOneofCase) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator) hash ^= GridAnchorGenerator.GetHashCode(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator) hash ^= SsdAnchorGenerator.GetHashCode(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator) hash ^= MultiscaleAnchorGenerator.GetHashCode(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator) hash ^= FlexibleGridAnchorGenerator.GetHashCode(); | |||||
| hash ^= (int) anchorGeneratorOneofCase_; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(GridAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(SsdAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator) { | |||||
| output.WriteRawTag(26); | |||||
| output.WriteMessage(MultiscaleAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator) { | |||||
| output.WriteRawTag(34); | |||||
| output.WriteMessage(FlexibleGridAnchorGenerator); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(GridAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(SsdAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(MultiscaleAnchorGenerator); | |||||
| } | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(FlexibleGridAnchorGenerator); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(AnchorGenerator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| switch (other.AnchorGeneratorOneofCase) { | |||||
| case AnchorGeneratorOneofOneofCase.GridAnchorGenerator: | |||||
| if (GridAnchorGenerator == null) { | |||||
| GridAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator(); | |||||
| } | |||||
| GridAnchorGenerator.MergeFrom(other.GridAnchorGenerator); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.SsdAnchorGenerator: | |||||
| if (SsdAnchorGenerator == null) { | |||||
| SsdAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator(); | |||||
| } | |||||
| SsdAnchorGenerator.MergeFrom(other.SsdAnchorGenerator); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator: | |||||
| if (MultiscaleAnchorGenerator == null) { | |||||
| MultiscaleAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator(); | |||||
| } | |||||
| MultiscaleAnchorGenerator.MergeFrom(other.MultiscaleAnchorGenerator); | |||||
| break; | |||||
| case AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator: | |||||
| if (FlexibleGridAnchorGenerator == null) { | |||||
| FlexibleGridAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator(); | |||||
| } | |||||
| FlexibleGridAnchorGenerator.MergeFrom(other.FlexibleGridAnchorGenerator); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator) { | |||||
| subBuilder.MergeFrom(GridAnchorGenerator); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| GridAnchorGenerator = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator) { | |||||
| subBuilder.MergeFrom(SsdAnchorGenerator); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| SsdAnchorGenerator = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 26: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator) { | |||||
| subBuilder.MergeFrom(MultiscaleAnchorGenerator); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| MultiscaleAnchorGenerator = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 34: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator(); | |||||
| if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator) { | |||||
| subBuilder.MergeFrom(FlexibleGridAnchorGenerator); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| FlexibleGridAnchorGenerator = subBuilder; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,343 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/argmax_matcher.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/argmax_matcher.proto</summary> | |||||
| public static partial class ArgmaxMatcherReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/argmax_matcher.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static ArgmaxMatcherReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CixvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9hcmdtYXhfbWF0Y2hlci5wcm90", | |||||
| "bxIXb2JqZWN0X2RldGVjdGlvbi5wcm90b3MixwEKDUFyZ01heE1hdGNoZXIS", | |||||
| "GQoRbWF0Y2hlZF90aHJlc2hvbGQYASABKAISGwoTdW5tYXRjaGVkX3RocmVz", | |||||
| "aG9sZBgCIAEoAhIZChFpZ25vcmVfdGhyZXNob2xkcxgDIAEoCBImCh5uZWdh", | |||||
| "dGl2ZXNfbG93ZXJfdGhhbl91bm1hdGNoZWQYBCABKAgSIAoYZm9yY2VfbWF0", | |||||
| "Y2hfZm9yX2VhY2hfcm93GAUgASgIEhkKEXVzZV9tYXRtdWxfZ2F0aGVyGAYg", | |||||
| "ASgIYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher), global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher.Parser, new[]{ "MatchedThreshold", "UnmatchedThreshold", "IgnoreThresholds", "NegativesLowerThanUnmatched", "ForceMatchForEachRow", "UseMatmulGather" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for ArgMaxMatcher. See | |||||
| /// matchers/argmax_matcher.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class ArgMaxMatcher : pb::IMessage<ArgMaxMatcher> { | |||||
| private static readonly pb::MessageParser<ArgMaxMatcher> _parser = new pb::MessageParser<ArgMaxMatcher>(() => new ArgMaxMatcher()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<ArgMaxMatcher> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.ArgmaxMatcherReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ArgMaxMatcher() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ArgMaxMatcher(ArgMaxMatcher other) : this() { | |||||
| matchedThreshold_ = other.matchedThreshold_; | |||||
| unmatchedThreshold_ = other.unmatchedThreshold_; | |||||
| ignoreThresholds_ = other.ignoreThresholds_; | |||||
| negativesLowerThanUnmatched_ = other.negativesLowerThanUnmatched_; | |||||
| forceMatchForEachRow_ = other.forceMatchForEachRow_; | |||||
| useMatmulGather_ = other.useMatmulGather_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ArgMaxMatcher Clone() { | |||||
| return new ArgMaxMatcher(this); | |||||
| } | |||||
| /// <summary>Field number for the "matched_threshold" field.</summary> | |||||
| public const int MatchedThresholdFieldNumber = 1; | |||||
| private float matchedThreshold_; | |||||
| /// <summary> | |||||
| /// Threshold for positive matches. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float MatchedThreshold { | |||||
| get { return matchedThreshold_; } | |||||
| set { | |||||
| matchedThreshold_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "unmatched_threshold" field.</summary> | |||||
| public const int UnmatchedThresholdFieldNumber = 2; | |||||
| private float unmatchedThreshold_; | |||||
| /// <summary> | |||||
| /// Threshold for negative matches. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float UnmatchedThreshold { | |||||
| get { return unmatchedThreshold_; } | |||||
| set { | |||||
| unmatchedThreshold_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "ignore_thresholds" field.</summary> | |||||
| public const int IgnoreThresholdsFieldNumber = 3; | |||||
| private bool ignoreThresholds_; | |||||
| /// <summary> | |||||
| /// Whether to construct ArgMaxMatcher without thresholds. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool IgnoreThresholds { | |||||
| get { return ignoreThresholds_; } | |||||
| set { | |||||
| ignoreThresholds_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "negatives_lower_than_unmatched" field.</summary> | |||||
| public const int NegativesLowerThanUnmatchedFieldNumber = 4; | |||||
| private bool negativesLowerThanUnmatched_; | |||||
| /// <summary> | |||||
| /// If True then negative matches are the ones below the unmatched_threshold, | |||||
| /// whereas ignored matches are in between the matched and umatched | |||||
| /// threshold. If False, then negative matches are in between the matched | |||||
| /// and unmatched threshold, and everything lower than unmatched is ignored. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool NegativesLowerThanUnmatched { | |||||
| get { return negativesLowerThanUnmatched_; } | |||||
| set { | |||||
| negativesLowerThanUnmatched_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "force_match_for_each_row" field.</summary> | |||||
| public const int ForceMatchForEachRowFieldNumber = 5; | |||||
| private bool forceMatchForEachRow_; | |||||
| /// <summary> | |||||
| /// Whether to ensure each row is matched to at least one column. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool ForceMatchForEachRow { | |||||
| get { return forceMatchForEachRow_; } | |||||
| set { | |||||
| forceMatchForEachRow_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "use_matmul_gather" field.</summary> | |||||
| public const int UseMatmulGatherFieldNumber = 6; | |||||
| private bool useMatmulGather_; | |||||
| /// <summary> | |||||
| /// Force constructed match objects to use matrix multiplication based gather | |||||
| /// instead of standard tf.gather | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool UseMatmulGather { | |||||
| get { return useMatmulGather_; } | |||||
| set { | |||||
| useMatmulGather_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as ArgMaxMatcher); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(ArgMaxMatcher other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MatchedThreshold, other.MatchedThreshold)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(UnmatchedThreshold, other.UnmatchedThreshold)) return false; | |||||
| if (IgnoreThresholds != other.IgnoreThresholds) return false; | |||||
| if (NegativesLowerThanUnmatched != other.NegativesLowerThanUnmatched) return false; | |||||
| if (ForceMatchForEachRow != other.ForceMatchForEachRow) return false; | |||||
| if (UseMatmulGather != other.UseMatmulGather) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (MatchedThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MatchedThreshold); | |||||
| if (UnmatchedThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(UnmatchedThreshold); | |||||
| if (IgnoreThresholds != false) hash ^= IgnoreThresholds.GetHashCode(); | |||||
| if (NegativesLowerThanUnmatched != false) hash ^= NegativesLowerThanUnmatched.GetHashCode(); | |||||
| if (ForceMatchForEachRow != false) hash ^= ForceMatchForEachRow.GetHashCode(); | |||||
| if (UseMatmulGather != false) hash ^= UseMatmulGather.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (MatchedThreshold != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(MatchedThreshold); | |||||
| } | |||||
| if (UnmatchedThreshold != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(UnmatchedThreshold); | |||||
| } | |||||
| if (IgnoreThresholds != false) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteBool(IgnoreThresholds); | |||||
| } | |||||
| if (NegativesLowerThanUnmatched != false) { | |||||
| output.WriteRawTag(32); | |||||
| output.WriteBool(NegativesLowerThanUnmatched); | |||||
| } | |||||
| if (ForceMatchForEachRow != false) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteBool(ForceMatchForEachRow); | |||||
| } | |||||
| if (UseMatmulGather != false) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteBool(UseMatmulGather); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (MatchedThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (UnmatchedThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (IgnoreThresholds != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (NegativesLowerThanUnmatched != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (ForceMatchForEachRow != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (UseMatmulGather != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(ArgMaxMatcher other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.MatchedThreshold != 0F) { | |||||
| MatchedThreshold = other.MatchedThreshold; | |||||
| } | |||||
| if (other.UnmatchedThreshold != 0F) { | |||||
| UnmatchedThreshold = other.UnmatchedThreshold; | |||||
| } | |||||
| if (other.IgnoreThresholds != false) { | |||||
| IgnoreThresholds = other.IgnoreThresholds; | |||||
| } | |||||
| if (other.NegativesLowerThanUnmatched != false) { | |||||
| NegativesLowerThanUnmatched = other.NegativesLowerThanUnmatched; | |||||
| } | |||||
| if (other.ForceMatchForEachRow != false) { | |||||
| ForceMatchForEachRow = other.ForceMatchForEachRow; | |||||
| } | |||||
| if (other.UseMatmulGather != false) { | |||||
| UseMatmulGather = other.UseMatmulGather; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| MatchedThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| UnmatchedThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| IgnoreThresholds = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 32: { | |||||
| NegativesLowerThanUnmatched = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| ForceMatchForEachRow = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 48: { | |||||
| UseMatmulGather = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,181 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/bipartite_matcher.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/bipartite_matcher.proto</summary> | |||||
| public static partial class BipartiteMatcherReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/bipartite_matcher.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static BipartiteMatcherReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "Ci9vYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9iaXBhcnRpdGVfbWF0Y2hlci5w", | |||||
| "cm90bxIXb2JqZWN0X2RldGVjdGlvbi5wcm90b3MiLQoQQmlwYXJ0aXRlTWF0", | |||||
| "Y2hlchIZChF1c2VfbWF0bXVsX2dhdGhlchgGIAEoCGIGcHJvdG8z")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher), global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher.Parser, new[]{ "UseMatmulGather" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for bipartite matcher. See | |||||
| /// matchers/bipartite_matcher.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class BipartiteMatcher : pb::IMessage<BipartiteMatcher> { | |||||
| private static readonly pb::MessageParser<BipartiteMatcher> _parser = new pb::MessageParser<BipartiteMatcher>(() => new BipartiteMatcher()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<BipartiteMatcher> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcherReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BipartiteMatcher() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BipartiteMatcher(BipartiteMatcher other) : this() { | |||||
| useMatmulGather_ = other.useMatmulGather_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BipartiteMatcher Clone() { | |||||
| return new BipartiteMatcher(this); | |||||
| } | |||||
| /// <summary>Field number for the "use_matmul_gather" field.</summary> | |||||
| public const int UseMatmulGatherFieldNumber = 6; | |||||
| private bool useMatmulGather_; | |||||
| /// <summary> | |||||
| /// Force constructed match objects to use matrix multiplication based gather | |||||
| /// instead of standard tf.gather | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool UseMatmulGather { | |||||
| get { return useMatmulGather_; } | |||||
| set { | |||||
| useMatmulGather_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as BipartiteMatcher); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(BipartiteMatcher other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (UseMatmulGather != other.UseMatmulGather) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (UseMatmulGather != false) hash ^= UseMatmulGather.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (UseMatmulGather != false) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteBool(UseMatmulGather); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (UseMatmulGather != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(BipartiteMatcher other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.UseMatmulGather != false) { | |||||
| UseMatmulGather = other.UseMatmulGather; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 48: { | |||||
| UseMatmulGather = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,341 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/box_coder.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/box_coder.proto</summary> | |||||
| public static partial class BoxCoderReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/box_coder.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static BoxCoderReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CidvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9ib3hfY29kZXIucHJvdG8SF29i", | |||||
| "amVjdF9kZXRlY3Rpb24ucHJvdG9zGjNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rv", | |||||
| "cy9mYXN0ZXJfcmNubl9ib3hfY29kZXIucHJvdG8aMG9iamVjdF9kZXRlY3Rp", | |||||
| "b24vcHJvdG9zL2tleXBvaW50X2JveF9jb2Rlci5wcm90bxozb2JqZWN0X2Rl", | |||||
| "dGVjdGlvbi9wcm90b3MvbWVhbl9zdGRkZXZfYm94X2NvZGVyLnByb3RvGi5v", | |||||
| "YmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9zcXVhcmVfYm94X2NvZGVyLnByb3Rv", | |||||
| "IscCCghCb3hDb2RlchJMChVmYXN0ZXJfcmNubl9ib3hfY29kZXIYASABKAsy", | |||||
| "Ky5vYmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5GYXN0ZXJSY25uQm94Q29kZXJI", | |||||
| "ABJMChVtZWFuX3N0ZGRldl9ib3hfY29kZXIYAiABKAsyKy5vYmplY3RfZGV0", | |||||
| "ZWN0aW9uLnByb3Rvcy5NZWFuU3RkZGV2Qm94Q29kZXJIABJDChBzcXVhcmVf", | |||||
| "Ym94X2NvZGVyGAMgASgLMicub2JqZWN0X2RldGVjdGlvbi5wcm90b3MuU3F1", | |||||
| "YXJlQm94Q29kZXJIABJHChJrZXlwb2ludF9ib3hfY29kZXIYBCABKAsyKS5v", | |||||
| "YmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5LZXlwb2ludEJveENvZGVySABCEQoP", | |||||
| "Ym94X2NvZGVyX29uZW9mYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoderReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoderReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoderReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoderReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.BoxCoder), global::Tensorflow.Models.ObjectDetection.Protos.BoxCoder.Parser, new[]{ "FasterRcnnBoxCoder", "MeanStddevBoxCoder", "SquareBoxCoder", "KeypointBoxCoder" }, new[]{ "BoxCoderOneof" }, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for the box coder to be used in the object detection | |||||
| /// pipeline. See core/box_coder.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class BoxCoder : pb::IMessage<BoxCoder> { | |||||
| private static readonly pb::MessageParser<BoxCoder> _parser = new pb::MessageParser<BoxCoder>(() => new BoxCoder()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<BoxCoder> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.BoxCoderReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BoxCoder() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BoxCoder(BoxCoder other) : this() { | |||||
| switch (other.BoxCoderOneofCase) { | |||||
| case BoxCoderOneofOneofCase.FasterRcnnBoxCoder: | |||||
| FasterRcnnBoxCoder = other.FasterRcnnBoxCoder.Clone(); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.MeanStddevBoxCoder: | |||||
| MeanStddevBoxCoder = other.MeanStddevBoxCoder.Clone(); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.SquareBoxCoder: | |||||
| SquareBoxCoder = other.SquareBoxCoder.Clone(); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.KeypointBoxCoder: | |||||
| KeypointBoxCoder = other.KeypointBoxCoder.Clone(); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BoxCoder Clone() { | |||||
| return new BoxCoder(this); | |||||
| } | |||||
| /// <summary>Field number for the "faster_rcnn_box_coder" field.</summary> | |||||
| public const int FasterRcnnBoxCoderFieldNumber = 1; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder FasterRcnnBoxCoder { | |||||
| get { return boxCoderOneofCase_ == BoxCoderOneofOneofCase.FasterRcnnBoxCoder ? (global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder) boxCoderOneof_ : null; } | |||||
| set { | |||||
| boxCoderOneof_ = value; | |||||
| boxCoderOneofCase_ = value == null ? BoxCoderOneofOneofCase.None : BoxCoderOneofOneofCase.FasterRcnnBoxCoder; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "mean_stddev_box_coder" field.</summary> | |||||
| public const int MeanStddevBoxCoderFieldNumber = 2; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder MeanStddevBoxCoder { | |||||
| get { return boxCoderOneofCase_ == BoxCoderOneofOneofCase.MeanStddevBoxCoder ? (global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder) boxCoderOneof_ : null; } | |||||
| set { | |||||
| boxCoderOneof_ = value; | |||||
| boxCoderOneofCase_ = value == null ? BoxCoderOneofOneofCase.None : BoxCoderOneofOneofCase.MeanStddevBoxCoder; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "square_box_coder" field.</summary> | |||||
| public const int SquareBoxCoderFieldNumber = 3; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder SquareBoxCoder { | |||||
| get { return boxCoderOneofCase_ == BoxCoderOneofOneofCase.SquareBoxCoder ? (global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder) boxCoderOneof_ : null; } | |||||
| set { | |||||
| boxCoderOneof_ = value; | |||||
| boxCoderOneofCase_ = value == null ? BoxCoderOneofOneofCase.None : BoxCoderOneofOneofCase.SquareBoxCoder; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "keypoint_box_coder" field.</summary> | |||||
| public const int KeypointBoxCoderFieldNumber = 4; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder KeypointBoxCoder { | |||||
| get { return boxCoderOneofCase_ == BoxCoderOneofOneofCase.KeypointBoxCoder ? (global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder) boxCoderOneof_ : null; } | |||||
| set { | |||||
| boxCoderOneof_ = value; | |||||
| boxCoderOneofCase_ = value == null ? BoxCoderOneofOneofCase.None : BoxCoderOneofOneofCase.KeypointBoxCoder; | |||||
| } | |||||
| } | |||||
| private object boxCoderOneof_; | |||||
| /// <summary>Enum of possible cases for the "box_coder_oneof" oneof.</summary> | |||||
| public enum BoxCoderOneofOneofCase { | |||||
| None = 0, | |||||
| FasterRcnnBoxCoder = 1, | |||||
| MeanStddevBoxCoder = 2, | |||||
| SquareBoxCoder = 3, | |||||
| KeypointBoxCoder = 4, | |||||
| } | |||||
| private BoxCoderOneofOneofCase boxCoderOneofCase_ = BoxCoderOneofOneofCase.None; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BoxCoderOneofOneofCase BoxCoderOneofCase { | |||||
| get { return boxCoderOneofCase_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void ClearBoxCoderOneof() { | |||||
| boxCoderOneofCase_ = BoxCoderOneofOneofCase.None; | |||||
| boxCoderOneof_ = null; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as BoxCoder); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(BoxCoder other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(FasterRcnnBoxCoder, other.FasterRcnnBoxCoder)) return false; | |||||
| if (!object.Equals(MeanStddevBoxCoder, other.MeanStddevBoxCoder)) return false; | |||||
| if (!object.Equals(SquareBoxCoder, other.SquareBoxCoder)) return false; | |||||
| if (!object.Equals(KeypointBoxCoder, other.KeypointBoxCoder)) return false; | |||||
| if (BoxCoderOneofCase != other.BoxCoderOneofCase) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.FasterRcnnBoxCoder) hash ^= FasterRcnnBoxCoder.GetHashCode(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.MeanStddevBoxCoder) hash ^= MeanStddevBoxCoder.GetHashCode(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.SquareBoxCoder) hash ^= SquareBoxCoder.GetHashCode(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.KeypointBoxCoder) hash ^= KeypointBoxCoder.GetHashCode(); | |||||
| hash ^= (int) boxCoderOneofCase_; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.FasterRcnnBoxCoder) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(FasterRcnnBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.MeanStddevBoxCoder) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(MeanStddevBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.SquareBoxCoder) { | |||||
| output.WriteRawTag(26); | |||||
| output.WriteMessage(SquareBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.KeypointBoxCoder) { | |||||
| output.WriteRawTag(34); | |||||
| output.WriteMessage(KeypointBoxCoder); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.FasterRcnnBoxCoder) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(FasterRcnnBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.MeanStddevBoxCoder) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(MeanStddevBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.SquareBoxCoder) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(SquareBoxCoder); | |||||
| } | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.KeypointBoxCoder) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(KeypointBoxCoder); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(BoxCoder other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| switch (other.BoxCoderOneofCase) { | |||||
| case BoxCoderOneofOneofCase.FasterRcnnBoxCoder: | |||||
| if (FasterRcnnBoxCoder == null) { | |||||
| FasterRcnnBoxCoder = new global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder(); | |||||
| } | |||||
| FasterRcnnBoxCoder.MergeFrom(other.FasterRcnnBoxCoder); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.MeanStddevBoxCoder: | |||||
| if (MeanStddevBoxCoder == null) { | |||||
| MeanStddevBoxCoder = new global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder(); | |||||
| } | |||||
| MeanStddevBoxCoder.MergeFrom(other.MeanStddevBoxCoder); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.SquareBoxCoder: | |||||
| if (SquareBoxCoder == null) { | |||||
| SquareBoxCoder = new global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder(); | |||||
| } | |||||
| SquareBoxCoder.MergeFrom(other.SquareBoxCoder); | |||||
| break; | |||||
| case BoxCoderOneofOneofCase.KeypointBoxCoder: | |||||
| if (KeypointBoxCoder == null) { | |||||
| KeypointBoxCoder = new global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder(); | |||||
| } | |||||
| KeypointBoxCoder.MergeFrom(other.KeypointBoxCoder); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.FasterRcnnBoxCoder) { | |||||
| subBuilder.MergeFrom(FasterRcnnBoxCoder); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| FasterRcnnBoxCoder = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.MeanStddevBoxCoder) { | |||||
| subBuilder.MergeFrom(MeanStddevBoxCoder); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| MeanStddevBoxCoder = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 26: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.SquareBoxCoder) { | |||||
| subBuilder.MergeFrom(SquareBoxCoder); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| SquareBoxCoder = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 34: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder(); | |||||
| if (boxCoderOneofCase_ == BoxCoderOneofOneofCase.KeypointBoxCoder) { | |||||
| subBuilder.MergeFrom(KeypointBoxCoder); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| KeypointBoxCoder = subBuilder; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,901 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/eval.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/eval.proto</summary> | |||||
| public static partial class EvalReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/eval.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static EvalReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CiJvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9ldmFsLnByb3RvEhdvYmplY3Rf", | |||||
| "ZGV0ZWN0aW9uLnByb3RvcyK3BQoKRXZhbENvbmZpZxISCgpiYXRjaF9zaXpl", | |||||
| "GBkgASgNEhoKEm51bV92aXN1YWxpemF0aW9ucxgBIAEoDRIUCgxudW1fZXhh", | |||||
| "bXBsZXMYAiABKA0SGgoSZXZhbF9pbnRlcnZhbF9zZWNzGAMgASgNEhEKCW1h", | |||||
| "eF9ldmFscxgEIAEoDRISCgpzYXZlX2dyYXBoGAUgASgIEiAKGHZpc3VhbGl6", | |||||
| "YXRpb25fZXhwb3J0X2RpchgGIAEoCRITCgtldmFsX21hc3RlchgHIAEoCRIT", | |||||
| "CgttZXRyaWNzX3NldBgIIAMoCRITCgtleHBvcnRfcGF0aBgJIAEoCRIaChJp", | |||||
| "Z25vcmVfZ3JvdW5kdHJ1dGgYCiABKAgSGwoTdXNlX21vdmluZ19hdmVyYWdl", | |||||
| "cxgLIAEoCBIbChNldmFsX2luc3RhbmNlX21hc2tzGAwgASgIEhsKE21pbl9z", | |||||
| "Y29yZV90aHJlc2hvbGQYDSABKAISIgoabWF4X251bV9ib3hlc190b192aXN1", | |||||
| "YWxpemUYDiABKAUSEwoLc2tpcF9zY29yZXMYDyABKAgSEwoLc2tpcF9sYWJl", | |||||
| "bHMYECABKAgSIwobdmlzdWFsaXplX2dyb3VuZHRydXRoX2JveGVzGBEgASgI", | |||||
| "EisKI2dyb3VuZHRydXRoX2JveF92aXN1YWxpemF0aW9uX2NvbG9yGBIgASgJ", | |||||
| "Ei4KJmtlZXBfaW1hZ2VfaWRfZm9yX3Zpc3VhbGl6YXRpb25fZXhwb3J0GBMg", | |||||
| "ASgIEh4KFnJldGFpbl9vcmlnaW5hbF9pbWFnZXMYFyABKAgSJAocaW5jbHVk", | |||||
| "ZV9tZXRyaWNzX3Blcl9jYXRlZ29yeRgYIAEoCBIaChJyZWNhbGxfbG93ZXJf", | |||||
| "Ym91bmQYGiABKAISGgoScmVjYWxsX3VwcGVyX2JvdW5kGBsgASgCYgZwcm90", | |||||
| "bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig), global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig.Parser, new[]{ "BatchSize", "NumVisualizations", "NumExamples", "EvalIntervalSecs", "MaxEvals", "SaveGraph", "VisualizationExportDir", "EvalMaster", "MetricsSet", "ExportPath", "IgnoreGroundtruth", "UseMovingAverages", "EvalInstanceMasks", "MinScoreThreshold", "MaxNumBoxesToVisualize", "SkipScores", "SkipLabels", "VisualizeGroundtruthBoxes", "GroundtruthBoxVisualizationColor", "KeepImageIdForVisualizationExport", "RetainOriginalImages", "IncludeMetricsPerCategory", "RecallLowerBound", "RecallUpperBound" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Message for configuring DetectionModel evaluation jobs (eval.py). | |||||
| /// </summary> | |||||
| public sealed partial class EvalConfig : pb::IMessage<EvalConfig> { | |||||
| private static readonly pb::MessageParser<EvalConfig> _parser = new pb::MessageParser<EvalConfig>(() => new EvalConfig()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<EvalConfig> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.EvalReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public EvalConfig() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public EvalConfig(EvalConfig other) : this() { | |||||
| batchSize_ = other.batchSize_; | |||||
| numVisualizations_ = other.numVisualizations_; | |||||
| numExamples_ = other.numExamples_; | |||||
| evalIntervalSecs_ = other.evalIntervalSecs_; | |||||
| maxEvals_ = other.maxEvals_; | |||||
| saveGraph_ = other.saveGraph_; | |||||
| visualizationExportDir_ = other.visualizationExportDir_; | |||||
| evalMaster_ = other.evalMaster_; | |||||
| metricsSet_ = other.metricsSet_.Clone(); | |||||
| exportPath_ = other.exportPath_; | |||||
| ignoreGroundtruth_ = other.ignoreGroundtruth_; | |||||
| useMovingAverages_ = other.useMovingAverages_; | |||||
| evalInstanceMasks_ = other.evalInstanceMasks_; | |||||
| minScoreThreshold_ = other.minScoreThreshold_; | |||||
| maxNumBoxesToVisualize_ = other.maxNumBoxesToVisualize_; | |||||
| skipScores_ = other.skipScores_; | |||||
| skipLabels_ = other.skipLabels_; | |||||
| visualizeGroundtruthBoxes_ = other.visualizeGroundtruthBoxes_; | |||||
| groundtruthBoxVisualizationColor_ = other.groundtruthBoxVisualizationColor_; | |||||
| keepImageIdForVisualizationExport_ = other.keepImageIdForVisualizationExport_; | |||||
| retainOriginalImages_ = other.retainOriginalImages_; | |||||
| includeMetricsPerCategory_ = other.includeMetricsPerCategory_; | |||||
| recallLowerBound_ = other.recallLowerBound_; | |||||
| recallUpperBound_ = other.recallUpperBound_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public EvalConfig Clone() { | |||||
| return new EvalConfig(this); | |||||
| } | |||||
| /// <summary>Field number for the "batch_size" field.</summary> | |||||
| public const int BatchSizeFieldNumber = 25; | |||||
| private uint batchSize_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint BatchSize { | |||||
| get { return batchSize_; } | |||||
| set { | |||||
| batchSize_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "num_visualizations" field.</summary> | |||||
| public const int NumVisualizationsFieldNumber = 1; | |||||
| private uint numVisualizations_; | |||||
| /// <summary> | |||||
| /// Number of visualization images to generate. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint NumVisualizations { | |||||
| get { return numVisualizations_; } | |||||
| set { | |||||
| numVisualizations_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "num_examples" field.</summary> | |||||
| public const int NumExamplesFieldNumber = 2; | |||||
| private uint numExamples_; | |||||
| /// <summary> | |||||
| /// Number of examples to process of evaluation. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint NumExamples { | |||||
| get { return numExamples_; } | |||||
| set { | |||||
| numExamples_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "eval_interval_secs" field.</summary> | |||||
| public const int EvalIntervalSecsFieldNumber = 3; | |||||
| private uint evalIntervalSecs_; | |||||
| /// <summary> | |||||
| /// How often to run evaluation. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint EvalIntervalSecs { | |||||
| get { return evalIntervalSecs_; } | |||||
| set { | |||||
| evalIntervalSecs_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_evals" field.</summary> | |||||
| public const int MaxEvalsFieldNumber = 4; | |||||
| private uint maxEvals_; | |||||
| /// <summary> | |||||
| /// Maximum number of times to run evaluation. If set to 0, will run forever. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint MaxEvals { | |||||
| get { return maxEvals_; } | |||||
| set { | |||||
| maxEvals_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "save_graph" field.</summary> | |||||
| public const int SaveGraphFieldNumber = 5; | |||||
| private bool saveGraph_; | |||||
| /// <summary> | |||||
| /// Whether the TensorFlow graph used for evaluation should be saved to disk. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool SaveGraph { | |||||
| get { return saveGraph_; } | |||||
| set { | |||||
| saveGraph_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "visualization_export_dir" field.</summary> | |||||
| public const int VisualizationExportDirFieldNumber = 6; | |||||
| private string visualizationExportDir_ = ""; | |||||
| /// <summary> | |||||
| /// Path to directory to store visualizations in. If empty, visualization | |||||
| /// images are not exported (only shown on Tensorboard). | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string VisualizationExportDir { | |||||
| get { return visualizationExportDir_; } | |||||
| set { | |||||
| visualizationExportDir_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "eval_master" field.</summary> | |||||
| public const int EvalMasterFieldNumber = 7; | |||||
| private string evalMaster_ = ""; | |||||
| /// <summary> | |||||
| /// BNS name of the TensorFlow master. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string EvalMaster { | |||||
| get { return evalMaster_; } | |||||
| set { | |||||
| evalMaster_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "metrics_set" field.</summary> | |||||
| public const int MetricsSetFieldNumber = 8; | |||||
| private static readonly pb::FieldCodec<string> _repeated_metricsSet_codec | |||||
| = pb::FieldCodec.ForString(66); | |||||
| private readonly pbc::RepeatedField<string> metricsSet_ = new pbc::RepeatedField<string>(); | |||||
| /// <summary> | |||||
| /// Type of metrics to use for evaluation. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<string> MetricsSet { | |||||
| get { return metricsSet_; } | |||||
| } | |||||
| /// <summary>Field number for the "export_path" field.</summary> | |||||
| public const int ExportPathFieldNumber = 9; | |||||
| private string exportPath_ = ""; | |||||
| /// <summary> | |||||
| /// Path to export detections to COCO compatible JSON format. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string ExportPath { | |||||
| get { return exportPath_; } | |||||
| set { | |||||
| exportPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "ignore_groundtruth" field.</summary> | |||||
| public const int IgnoreGroundtruthFieldNumber = 10; | |||||
| private bool ignoreGroundtruth_; | |||||
| /// <summary> | |||||
| /// Option to not read groundtruth labels and only export detections to | |||||
| /// COCO-compatible JSON file. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool IgnoreGroundtruth { | |||||
| get { return ignoreGroundtruth_; } | |||||
| set { | |||||
| ignoreGroundtruth_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "use_moving_averages" field.</summary> | |||||
| public const int UseMovingAveragesFieldNumber = 11; | |||||
| private bool useMovingAverages_; | |||||
| /// <summary> | |||||
| /// Use exponential moving averages of variables for evaluation. | |||||
| /// TODO(rathodv): When this is false make sure the model is constructed | |||||
| /// without moving averages in restore_fn. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool UseMovingAverages { | |||||
| get { return useMovingAverages_; } | |||||
| set { | |||||
| useMovingAverages_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "eval_instance_masks" field.</summary> | |||||
| public const int EvalInstanceMasksFieldNumber = 12; | |||||
| private bool evalInstanceMasks_; | |||||
| /// <summary> | |||||
| /// Whether to evaluate instance masks. | |||||
| /// Note that since there is no evaluation code currently for instance | |||||
| /// segmenation this option is unused. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool EvalInstanceMasks { | |||||
| get { return evalInstanceMasks_; } | |||||
| set { | |||||
| evalInstanceMasks_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "min_score_threshold" field.</summary> | |||||
| public const int MinScoreThresholdFieldNumber = 13; | |||||
| private float minScoreThreshold_; | |||||
| /// <summary> | |||||
| /// Minimum score threshold for a detected object box to be visualized | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float MinScoreThreshold { | |||||
| get { return minScoreThreshold_; } | |||||
| set { | |||||
| minScoreThreshold_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_num_boxes_to_visualize" field.</summary> | |||||
| public const int MaxNumBoxesToVisualizeFieldNumber = 14; | |||||
| private int maxNumBoxesToVisualize_; | |||||
| /// <summary> | |||||
| /// Maximum number of detections to visualize | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MaxNumBoxesToVisualize { | |||||
| get { return maxNumBoxesToVisualize_; } | |||||
| set { | |||||
| maxNumBoxesToVisualize_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "skip_scores" field.</summary> | |||||
| public const int SkipScoresFieldNumber = 15; | |||||
| private bool skipScores_; | |||||
| /// <summary> | |||||
| /// When drawing a single detection, each label is by default visualized as | |||||
| /// <label name> : <label score>. One can skip the name or/and score using the | |||||
| /// following fields: | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool SkipScores { | |||||
| get { return skipScores_; } | |||||
| set { | |||||
| skipScores_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "skip_labels" field.</summary> | |||||
| public const int SkipLabelsFieldNumber = 16; | |||||
| private bool skipLabels_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool SkipLabels { | |||||
| get { return skipLabels_; } | |||||
| set { | |||||
| skipLabels_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "visualize_groundtruth_boxes" field.</summary> | |||||
| public const int VisualizeGroundtruthBoxesFieldNumber = 17; | |||||
| private bool visualizeGroundtruthBoxes_; | |||||
| /// <summary> | |||||
| /// Whether to show groundtruth boxes in addition to detected boxes in | |||||
| /// visualizations. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool VisualizeGroundtruthBoxes { | |||||
| get { return visualizeGroundtruthBoxes_; } | |||||
| set { | |||||
| visualizeGroundtruthBoxes_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "groundtruth_box_visualization_color" field.</summary> | |||||
| public const int GroundtruthBoxVisualizationColorFieldNumber = 18; | |||||
| private string groundtruthBoxVisualizationColor_ = ""; | |||||
| /// <summary> | |||||
| /// Box color for visualizing groundtruth boxes. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string GroundtruthBoxVisualizationColor { | |||||
| get { return groundtruthBoxVisualizationColor_; } | |||||
| set { | |||||
| groundtruthBoxVisualizationColor_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "keep_image_id_for_visualization_export" field.</summary> | |||||
| public const int KeepImageIdForVisualizationExportFieldNumber = 19; | |||||
| private bool keepImageIdForVisualizationExport_; | |||||
| /// <summary> | |||||
| /// Whether to keep image identifier in filename when exported to | |||||
| /// visualization_export_dir. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool KeepImageIdForVisualizationExport { | |||||
| get { return keepImageIdForVisualizationExport_; } | |||||
| set { | |||||
| keepImageIdForVisualizationExport_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "retain_original_images" field.</summary> | |||||
| public const int RetainOriginalImagesFieldNumber = 23; | |||||
| private bool retainOriginalImages_; | |||||
| /// <summary> | |||||
| /// Whether to retain original images (i.e. not pre-processed) in the tensor | |||||
| /// dictionary, so that they can be displayed in Tensorboard. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool RetainOriginalImages { | |||||
| get { return retainOriginalImages_; } | |||||
| set { | |||||
| retainOriginalImages_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "include_metrics_per_category" field.</summary> | |||||
| public const int IncludeMetricsPerCategoryFieldNumber = 24; | |||||
| private bool includeMetricsPerCategory_; | |||||
| /// <summary> | |||||
| /// If True, additionally include per-category metrics. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool IncludeMetricsPerCategory { | |||||
| get { return includeMetricsPerCategory_; } | |||||
| set { | |||||
| includeMetricsPerCategory_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "recall_lower_bound" field.</summary> | |||||
| public const int RecallLowerBoundFieldNumber = 26; | |||||
| private float recallLowerBound_; | |||||
| /// <summary> | |||||
| /// Recall range within which precision should be computed. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float RecallLowerBound { | |||||
| get { return recallLowerBound_; } | |||||
| set { | |||||
| recallLowerBound_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "recall_upper_bound" field.</summary> | |||||
| public const int RecallUpperBoundFieldNumber = 27; | |||||
| private float recallUpperBound_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float RecallUpperBound { | |||||
| get { return recallUpperBound_; } | |||||
| set { | |||||
| recallUpperBound_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as EvalConfig); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(EvalConfig other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (BatchSize != other.BatchSize) return false; | |||||
| if (NumVisualizations != other.NumVisualizations) return false; | |||||
| if (NumExamples != other.NumExamples) return false; | |||||
| if (EvalIntervalSecs != other.EvalIntervalSecs) return false; | |||||
| if (MaxEvals != other.MaxEvals) return false; | |||||
| if (SaveGraph != other.SaveGraph) return false; | |||||
| if (VisualizationExportDir != other.VisualizationExportDir) return false; | |||||
| if (EvalMaster != other.EvalMaster) return false; | |||||
| if(!metricsSet_.Equals(other.metricsSet_)) return false; | |||||
| if (ExportPath != other.ExportPath) return false; | |||||
| if (IgnoreGroundtruth != other.IgnoreGroundtruth) return false; | |||||
| if (UseMovingAverages != other.UseMovingAverages) return false; | |||||
| if (EvalInstanceMasks != other.EvalInstanceMasks) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MinScoreThreshold, other.MinScoreThreshold)) return false; | |||||
| if (MaxNumBoxesToVisualize != other.MaxNumBoxesToVisualize) return false; | |||||
| if (SkipScores != other.SkipScores) return false; | |||||
| if (SkipLabels != other.SkipLabels) return false; | |||||
| if (VisualizeGroundtruthBoxes != other.VisualizeGroundtruthBoxes) return false; | |||||
| if (GroundtruthBoxVisualizationColor != other.GroundtruthBoxVisualizationColor) return false; | |||||
| if (KeepImageIdForVisualizationExport != other.KeepImageIdForVisualizationExport) return false; | |||||
| if (RetainOriginalImages != other.RetainOriginalImages) return false; | |||||
| if (IncludeMetricsPerCategory != other.IncludeMetricsPerCategory) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(RecallLowerBound, other.RecallLowerBound)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(RecallUpperBound, other.RecallUpperBound)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (BatchSize != 0) hash ^= BatchSize.GetHashCode(); | |||||
| if (NumVisualizations != 0) hash ^= NumVisualizations.GetHashCode(); | |||||
| if (NumExamples != 0) hash ^= NumExamples.GetHashCode(); | |||||
| if (EvalIntervalSecs != 0) hash ^= EvalIntervalSecs.GetHashCode(); | |||||
| if (MaxEvals != 0) hash ^= MaxEvals.GetHashCode(); | |||||
| if (SaveGraph != false) hash ^= SaveGraph.GetHashCode(); | |||||
| if (VisualizationExportDir.Length != 0) hash ^= VisualizationExportDir.GetHashCode(); | |||||
| if (EvalMaster.Length != 0) hash ^= EvalMaster.GetHashCode(); | |||||
| hash ^= metricsSet_.GetHashCode(); | |||||
| if (ExportPath.Length != 0) hash ^= ExportPath.GetHashCode(); | |||||
| if (IgnoreGroundtruth != false) hash ^= IgnoreGroundtruth.GetHashCode(); | |||||
| if (UseMovingAverages != false) hash ^= UseMovingAverages.GetHashCode(); | |||||
| if (EvalInstanceMasks != false) hash ^= EvalInstanceMasks.GetHashCode(); | |||||
| if (MinScoreThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MinScoreThreshold); | |||||
| if (MaxNumBoxesToVisualize != 0) hash ^= MaxNumBoxesToVisualize.GetHashCode(); | |||||
| if (SkipScores != false) hash ^= SkipScores.GetHashCode(); | |||||
| if (SkipLabels != false) hash ^= SkipLabels.GetHashCode(); | |||||
| if (VisualizeGroundtruthBoxes != false) hash ^= VisualizeGroundtruthBoxes.GetHashCode(); | |||||
| if (GroundtruthBoxVisualizationColor.Length != 0) hash ^= GroundtruthBoxVisualizationColor.GetHashCode(); | |||||
| if (KeepImageIdForVisualizationExport != false) hash ^= KeepImageIdForVisualizationExport.GetHashCode(); | |||||
| if (RetainOriginalImages != false) hash ^= RetainOriginalImages.GetHashCode(); | |||||
| if (IncludeMetricsPerCategory != false) hash ^= IncludeMetricsPerCategory.GetHashCode(); | |||||
| if (RecallLowerBound != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(RecallLowerBound); | |||||
| if (RecallUpperBound != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(RecallUpperBound); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (NumVisualizations != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteUInt32(NumVisualizations); | |||||
| } | |||||
| if (NumExamples != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteUInt32(NumExamples); | |||||
| } | |||||
| if (EvalIntervalSecs != 0) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteUInt32(EvalIntervalSecs); | |||||
| } | |||||
| if (MaxEvals != 0) { | |||||
| output.WriteRawTag(32); | |||||
| output.WriteUInt32(MaxEvals); | |||||
| } | |||||
| if (SaveGraph != false) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteBool(SaveGraph); | |||||
| } | |||||
| if (VisualizationExportDir.Length != 0) { | |||||
| output.WriteRawTag(50); | |||||
| output.WriteString(VisualizationExportDir); | |||||
| } | |||||
| if (EvalMaster.Length != 0) { | |||||
| output.WriteRawTag(58); | |||||
| output.WriteString(EvalMaster); | |||||
| } | |||||
| metricsSet_.WriteTo(output, _repeated_metricsSet_codec); | |||||
| if (ExportPath.Length != 0) { | |||||
| output.WriteRawTag(74); | |||||
| output.WriteString(ExportPath); | |||||
| } | |||||
| if (IgnoreGroundtruth != false) { | |||||
| output.WriteRawTag(80); | |||||
| output.WriteBool(IgnoreGroundtruth); | |||||
| } | |||||
| if (UseMovingAverages != false) { | |||||
| output.WriteRawTag(88); | |||||
| output.WriteBool(UseMovingAverages); | |||||
| } | |||||
| if (EvalInstanceMasks != false) { | |||||
| output.WriteRawTag(96); | |||||
| output.WriteBool(EvalInstanceMasks); | |||||
| } | |||||
| if (MinScoreThreshold != 0F) { | |||||
| output.WriteRawTag(109); | |||||
| output.WriteFloat(MinScoreThreshold); | |||||
| } | |||||
| if (MaxNumBoxesToVisualize != 0) { | |||||
| output.WriteRawTag(112); | |||||
| output.WriteInt32(MaxNumBoxesToVisualize); | |||||
| } | |||||
| if (SkipScores != false) { | |||||
| output.WriteRawTag(120); | |||||
| output.WriteBool(SkipScores); | |||||
| } | |||||
| if (SkipLabels != false) { | |||||
| output.WriteRawTag(128, 1); | |||||
| output.WriteBool(SkipLabels); | |||||
| } | |||||
| if (VisualizeGroundtruthBoxes != false) { | |||||
| output.WriteRawTag(136, 1); | |||||
| output.WriteBool(VisualizeGroundtruthBoxes); | |||||
| } | |||||
| if (GroundtruthBoxVisualizationColor.Length != 0) { | |||||
| output.WriteRawTag(146, 1); | |||||
| output.WriteString(GroundtruthBoxVisualizationColor); | |||||
| } | |||||
| if (KeepImageIdForVisualizationExport != false) { | |||||
| output.WriteRawTag(152, 1); | |||||
| output.WriteBool(KeepImageIdForVisualizationExport); | |||||
| } | |||||
| if (RetainOriginalImages != false) { | |||||
| output.WriteRawTag(184, 1); | |||||
| output.WriteBool(RetainOriginalImages); | |||||
| } | |||||
| if (IncludeMetricsPerCategory != false) { | |||||
| output.WriteRawTag(192, 1); | |||||
| output.WriteBool(IncludeMetricsPerCategory); | |||||
| } | |||||
| if (BatchSize != 0) { | |||||
| output.WriteRawTag(200, 1); | |||||
| output.WriteUInt32(BatchSize); | |||||
| } | |||||
| if (RecallLowerBound != 0F) { | |||||
| output.WriteRawTag(213, 1); | |||||
| output.WriteFloat(RecallLowerBound); | |||||
| } | |||||
| if (RecallUpperBound != 0F) { | |||||
| output.WriteRawTag(221, 1); | |||||
| output.WriteFloat(RecallUpperBound); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (BatchSize != 0) { | |||||
| size += 2 + pb::CodedOutputStream.ComputeUInt32Size(BatchSize); | |||||
| } | |||||
| if (NumVisualizations != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(NumVisualizations); | |||||
| } | |||||
| if (NumExamples != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(NumExamples); | |||||
| } | |||||
| if (EvalIntervalSecs != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(EvalIntervalSecs); | |||||
| } | |||||
| if (MaxEvals != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MaxEvals); | |||||
| } | |||||
| if (SaveGraph != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (VisualizationExportDir.Length != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeStringSize(VisualizationExportDir); | |||||
| } | |||||
| if (EvalMaster.Length != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeStringSize(EvalMaster); | |||||
| } | |||||
| size += metricsSet_.CalculateSize(_repeated_metricsSet_codec); | |||||
| if (ExportPath.Length != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeStringSize(ExportPath); | |||||
| } | |||||
| if (IgnoreGroundtruth != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (UseMovingAverages != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (EvalInstanceMasks != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (MinScoreThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (MaxNumBoxesToVisualize != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxNumBoxesToVisualize); | |||||
| } | |||||
| if (SkipScores != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (SkipLabels != false) { | |||||
| size += 2 + 1; | |||||
| } | |||||
| if (VisualizeGroundtruthBoxes != false) { | |||||
| size += 2 + 1; | |||||
| } | |||||
| if (GroundtruthBoxVisualizationColor.Length != 0) { | |||||
| size += 2 + pb::CodedOutputStream.ComputeStringSize(GroundtruthBoxVisualizationColor); | |||||
| } | |||||
| if (KeepImageIdForVisualizationExport != false) { | |||||
| size += 2 + 1; | |||||
| } | |||||
| if (RetainOriginalImages != false) { | |||||
| size += 2 + 1; | |||||
| } | |||||
| if (IncludeMetricsPerCategory != false) { | |||||
| size += 2 + 1; | |||||
| } | |||||
| if (RecallLowerBound != 0F) { | |||||
| size += 2 + 4; | |||||
| } | |||||
| if (RecallUpperBound != 0F) { | |||||
| size += 2 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(EvalConfig other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.BatchSize != 0) { | |||||
| BatchSize = other.BatchSize; | |||||
| } | |||||
| if (other.NumVisualizations != 0) { | |||||
| NumVisualizations = other.NumVisualizations; | |||||
| } | |||||
| if (other.NumExamples != 0) { | |||||
| NumExamples = other.NumExamples; | |||||
| } | |||||
| if (other.EvalIntervalSecs != 0) { | |||||
| EvalIntervalSecs = other.EvalIntervalSecs; | |||||
| } | |||||
| if (other.MaxEvals != 0) { | |||||
| MaxEvals = other.MaxEvals; | |||||
| } | |||||
| if (other.SaveGraph != false) { | |||||
| SaveGraph = other.SaveGraph; | |||||
| } | |||||
| if (other.VisualizationExportDir.Length != 0) { | |||||
| VisualizationExportDir = other.VisualizationExportDir; | |||||
| } | |||||
| if (other.EvalMaster.Length != 0) { | |||||
| EvalMaster = other.EvalMaster; | |||||
| } | |||||
| metricsSet_.Add(other.metricsSet_); | |||||
| if (other.ExportPath.Length != 0) { | |||||
| ExportPath = other.ExportPath; | |||||
| } | |||||
| if (other.IgnoreGroundtruth != false) { | |||||
| IgnoreGroundtruth = other.IgnoreGroundtruth; | |||||
| } | |||||
| if (other.UseMovingAverages != false) { | |||||
| UseMovingAverages = other.UseMovingAverages; | |||||
| } | |||||
| if (other.EvalInstanceMasks != false) { | |||||
| EvalInstanceMasks = other.EvalInstanceMasks; | |||||
| } | |||||
| if (other.MinScoreThreshold != 0F) { | |||||
| MinScoreThreshold = other.MinScoreThreshold; | |||||
| } | |||||
| if (other.MaxNumBoxesToVisualize != 0) { | |||||
| MaxNumBoxesToVisualize = other.MaxNumBoxesToVisualize; | |||||
| } | |||||
| if (other.SkipScores != false) { | |||||
| SkipScores = other.SkipScores; | |||||
| } | |||||
| if (other.SkipLabels != false) { | |||||
| SkipLabels = other.SkipLabels; | |||||
| } | |||||
| if (other.VisualizeGroundtruthBoxes != false) { | |||||
| VisualizeGroundtruthBoxes = other.VisualizeGroundtruthBoxes; | |||||
| } | |||||
| if (other.GroundtruthBoxVisualizationColor.Length != 0) { | |||||
| GroundtruthBoxVisualizationColor = other.GroundtruthBoxVisualizationColor; | |||||
| } | |||||
| if (other.KeepImageIdForVisualizationExport != false) { | |||||
| KeepImageIdForVisualizationExport = other.KeepImageIdForVisualizationExport; | |||||
| } | |||||
| if (other.RetainOriginalImages != false) { | |||||
| RetainOriginalImages = other.RetainOriginalImages; | |||||
| } | |||||
| if (other.IncludeMetricsPerCategory != false) { | |||||
| IncludeMetricsPerCategory = other.IncludeMetricsPerCategory; | |||||
| } | |||||
| if (other.RecallLowerBound != 0F) { | |||||
| RecallLowerBound = other.RecallLowerBound; | |||||
| } | |||||
| if (other.RecallUpperBound != 0F) { | |||||
| RecallUpperBound = other.RecallUpperBound; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| NumVisualizations = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| NumExamples = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| EvalIntervalSecs = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 32: { | |||||
| MaxEvals = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| SaveGraph = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 50: { | |||||
| VisualizationExportDir = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| case 58: { | |||||
| EvalMaster = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| case 66: { | |||||
| metricsSet_.AddEntriesFrom(input, _repeated_metricsSet_codec); | |||||
| break; | |||||
| } | |||||
| case 74: { | |||||
| ExportPath = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| case 80: { | |||||
| IgnoreGroundtruth = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 88: { | |||||
| UseMovingAverages = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 96: { | |||||
| EvalInstanceMasks = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 109: { | |||||
| MinScoreThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 112: { | |||||
| MaxNumBoxesToVisualize = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 120: { | |||||
| SkipScores = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 128: { | |||||
| SkipLabels = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 136: { | |||||
| VisualizeGroundtruthBoxes = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 146: { | |||||
| GroundtruthBoxVisualizationColor = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| case 152: { | |||||
| KeepImageIdForVisualizationExport = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 184: { | |||||
| RetainOriginalImages = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 192: { | |||||
| IncludeMetricsPerCategory = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 200: { | |||||
| BatchSize = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 213: { | |||||
| RecallLowerBound = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 221: { | |||||
| RecallUpperBound = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,272 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/faster_rcnn_box_coder.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/faster_rcnn_box_coder.proto</summary> | |||||
| public static partial class FasterRcnnBoxCoderReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/faster_rcnn_box_coder.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static FasterRcnnBoxCoderReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9mYXN0ZXJfcmNubl9ib3hfY29k", | |||||
| "ZXIucHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zImEKEkZhc3RlclJj", | |||||
| "bm5Cb3hDb2RlchIPCgd5X3NjYWxlGAEgASgCEg8KB3hfc2NhbGUYAiABKAIS", | |||||
| "FAoMaGVpZ2h0X3NjYWxlGAMgASgCEhMKC3dpZHRoX3NjYWxlGAQgASgCYgZw", | |||||
| "cm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder), global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoder.Parser, new[]{ "YScale", "XScale", "HeightScale", "WidthScale" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for FasterRCNNBoxCoder. See | |||||
| /// box_coders/faster_rcnn_box_coder.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class FasterRcnnBoxCoder : pb::IMessage<FasterRcnnBoxCoder> { | |||||
| private static readonly pb::MessageParser<FasterRcnnBoxCoder> _parser = new pb::MessageParser<FasterRcnnBoxCoder>(() => new FasterRcnnBoxCoder()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<FasterRcnnBoxCoder> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnBoxCoderReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FasterRcnnBoxCoder() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FasterRcnnBoxCoder(FasterRcnnBoxCoder other) : this() { | |||||
| yScale_ = other.yScale_; | |||||
| xScale_ = other.xScale_; | |||||
| heightScale_ = other.heightScale_; | |||||
| widthScale_ = other.widthScale_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FasterRcnnBoxCoder Clone() { | |||||
| return new FasterRcnnBoxCoder(this); | |||||
| } | |||||
| /// <summary>Field number for the "y_scale" field.</summary> | |||||
| public const int YScaleFieldNumber = 1; | |||||
| private float yScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box center. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float YScale { | |||||
| get { return yScale_; } | |||||
| set { | |||||
| yScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "x_scale" field.</summary> | |||||
| public const int XScaleFieldNumber = 2; | |||||
| private float xScale_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float XScale { | |||||
| get { return xScale_; } | |||||
| set { | |||||
| xScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_scale" field.</summary> | |||||
| public const int HeightScaleFieldNumber = 3; | |||||
| private float heightScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box height. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float HeightScale { | |||||
| get { return heightScale_; } | |||||
| set { | |||||
| heightScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_scale" field.</summary> | |||||
| public const int WidthScaleFieldNumber = 4; | |||||
| private float widthScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box width. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float WidthScale { | |||||
| get { return widthScale_; } | |||||
| set { | |||||
| widthScale_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as FasterRcnnBoxCoder); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(FasterRcnnBoxCoder other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(YScale, other.YScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(XScale, other.XScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(HeightScale, other.HeightScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WidthScale, other.WidthScale)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (YScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(YScale); | |||||
| if (XScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(XScale); | |||||
| if (HeightScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(HeightScale); | |||||
| if (WidthScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WidthScale); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (YScale != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(YScale); | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(XScale); | |||||
| } | |||||
| if (HeightScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(HeightScale); | |||||
| } | |||||
| if (WidthScale != 0F) { | |||||
| output.WriteRawTag(37); | |||||
| output.WriteFloat(WidthScale); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (YScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (HeightScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (WidthScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(FasterRcnnBoxCoder other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.YScale != 0F) { | |||||
| YScale = other.YScale; | |||||
| } | |||||
| if (other.XScale != 0F) { | |||||
| XScale = other.XScale; | |||||
| } | |||||
| if (other.HeightScale != 0F) { | |||||
| HeightScale = other.HeightScale; | |||||
| } | |||||
| if (other.WidthScale != 0F) { | |||||
| WidthScale = other.WidthScale; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| YScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| XScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| HeightScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 37: { | |||||
| WidthScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,476 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/flexible_grid_anchor_generator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/flexible_grid_anchor_generator.proto</summary> | |||||
| public static partial class FlexibleGridAnchorGeneratorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/flexible_grid_anchor_generator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static FlexibleGridAnchorGeneratorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjxvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9mbGV4aWJsZV9ncmlkX2FuY2hv", | |||||
| "cl9nZW5lcmF0b3IucHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zInYK", | |||||
| "G0ZsZXhpYmxlR3JpZEFuY2hvckdlbmVyYXRvchI4CgthbmNob3JfZ3JpZBgB", | |||||
| "IAMoCzIjLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLkFuY2hvckdyaWQSHQoV", | |||||
| "bm9ybWFsaXplX2Nvb3JkaW5hdGVzGAIgASgIIpEBCgpBbmNob3JHcmlkEhIK", | |||||
| "CmJhc2Vfc2l6ZXMYASADKAISFQoNYXNwZWN0X3JhdGlvcxgCIAMoAhIVCg1o", | |||||
| "ZWlnaHRfc3RyaWRlGAMgASgNEhQKDHdpZHRoX3N0cmlkZRgEIAEoDRIVCg1o", | |||||
| "ZWlnaHRfb2Zmc2V0GAUgASgNEhQKDHdpZHRoX29mZnNldBgGIAEoDWIGcHJv", | |||||
| "dG8z")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator), global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator.Parser, new[]{ "AnchorGrid", "NormalizeCoordinates" }, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid), global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid.Parser, new[]{ "BaseSizes", "AspectRatios", "HeightStride", "WidthStride", "HeightOffset", "WidthOffset" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| public sealed partial class FlexibleGridAnchorGenerator : pb::IMessage<FlexibleGridAnchorGenerator> { | |||||
| private static readonly pb::MessageParser<FlexibleGridAnchorGenerator> _parser = new pb::MessageParser<FlexibleGridAnchorGenerator>(() => new FlexibleGridAnchorGenerator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<FlexibleGridAnchorGenerator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGeneratorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FlexibleGridAnchorGenerator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FlexibleGridAnchorGenerator(FlexibleGridAnchorGenerator other) : this() { | |||||
| anchorGrid_ = other.anchorGrid_.Clone(); | |||||
| normalizeCoordinates_ = other.normalizeCoordinates_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public FlexibleGridAnchorGenerator Clone() { | |||||
| return new FlexibleGridAnchorGenerator(this); | |||||
| } | |||||
| /// <summary>Field number for the "anchor_grid" field.</summary> | |||||
| public const int AnchorGridFieldNumber = 1; | |||||
| private static readonly pb::FieldCodec<global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid> _repeated_anchorGrid_codec | |||||
| = pb::FieldCodec.ForMessage(10, global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid.Parser); | |||||
| private readonly pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid> anchorGrid_ = new pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid>(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.AnchorGrid> AnchorGrid { | |||||
| get { return anchorGrid_; } | |||||
| } | |||||
| /// <summary>Field number for the "normalize_coordinates" field.</summary> | |||||
| public const int NormalizeCoordinatesFieldNumber = 2; | |||||
| private bool normalizeCoordinates_; | |||||
| /// <summary> | |||||
| /// Whether to produce anchors in normalized coordinates. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool NormalizeCoordinates { | |||||
| get { return normalizeCoordinates_; } | |||||
| set { | |||||
| normalizeCoordinates_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as FlexibleGridAnchorGenerator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(FlexibleGridAnchorGenerator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if(!anchorGrid_.Equals(other.anchorGrid_)) return false; | |||||
| if (NormalizeCoordinates != other.NormalizeCoordinates) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| hash ^= anchorGrid_.GetHashCode(); | |||||
| if (NormalizeCoordinates != false) hash ^= NormalizeCoordinates.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| anchorGrid_.WriteTo(output, _repeated_anchorGrid_codec); | |||||
| if (NormalizeCoordinates != false) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteBool(NormalizeCoordinates); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| size += anchorGrid_.CalculateSize(_repeated_anchorGrid_codec); | |||||
| if (NormalizeCoordinates != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(FlexibleGridAnchorGenerator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| anchorGrid_.Add(other.anchorGrid_); | |||||
| if (other.NormalizeCoordinates != false) { | |||||
| NormalizeCoordinates = other.NormalizeCoordinates; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| anchorGrid_.AddEntriesFrom(input, _repeated_anchorGrid_codec); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| NormalizeCoordinates = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| public sealed partial class AnchorGrid : pb::IMessage<AnchorGrid> { | |||||
| private static readonly pb::MessageParser<AnchorGrid> _parser = new pb::MessageParser<AnchorGrid>(() => new AnchorGrid()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<AnchorGrid> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGeneratorReflection.Descriptor.MessageTypes[1]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGrid() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGrid(AnchorGrid other) : this() { | |||||
| baseSizes_ = other.baseSizes_.Clone(); | |||||
| aspectRatios_ = other.aspectRatios_.Clone(); | |||||
| heightStride_ = other.heightStride_; | |||||
| widthStride_ = other.widthStride_; | |||||
| heightOffset_ = other.heightOffset_; | |||||
| widthOffset_ = other.widthOffset_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public AnchorGrid Clone() { | |||||
| return new AnchorGrid(this); | |||||
| } | |||||
| /// <summary>Field number for the "base_sizes" field.</summary> | |||||
| public const int BaseSizesFieldNumber = 1; | |||||
| private static readonly pb::FieldCodec<float> _repeated_baseSizes_codec | |||||
| = pb::FieldCodec.ForFloat(10); | |||||
| private readonly pbc::RepeatedField<float> baseSizes_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// The base sizes in pixels for each anchor in this anchor layer. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> BaseSizes { | |||||
| get { return baseSizes_; } | |||||
| } | |||||
| /// <summary>Field number for the "aspect_ratios" field.</summary> | |||||
| public const int AspectRatiosFieldNumber = 2; | |||||
| private static readonly pb::FieldCodec<float> _repeated_aspectRatios_codec | |||||
| = pb::FieldCodec.ForFloat(18); | |||||
| private readonly pbc::RepeatedField<float> aspectRatios_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// The aspect ratios for each anchor in this anchor layer. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> AspectRatios { | |||||
| get { return aspectRatios_; } | |||||
| } | |||||
| /// <summary>Field number for the "height_stride" field.</summary> | |||||
| public const int HeightStrideFieldNumber = 3; | |||||
| private uint heightStride_; | |||||
| /// <summary> | |||||
| /// The anchor height stride in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint HeightStride { | |||||
| get { return heightStride_; } | |||||
| set { | |||||
| heightStride_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_stride" field.</summary> | |||||
| public const int WidthStrideFieldNumber = 4; | |||||
| private uint widthStride_; | |||||
| /// <summary> | |||||
| /// The anchor width stride in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint WidthStride { | |||||
| get { return widthStride_; } | |||||
| set { | |||||
| widthStride_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_offset" field.</summary> | |||||
| public const int HeightOffsetFieldNumber = 5; | |||||
| private uint heightOffset_; | |||||
| /// <summary> | |||||
| /// The anchor height offset in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint HeightOffset { | |||||
| get { return heightOffset_; } | |||||
| set { | |||||
| heightOffset_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_offset" field.</summary> | |||||
| public const int WidthOffsetFieldNumber = 6; | |||||
| private uint widthOffset_; | |||||
| /// <summary> | |||||
| /// The anchor width offset in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public uint WidthOffset { | |||||
| get { return widthOffset_; } | |||||
| set { | |||||
| widthOffset_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as AnchorGrid); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(AnchorGrid other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if(!baseSizes_.Equals(other.baseSizes_)) return false; | |||||
| if(!aspectRatios_.Equals(other.aspectRatios_)) return false; | |||||
| if (HeightStride != other.HeightStride) return false; | |||||
| if (WidthStride != other.WidthStride) return false; | |||||
| if (HeightOffset != other.HeightOffset) return false; | |||||
| if (WidthOffset != other.WidthOffset) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| hash ^= baseSizes_.GetHashCode(); | |||||
| hash ^= aspectRatios_.GetHashCode(); | |||||
| if (HeightStride != 0) hash ^= HeightStride.GetHashCode(); | |||||
| if (WidthStride != 0) hash ^= WidthStride.GetHashCode(); | |||||
| if (HeightOffset != 0) hash ^= HeightOffset.GetHashCode(); | |||||
| if (WidthOffset != 0) hash ^= WidthOffset.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| baseSizes_.WriteTo(output, _repeated_baseSizes_codec); | |||||
| aspectRatios_.WriteTo(output, _repeated_aspectRatios_codec); | |||||
| if (HeightStride != 0) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteUInt32(HeightStride); | |||||
| } | |||||
| if (WidthStride != 0) { | |||||
| output.WriteRawTag(32); | |||||
| output.WriteUInt32(WidthStride); | |||||
| } | |||||
| if (HeightOffset != 0) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteUInt32(HeightOffset); | |||||
| } | |||||
| if (WidthOffset != 0) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteUInt32(WidthOffset); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| size += baseSizes_.CalculateSize(_repeated_baseSizes_codec); | |||||
| size += aspectRatios_.CalculateSize(_repeated_aspectRatios_codec); | |||||
| if (HeightStride != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HeightStride); | |||||
| } | |||||
| if (WidthStride != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(WidthStride); | |||||
| } | |||||
| if (HeightOffset != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(HeightOffset); | |||||
| } | |||||
| if (WidthOffset != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeUInt32Size(WidthOffset); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(AnchorGrid other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| baseSizes_.Add(other.baseSizes_); | |||||
| aspectRatios_.Add(other.aspectRatios_); | |||||
| if (other.HeightStride != 0) { | |||||
| HeightStride = other.HeightStride; | |||||
| } | |||||
| if (other.WidthStride != 0) { | |||||
| WidthStride = other.WidthStride; | |||||
| } | |||||
| if (other.HeightOffset != 0) { | |||||
| HeightOffset = other.HeightOffset; | |||||
| } | |||||
| if (other.WidthOffset != 0) { | |||||
| WidthOffset = other.WidthOffset; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: | |||||
| case 13: { | |||||
| baseSizes_.AddEntriesFrom(input, _repeated_baseSizes_codec); | |||||
| break; | |||||
| } | |||||
| case 18: | |||||
| case 21: { | |||||
| aspectRatios_.AddEntriesFrom(input, _repeated_aspectRatios_codec); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| HeightStride = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 32: { | |||||
| WidthStride = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| HeightOffset = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| case 48: { | |||||
| WidthOffset = input.ReadUInt32(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,417 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/graph_rewriter.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/graph_rewriter.proto</summary> | |||||
| public static partial class GraphRewriterReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/graph_rewriter.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static GraphRewriterReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CixvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9ncmFwaF9yZXdyaXRlci5wcm90", | |||||
| "bxIXb2JqZWN0X2RldGVjdGlvbi5wcm90b3MiTAoNR3JhcGhSZXdyaXRlchI7", | |||||
| "CgxxdWFudGl6YXRpb24YASABKAsyJS5vYmplY3RfZGV0ZWN0aW9uLnByb3Rv", | |||||
| "cy5RdWFudGl6YXRpb24iXgoMUXVhbnRpemF0aW9uEg0KBWRlbGF5GAEgASgF", | |||||
| "EhMKC3dlaWdodF9iaXRzGAIgASgFEhcKD2FjdGl2YXRpb25fYml0cxgDIAEo", | |||||
| "BRIRCglzeW1tZXRyaWMYBCABKAhiBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter), global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter.Parser, new[]{ "Quantization" }, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.Quantization), global::Tensorflow.Models.ObjectDetection.Protos.Quantization.Parser, new[]{ "Delay", "WeightBits", "ActivationBits", "Symmetric" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Message to configure graph rewriter for the tf graph. | |||||
| /// </summary> | |||||
| public sealed partial class GraphRewriter : pb::IMessage<GraphRewriter> { | |||||
| private static readonly pb::MessageParser<GraphRewriter> _parser = new pb::MessageParser<GraphRewriter>(() => new GraphRewriter()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<GraphRewriter> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriterReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GraphRewriter() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GraphRewriter(GraphRewriter other) : this() { | |||||
| quantization_ = other.quantization_ != null ? other.quantization_.Clone() : null; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GraphRewriter Clone() { | |||||
| return new GraphRewriter(this); | |||||
| } | |||||
| /// <summary>Field number for the "quantization" field.</summary> | |||||
| public const int QuantizationFieldNumber = 1; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.Quantization quantization_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.Quantization Quantization { | |||||
| get { return quantization_; } | |||||
| set { | |||||
| quantization_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as GraphRewriter); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(GraphRewriter other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(Quantization, other.Quantization)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (quantization_ != null) hash ^= Quantization.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (quantization_ != null) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(Quantization); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (quantization_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(Quantization); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(GraphRewriter other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.quantization_ != null) { | |||||
| if (quantization_ == null) { | |||||
| quantization_ = new global::Tensorflow.Models.ObjectDetection.Protos.Quantization(); | |||||
| } | |||||
| Quantization.MergeFrom(other.Quantization); | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| if (quantization_ == null) { | |||||
| quantization_ = new global::Tensorflow.Models.ObjectDetection.Protos.Quantization(); | |||||
| } | |||||
| input.ReadMessage(quantization_); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Message for quantization options. See | |||||
| /// tensorflow/contrib/quantize/python/quantize.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class Quantization : pb::IMessage<Quantization> { | |||||
| private static readonly pb::MessageParser<Quantization> _parser = new pb::MessageParser<Quantization>(() => new Quantization()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<Quantization> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriterReflection.Descriptor.MessageTypes[1]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Quantization() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Quantization(Quantization other) : this() { | |||||
| delay_ = other.delay_; | |||||
| weightBits_ = other.weightBits_; | |||||
| activationBits_ = other.activationBits_; | |||||
| symmetric_ = other.symmetric_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Quantization Clone() { | |||||
| return new Quantization(this); | |||||
| } | |||||
| /// <summary>Field number for the "delay" field.</summary> | |||||
| public const int DelayFieldNumber = 1; | |||||
| private int delay_; | |||||
| /// <summary> | |||||
| /// Number of steps to delay before quantization takes effect during training. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int Delay { | |||||
| get { return delay_; } | |||||
| set { | |||||
| delay_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "weight_bits" field.</summary> | |||||
| public const int WeightBitsFieldNumber = 2; | |||||
| private int weightBits_; | |||||
| /// <summary> | |||||
| /// Number of bits to use for quantizing weights. | |||||
| /// Only 8 bit is supported for now. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int WeightBits { | |||||
| get { return weightBits_; } | |||||
| set { | |||||
| weightBits_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "activation_bits" field.</summary> | |||||
| public const int ActivationBitsFieldNumber = 3; | |||||
| private int activationBits_; | |||||
| /// <summary> | |||||
| /// Number of bits to use for quantizing activations. | |||||
| /// Only 8 bit is supported for now. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int ActivationBits { | |||||
| get { return activationBits_; } | |||||
| set { | |||||
| activationBits_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "symmetric" field.</summary> | |||||
| public const int SymmetricFieldNumber = 4; | |||||
| private bool symmetric_; | |||||
| /// <summary> | |||||
| /// Whether to use symmetric weight quantization. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Symmetric { | |||||
| get { return symmetric_; } | |||||
| set { | |||||
| symmetric_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as Quantization); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(Quantization other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (Delay != other.Delay) return false; | |||||
| if (WeightBits != other.WeightBits) return false; | |||||
| if (ActivationBits != other.ActivationBits) return false; | |||||
| if (Symmetric != other.Symmetric) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (Delay != 0) hash ^= Delay.GetHashCode(); | |||||
| if (WeightBits != 0) hash ^= WeightBits.GetHashCode(); | |||||
| if (ActivationBits != 0) hash ^= ActivationBits.GetHashCode(); | |||||
| if (Symmetric != false) hash ^= Symmetric.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (Delay != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteInt32(Delay); | |||||
| } | |||||
| if (WeightBits != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteInt32(WeightBits); | |||||
| } | |||||
| if (ActivationBits != 0) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteInt32(ActivationBits); | |||||
| } | |||||
| if (Symmetric != false) { | |||||
| output.WriteRawTag(32); | |||||
| output.WriteBool(Symmetric); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (Delay != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(Delay); | |||||
| } | |||||
| if (WeightBits != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(WeightBits); | |||||
| } | |||||
| if (ActivationBits != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(ActivationBits); | |||||
| } | |||||
| if (Symmetric != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(Quantization other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.Delay != 0) { | |||||
| Delay = other.Delay; | |||||
| } | |||||
| if (other.WeightBits != 0) { | |||||
| WeightBits = other.WeightBits; | |||||
| } | |||||
| if (other.ActivationBits != 0) { | |||||
| ActivationBits = other.ActivationBits; | |||||
| } | |||||
| if (other.Symmetric != false) { | |||||
| Symmetric = other.Symmetric; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| Delay = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| WeightBits = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| ActivationBits = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 32: { | |||||
| Symmetric = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,386 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/grid_anchor_generator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/grid_anchor_generator.proto</summary> | |||||
| public static partial class GridAnchorGeneratorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/grid_anchor_generator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static GridAnchorGeneratorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9ncmlkX2FuY2hvcl9nZW5lcmF0", | |||||
| "b3IucHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zIrUBChNHcmlkQW5j", | |||||
| "aG9yR2VuZXJhdG9yEg4KBmhlaWdodBgBIAEoBRINCgV3aWR0aBgCIAEoBRIV", | |||||
| "Cg1oZWlnaHRfc3RyaWRlGAMgASgFEhQKDHdpZHRoX3N0cmlkZRgEIAEoBRIV", | |||||
| "Cg1oZWlnaHRfb2Zmc2V0GAUgASgFEhQKDHdpZHRoX29mZnNldBgGIAEoBRIO", | |||||
| "CgZzY2FsZXMYByADKAISFQoNYXNwZWN0X3JhdGlvcxgIIAMoAmIGcHJvdG8z")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator), global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator.Parser, new[]{ "Height", "Width", "HeightStride", "WidthStride", "HeightOffset", "WidthOffset", "Scales", "AspectRatios" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for GridAnchorGenerator. See | |||||
| /// anchor_generators/grid_anchor_generator.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class GridAnchorGenerator : pb::IMessage<GridAnchorGenerator> { | |||||
| private static readonly pb::MessageParser<GridAnchorGenerator> _parser = new pb::MessageParser<GridAnchorGenerator>(() => new GridAnchorGenerator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<GridAnchorGenerator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGeneratorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GridAnchorGenerator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GridAnchorGenerator(GridAnchorGenerator other) : this() { | |||||
| height_ = other.height_; | |||||
| width_ = other.width_; | |||||
| heightStride_ = other.heightStride_; | |||||
| widthStride_ = other.widthStride_; | |||||
| heightOffset_ = other.heightOffset_; | |||||
| widthOffset_ = other.widthOffset_; | |||||
| scales_ = other.scales_.Clone(); | |||||
| aspectRatios_ = other.aspectRatios_.Clone(); | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public GridAnchorGenerator Clone() { | |||||
| return new GridAnchorGenerator(this); | |||||
| } | |||||
| /// <summary>Field number for the "height" field.</summary> | |||||
| public const int HeightFieldNumber = 1; | |||||
| private int height_; | |||||
| /// <summary> | |||||
| /// Anchor height in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int Height { | |||||
| get { return height_; } | |||||
| set { | |||||
| height_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width" field.</summary> | |||||
| public const int WidthFieldNumber = 2; | |||||
| private int width_; | |||||
| /// <summary> | |||||
| /// Anchor width in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int Width { | |||||
| get { return width_; } | |||||
| set { | |||||
| width_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_stride" field.</summary> | |||||
| public const int HeightStrideFieldNumber = 3; | |||||
| private int heightStride_; | |||||
| /// <summary> | |||||
| /// Anchor stride in height dimension in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int HeightStride { | |||||
| get { return heightStride_; } | |||||
| set { | |||||
| heightStride_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_stride" field.</summary> | |||||
| public const int WidthStrideFieldNumber = 4; | |||||
| private int widthStride_; | |||||
| /// <summary> | |||||
| /// Anchor stride in width dimension in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int WidthStride { | |||||
| get { return widthStride_; } | |||||
| set { | |||||
| widthStride_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_offset" field.</summary> | |||||
| public const int HeightOffsetFieldNumber = 5; | |||||
| private int heightOffset_; | |||||
| /// <summary> | |||||
| /// Anchor height offset in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int HeightOffset { | |||||
| get { return heightOffset_; } | |||||
| set { | |||||
| heightOffset_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_offset" field.</summary> | |||||
| public const int WidthOffsetFieldNumber = 6; | |||||
| private int widthOffset_; | |||||
| /// <summary> | |||||
| /// Anchor width offset in pixels. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int WidthOffset { | |||||
| get { return widthOffset_; } | |||||
| set { | |||||
| widthOffset_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "scales" field.</summary> | |||||
| public const int ScalesFieldNumber = 7; | |||||
| private static readonly pb::FieldCodec<float> _repeated_scales_codec | |||||
| = pb::FieldCodec.ForFloat(58); | |||||
| private readonly pbc::RepeatedField<float> scales_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// List of scales for the anchors. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> Scales { | |||||
| get { return scales_; } | |||||
| } | |||||
| /// <summary>Field number for the "aspect_ratios" field.</summary> | |||||
| public const int AspectRatiosFieldNumber = 8; | |||||
| private static readonly pb::FieldCodec<float> _repeated_aspectRatios_codec | |||||
| = pb::FieldCodec.ForFloat(66); | |||||
| private readonly pbc::RepeatedField<float> aspectRatios_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// List of aspect ratios for the anchors. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> AspectRatios { | |||||
| get { return aspectRatios_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as GridAnchorGenerator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(GridAnchorGenerator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (Height != other.Height) return false; | |||||
| if (Width != other.Width) return false; | |||||
| if (HeightStride != other.HeightStride) return false; | |||||
| if (WidthStride != other.WidthStride) return false; | |||||
| if (HeightOffset != other.HeightOffset) return false; | |||||
| if (WidthOffset != other.WidthOffset) return false; | |||||
| if(!scales_.Equals(other.scales_)) return false; | |||||
| if(!aspectRatios_.Equals(other.aspectRatios_)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (Height != 0) hash ^= Height.GetHashCode(); | |||||
| if (Width != 0) hash ^= Width.GetHashCode(); | |||||
| if (HeightStride != 0) hash ^= HeightStride.GetHashCode(); | |||||
| if (WidthStride != 0) hash ^= WidthStride.GetHashCode(); | |||||
| if (HeightOffset != 0) hash ^= HeightOffset.GetHashCode(); | |||||
| if (WidthOffset != 0) hash ^= WidthOffset.GetHashCode(); | |||||
| hash ^= scales_.GetHashCode(); | |||||
| hash ^= aspectRatios_.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (Height != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteInt32(Height); | |||||
| } | |||||
| if (Width != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteInt32(Width); | |||||
| } | |||||
| if (HeightStride != 0) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteInt32(HeightStride); | |||||
| } | |||||
| if (WidthStride != 0) { | |||||
| output.WriteRawTag(32); | |||||
| output.WriteInt32(WidthStride); | |||||
| } | |||||
| if (HeightOffset != 0) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteInt32(HeightOffset); | |||||
| } | |||||
| if (WidthOffset != 0) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteInt32(WidthOffset); | |||||
| } | |||||
| scales_.WriteTo(output, _repeated_scales_codec); | |||||
| aspectRatios_.WriteTo(output, _repeated_aspectRatios_codec); | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (Height != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(Height); | |||||
| } | |||||
| if (Width != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(Width); | |||||
| } | |||||
| if (HeightStride != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(HeightStride); | |||||
| } | |||||
| if (WidthStride != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(WidthStride); | |||||
| } | |||||
| if (HeightOffset != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(HeightOffset); | |||||
| } | |||||
| if (WidthOffset != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(WidthOffset); | |||||
| } | |||||
| size += scales_.CalculateSize(_repeated_scales_codec); | |||||
| size += aspectRatios_.CalculateSize(_repeated_aspectRatios_codec); | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(GridAnchorGenerator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.Height != 0) { | |||||
| Height = other.Height; | |||||
| } | |||||
| if (other.Width != 0) { | |||||
| Width = other.Width; | |||||
| } | |||||
| if (other.HeightStride != 0) { | |||||
| HeightStride = other.HeightStride; | |||||
| } | |||||
| if (other.WidthStride != 0) { | |||||
| WidthStride = other.WidthStride; | |||||
| } | |||||
| if (other.HeightOffset != 0) { | |||||
| HeightOffset = other.HeightOffset; | |||||
| } | |||||
| if (other.WidthOffset != 0) { | |||||
| WidthOffset = other.WidthOffset; | |||||
| } | |||||
| scales_.Add(other.scales_); | |||||
| aspectRatios_.Add(other.aspectRatios_); | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| Height = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| Width = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| HeightStride = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 32: { | |||||
| WidthStride = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| HeightOffset = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 48: { | |||||
| WidthOffset = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 58: | |||||
| case 61: { | |||||
| scales_.AddEntriesFrom(input, _repeated_scales_codec); | |||||
| break; | |||||
| } | |||||
| case 66: | |||||
| case 69: { | |||||
| aspectRatios_.AddEntriesFrom(input, _repeated_aspectRatios_codec); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,300 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/keypoint_box_coder.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/keypoint_box_coder.proto</summary> | |||||
| public static partial class KeypointBoxCoderReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/keypoint_box_coder.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static KeypointBoxCoderReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjBvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9rZXlwb2ludF9ib3hfY29kZXIu", | |||||
| "cHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zInYKEEtleXBvaW50Qm94", | |||||
| "Q29kZXISFQoNbnVtX2tleXBvaW50cxgBIAEoBRIPCgd5X3NjYWxlGAIgASgC", | |||||
| "Eg8KB3hfc2NhbGUYAyABKAISFAoMaGVpZ2h0X3NjYWxlGAQgASgCEhMKC3dp", | |||||
| "ZHRoX3NjYWxlGAUgASgCYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder), global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoder.Parser, new[]{ "NumKeypoints", "YScale", "XScale", "HeightScale", "WidthScale" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for KeypointBoxCoder. See | |||||
| /// box_coders/keypoint_box_coder.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class KeypointBoxCoder : pb::IMessage<KeypointBoxCoder> { | |||||
| private static readonly pb::MessageParser<KeypointBoxCoder> _parser = new pb::MessageParser<KeypointBoxCoder>(() => new KeypointBoxCoder()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<KeypointBoxCoder> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.KeypointBoxCoderReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public KeypointBoxCoder() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public KeypointBoxCoder(KeypointBoxCoder other) : this() { | |||||
| numKeypoints_ = other.numKeypoints_; | |||||
| yScale_ = other.yScale_; | |||||
| xScale_ = other.xScale_; | |||||
| heightScale_ = other.heightScale_; | |||||
| widthScale_ = other.widthScale_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public KeypointBoxCoder Clone() { | |||||
| return new KeypointBoxCoder(this); | |||||
| } | |||||
| /// <summary>Field number for the "num_keypoints" field.</summary> | |||||
| public const int NumKeypointsFieldNumber = 1; | |||||
| private int numKeypoints_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int NumKeypoints { | |||||
| get { return numKeypoints_; } | |||||
| set { | |||||
| numKeypoints_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "y_scale" field.</summary> | |||||
| public const int YScaleFieldNumber = 2; | |||||
| private float yScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box center and keypoints. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float YScale { | |||||
| get { return yScale_; } | |||||
| set { | |||||
| yScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "x_scale" field.</summary> | |||||
| public const int XScaleFieldNumber = 3; | |||||
| private float xScale_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float XScale { | |||||
| get { return xScale_; } | |||||
| set { | |||||
| xScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_scale" field.</summary> | |||||
| public const int HeightScaleFieldNumber = 4; | |||||
| private float heightScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box height. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float HeightScale { | |||||
| get { return heightScale_; } | |||||
| set { | |||||
| heightScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "width_scale" field.</summary> | |||||
| public const int WidthScaleFieldNumber = 5; | |||||
| private float widthScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box width. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float WidthScale { | |||||
| get { return widthScale_; } | |||||
| set { | |||||
| widthScale_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as KeypointBoxCoder); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(KeypointBoxCoder other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (NumKeypoints != other.NumKeypoints) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(YScale, other.YScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(XScale, other.XScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(HeightScale, other.HeightScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(WidthScale, other.WidthScale)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (NumKeypoints != 0) hash ^= NumKeypoints.GetHashCode(); | |||||
| if (YScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(YScale); | |||||
| if (XScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(XScale); | |||||
| if (HeightScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(HeightScale); | |||||
| if (WidthScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(WidthScale); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (NumKeypoints != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteInt32(NumKeypoints); | |||||
| } | |||||
| if (YScale != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(YScale); | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(XScale); | |||||
| } | |||||
| if (HeightScale != 0F) { | |||||
| output.WriteRawTag(37); | |||||
| output.WriteFloat(HeightScale); | |||||
| } | |||||
| if (WidthScale != 0F) { | |||||
| output.WriteRawTag(45); | |||||
| output.WriteFloat(WidthScale); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (NumKeypoints != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumKeypoints); | |||||
| } | |||||
| if (YScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (HeightScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (WidthScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(KeypointBoxCoder other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.NumKeypoints != 0) { | |||||
| NumKeypoints = other.NumKeypoints; | |||||
| } | |||||
| if (other.YScale != 0F) { | |||||
| YScale = other.YScale; | |||||
| } | |||||
| if (other.XScale != 0F) { | |||||
| XScale = other.XScale; | |||||
| } | |||||
| if (other.HeightScale != 0F) { | |||||
| HeightScale = other.HeightScale; | |||||
| } | |||||
| if (other.WidthScale != 0F) { | |||||
| WidthScale = other.WidthScale; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| NumKeypoints = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| YScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| XScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 37: { | |||||
| HeightScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 45: { | |||||
| WidthScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,257 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/matcher.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/matcher.proto</summary> | |||||
| public static partial class MatcherReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/matcher.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static MatcherReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CiVvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9tYXRjaGVyLnByb3RvEhdvYmpl", | |||||
| "Y3RfZGV0ZWN0aW9uLnByb3Rvcxosb2JqZWN0X2RldGVjdGlvbi9wcm90b3Mv", | |||||
| "YXJnbWF4X21hdGNoZXIucHJvdG8aL29iamVjdF9kZXRlY3Rpb24vcHJvdG9z", | |||||
| "L2JpcGFydGl0ZV9tYXRjaGVyLnByb3RvIqQBCgdNYXRjaGVyEkAKDmFyZ21h", | |||||
| "eF9tYXRjaGVyGAEgASgLMiYub2JqZWN0X2RldGVjdGlvbi5wcm90b3MuQXJn", | |||||
| "TWF4TWF0Y2hlckgAEkYKEWJpcGFydGl0ZV9tYXRjaGVyGAIgASgLMikub2Jq", | |||||
| "ZWN0X2RldGVjdGlvbi5wcm90b3MuQmlwYXJ0aXRlTWF0Y2hlckgAQg8KDW1h", | |||||
| "dGNoZXJfb25lb2ZiBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.ArgmaxMatcherReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcherReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.Matcher), global::Tensorflow.Models.ObjectDetection.Protos.Matcher.Parser, new[]{ "ArgmaxMatcher", "BipartiteMatcher" }, new[]{ "MatcherOneof" }, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for the matcher to be used in the object detection | |||||
| /// pipeline. See core/matcher.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class Matcher : pb::IMessage<Matcher> { | |||||
| private static readonly pb::MessageParser<Matcher> _parser = new pb::MessageParser<Matcher>(() => new Matcher()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<Matcher> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.MatcherReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Matcher() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Matcher(Matcher other) : this() { | |||||
| switch (other.MatcherOneofCase) { | |||||
| case MatcherOneofOneofCase.ArgmaxMatcher: | |||||
| ArgmaxMatcher = other.ArgmaxMatcher.Clone(); | |||||
| break; | |||||
| case MatcherOneofOneofCase.BipartiteMatcher: | |||||
| BipartiteMatcher = other.BipartiteMatcher.Clone(); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public Matcher Clone() { | |||||
| return new Matcher(this); | |||||
| } | |||||
| /// <summary>Field number for the "argmax_matcher" field.</summary> | |||||
| public const int ArgmaxMatcherFieldNumber = 1; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher ArgmaxMatcher { | |||||
| get { return matcherOneofCase_ == MatcherOneofOneofCase.ArgmaxMatcher ? (global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher) matcherOneof_ : null; } | |||||
| set { | |||||
| matcherOneof_ = value; | |||||
| matcherOneofCase_ = value == null ? MatcherOneofOneofCase.None : MatcherOneofOneofCase.ArgmaxMatcher; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "bipartite_matcher" field.</summary> | |||||
| public const int BipartiteMatcherFieldNumber = 2; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher BipartiteMatcher { | |||||
| get { return matcherOneofCase_ == MatcherOneofOneofCase.BipartiteMatcher ? (global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher) matcherOneof_ : null; } | |||||
| set { | |||||
| matcherOneof_ = value; | |||||
| matcherOneofCase_ = value == null ? MatcherOneofOneofCase.None : MatcherOneofOneofCase.BipartiteMatcher; | |||||
| } | |||||
| } | |||||
| private object matcherOneof_; | |||||
| /// <summary>Enum of possible cases for the "matcher_oneof" oneof.</summary> | |||||
| public enum MatcherOneofOneofCase { | |||||
| None = 0, | |||||
| ArgmaxMatcher = 1, | |||||
| BipartiteMatcher = 2, | |||||
| } | |||||
| private MatcherOneofOneofCase matcherOneofCase_ = MatcherOneofOneofCase.None; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MatcherOneofOneofCase MatcherOneofCase { | |||||
| get { return matcherOneofCase_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void ClearMatcherOneof() { | |||||
| matcherOneofCase_ = MatcherOneofOneofCase.None; | |||||
| matcherOneof_ = null; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as Matcher); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(Matcher other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(ArgmaxMatcher, other.ArgmaxMatcher)) return false; | |||||
| if (!object.Equals(BipartiteMatcher, other.BipartiteMatcher)) return false; | |||||
| if (MatcherOneofCase != other.MatcherOneofCase) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.ArgmaxMatcher) hash ^= ArgmaxMatcher.GetHashCode(); | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.BipartiteMatcher) hash ^= BipartiteMatcher.GetHashCode(); | |||||
| hash ^= (int) matcherOneofCase_; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.ArgmaxMatcher) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(ArgmaxMatcher); | |||||
| } | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.BipartiteMatcher) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(BipartiteMatcher); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.ArgmaxMatcher) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(ArgmaxMatcher); | |||||
| } | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.BipartiteMatcher) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(BipartiteMatcher); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(Matcher other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| switch (other.MatcherOneofCase) { | |||||
| case MatcherOneofOneofCase.ArgmaxMatcher: | |||||
| if (ArgmaxMatcher == null) { | |||||
| ArgmaxMatcher = new global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher(); | |||||
| } | |||||
| ArgmaxMatcher.MergeFrom(other.ArgmaxMatcher); | |||||
| break; | |||||
| case MatcherOneofOneofCase.BipartiteMatcher: | |||||
| if (BipartiteMatcher == null) { | |||||
| BipartiteMatcher = new global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher(); | |||||
| } | |||||
| BipartiteMatcher.MergeFrom(other.BipartiteMatcher); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.ArgMaxMatcher(); | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.ArgmaxMatcher) { | |||||
| subBuilder.MergeFrom(ArgmaxMatcher); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| ArgmaxMatcher = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.BipartiteMatcher(); | |||||
| if (matcherOneofCase_ == MatcherOneofOneofCase.BipartiteMatcher) { | |||||
| subBuilder.MergeFrom(BipartiteMatcher); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| BipartiteMatcher = subBuilder; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,180 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/mean_stddev_box_coder.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/mean_stddev_box_coder.proto</summary> | |||||
| public static partial class MeanStddevBoxCoderReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/mean_stddev_box_coder.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static MeanStddevBoxCoderReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9tZWFuX3N0ZGRldl9ib3hfY29k", | |||||
| "ZXIucHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zIiQKEk1lYW5TdGRk", | |||||
| "ZXZCb3hDb2RlchIOCgZzdGRkZXYYASABKAJiBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder), global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoder.Parser, new[]{ "Stddev" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for MeanStddevBoxCoder. See | |||||
| /// box_coders/mean_stddev_box_coder.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class MeanStddevBoxCoder : pb::IMessage<MeanStddevBoxCoder> { | |||||
| private static readonly pb::MessageParser<MeanStddevBoxCoder> _parser = new pb::MessageParser<MeanStddevBoxCoder>(() => new MeanStddevBoxCoder()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<MeanStddevBoxCoder> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.MeanStddevBoxCoderReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MeanStddevBoxCoder() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MeanStddevBoxCoder(MeanStddevBoxCoder other) : this() { | |||||
| stddev_ = other.stddev_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MeanStddevBoxCoder Clone() { | |||||
| return new MeanStddevBoxCoder(this); | |||||
| } | |||||
| /// <summary>Field number for the "stddev" field.</summary> | |||||
| public const int StddevFieldNumber = 1; | |||||
| private float stddev_; | |||||
| /// <summary> | |||||
| /// The standard deviation used to encode and decode boxes. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float Stddev { | |||||
| get { return stddev_; } | |||||
| set { | |||||
| stddev_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as MeanStddevBoxCoder); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(MeanStddevBoxCoder other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Stddev, other.Stddev)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (Stddev != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Stddev); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (Stddev != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(Stddev); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (Stddev != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(MeanStddevBoxCoder other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.Stddev != 0F) { | |||||
| Stddev = other.Stddev; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| Stddev = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,255 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/model.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/model.proto</summary> | |||||
| public static partial class ModelReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/model.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static ModelReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CiNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9tb2RlbC5wcm90bxIXb2JqZWN0", | |||||
| "X2RldGVjdGlvbi5wcm90b3MaKW9iamVjdF9kZXRlY3Rpb24vcHJvdG9zL2Zh", | |||||
| "c3Rlcl9yY25uLnByb3RvGiFvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9zc2Qu", | |||||
| "cHJvdG8iggEKDkRldGVjdGlvbk1vZGVsEjoKC2Zhc3Rlcl9yY25uGAEgASgL", | |||||
| "MiMub2JqZWN0X2RldGVjdGlvbi5wcm90b3MuRmFzdGVyUmNubkgAEisKA3Nz", | |||||
| "ZBgCIAEoCzIcLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLlNzZEgAQgcKBW1v", | |||||
| "ZGVsYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnnReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.SsdReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel), global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel.Parser, new[]{ "FasterRcnn", "Ssd" }, new[]{ "Model" }, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Top level configuration for DetectionModels. | |||||
| /// </summary> | |||||
| public sealed partial class DetectionModel : pb::IMessage<DetectionModel> { | |||||
| private static readonly pb::MessageParser<DetectionModel> _parser = new pb::MessageParser<DetectionModel>(() => new DetectionModel()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<DetectionModel> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.ModelReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public DetectionModel() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public DetectionModel(DetectionModel other) : this() { | |||||
| switch (other.ModelCase) { | |||||
| case ModelOneofCase.FasterRcnn: | |||||
| FasterRcnn = other.FasterRcnn.Clone(); | |||||
| break; | |||||
| case ModelOneofCase.Ssd: | |||||
| Ssd = other.Ssd.Clone(); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public DetectionModel Clone() { | |||||
| return new DetectionModel(this); | |||||
| } | |||||
| /// <summary>Field number for the "faster_rcnn" field.</summary> | |||||
| public const int FasterRcnnFieldNumber = 1; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnn FasterRcnn { | |||||
| get { return modelCase_ == ModelOneofCase.FasterRcnn ? (global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnn) model_ : null; } | |||||
| set { | |||||
| model_ = value; | |||||
| modelCase_ = value == null ? ModelOneofCase.None : ModelOneofCase.FasterRcnn; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "ssd" field.</summary> | |||||
| public const int SsdFieldNumber = 2; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.Ssd Ssd { | |||||
| get { return modelCase_ == ModelOneofCase.Ssd ? (global::Tensorflow.Models.ObjectDetection.Protos.Ssd) model_ : null; } | |||||
| set { | |||||
| model_ = value; | |||||
| modelCase_ = value == null ? ModelOneofCase.None : ModelOneofCase.Ssd; | |||||
| } | |||||
| } | |||||
| private object model_; | |||||
| /// <summary>Enum of possible cases for the "model" oneof.</summary> | |||||
| public enum ModelOneofCase { | |||||
| None = 0, | |||||
| FasterRcnn = 1, | |||||
| Ssd = 2, | |||||
| } | |||||
| private ModelOneofCase modelCase_ = ModelOneofCase.None; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ModelOneofCase ModelCase { | |||||
| get { return modelCase_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void ClearModel() { | |||||
| modelCase_ = ModelOneofCase.None; | |||||
| model_ = null; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as DetectionModel); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(DetectionModel other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(FasterRcnn, other.FasterRcnn)) return false; | |||||
| if (!object.Equals(Ssd, other.Ssd)) return false; | |||||
| if (ModelCase != other.ModelCase) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (modelCase_ == ModelOneofCase.FasterRcnn) hash ^= FasterRcnn.GetHashCode(); | |||||
| if (modelCase_ == ModelOneofCase.Ssd) hash ^= Ssd.GetHashCode(); | |||||
| hash ^= (int) modelCase_; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (modelCase_ == ModelOneofCase.FasterRcnn) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(FasterRcnn); | |||||
| } | |||||
| if (modelCase_ == ModelOneofCase.Ssd) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(Ssd); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (modelCase_ == ModelOneofCase.FasterRcnn) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(FasterRcnn); | |||||
| } | |||||
| if (modelCase_ == ModelOneofCase.Ssd) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(Ssd); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(DetectionModel other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| switch (other.ModelCase) { | |||||
| case ModelOneofCase.FasterRcnn: | |||||
| if (FasterRcnn == null) { | |||||
| FasterRcnn = new global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnn(); | |||||
| } | |||||
| FasterRcnn.MergeFrom(other.FasterRcnn); | |||||
| break; | |||||
| case ModelOneofCase.Ssd: | |||||
| if (Ssd == null) { | |||||
| Ssd = new global::Tensorflow.Models.ObjectDetection.Protos.Ssd(); | |||||
| } | |||||
| Ssd.MergeFrom(other.Ssd); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnn subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.FasterRcnn(); | |||||
| if (modelCase_ == ModelOneofCase.FasterRcnn) { | |||||
| subBuilder.MergeFrom(FasterRcnn); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| FasterRcnn = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.Ssd subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.Ssd(); | |||||
| if (modelCase_ == ModelOneofCase.Ssd) { | |||||
| subBuilder.MergeFrom(Ssd); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| Ssd = subBuilder; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,332 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/multiscale_anchor_generator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/multiscale_anchor_generator.proto</summary> | |||||
| public static partial class MultiscaleAnchorGeneratorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/multiscale_anchor_generator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static MultiscaleAnchorGeneratorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjlvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9tdWx0aXNjYWxlX2FuY2hvcl9n", | |||||
| "ZW5lcmF0b3IucHJvdG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zIqgBChlN", | |||||
| "dWx0aXNjYWxlQW5jaG9yR2VuZXJhdG9yEhEKCW1pbl9sZXZlbBgBIAEoBRIR", | |||||
| "CgltYXhfbGV2ZWwYAiABKAUSFAoMYW5jaG9yX3NjYWxlGAMgASgCEhUKDWFz", | |||||
| "cGVjdF9yYXRpb3MYBCADKAISGQoRc2NhbGVzX3Blcl9vY3RhdmUYBSABKAUS", | |||||
| "HQoVbm9ybWFsaXplX2Nvb3JkaW5hdGVzGAYgASgIYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator), global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator.Parser, new[]{ "MinLevel", "MaxLevel", "AnchorScale", "AspectRatios", "ScalesPerOctave", "NormalizeCoordinates" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for RetinaNet anchor generator described in | |||||
| /// https://arxiv.org/abs/1708.02002. See | |||||
| /// anchor_generators/multiscale_grid_anchor_generator.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class MultiscaleAnchorGenerator : pb::IMessage<MultiscaleAnchorGenerator> { | |||||
| private static readonly pb::MessageParser<MultiscaleAnchorGenerator> _parser = new pb::MessageParser<MultiscaleAnchorGenerator>(() => new MultiscaleAnchorGenerator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<MultiscaleAnchorGenerator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGeneratorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MultiscaleAnchorGenerator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MultiscaleAnchorGenerator(MultiscaleAnchorGenerator other) : this() { | |||||
| minLevel_ = other.minLevel_; | |||||
| maxLevel_ = other.maxLevel_; | |||||
| anchorScale_ = other.anchorScale_; | |||||
| aspectRatios_ = other.aspectRatios_.Clone(); | |||||
| scalesPerOctave_ = other.scalesPerOctave_; | |||||
| normalizeCoordinates_ = other.normalizeCoordinates_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public MultiscaleAnchorGenerator Clone() { | |||||
| return new MultiscaleAnchorGenerator(this); | |||||
| } | |||||
| /// <summary>Field number for the "min_level" field.</summary> | |||||
| public const int MinLevelFieldNumber = 1; | |||||
| private int minLevel_; | |||||
| /// <summary> | |||||
| /// minimum level in feature pyramid | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MinLevel { | |||||
| get { return minLevel_; } | |||||
| set { | |||||
| minLevel_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_level" field.</summary> | |||||
| public const int MaxLevelFieldNumber = 2; | |||||
| private int maxLevel_; | |||||
| /// <summary> | |||||
| /// maximum level in feature pyramid | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MaxLevel { | |||||
| get { return maxLevel_; } | |||||
| set { | |||||
| maxLevel_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "anchor_scale" field.</summary> | |||||
| public const int AnchorScaleFieldNumber = 3; | |||||
| private float anchorScale_; | |||||
| /// <summary> | |||||
| /// Scale of anchor to feature stride | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float AnchorScale { | |||||
| get { return anchorScale_; } | |||||
| set { | |||||
| anchorScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "aspect_ratios" field.</summary> | |||||
| public const int AspectRatiosFieldNumber = 4; | |||||
| private static readonly pb::FieldCodec<float> _repeated_aspectRatios_codec | |||||
| = pb::FieldCodec.ForFloat(34); | |||||
| private readonly pbc::RepeatedField<float> aspectRatios_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// Aspect ratios for anchors at each grid point. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> AspectRatios { | |||||
| get { return aspectRatios_; } | |||||
| } | |||||
| /// <summary>Field number for the "scales_per_octave" field.</summary> | |||||
| public const int ScalesPerOctaveFieldNumber = 5; | |||||
| private int scalesPerOctave_; | |||||
| /// <summary> | |||||
| /// Number of intermediate scale each scale octave | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int ScalesPerOctave { | |||||
| get { return scalesPerOctave_; } | |||||
| set { | |||||
| scalesPerOctave_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "normalize_coordinates" field.</summary> | |||||
| public const int NormalizeCoordinatesFieldNumber = 6; | |||||
| private bool normalizeCoordinates_; | |||||
| /// <summary> | |||||
| /// Whether to produce anchors in normalized coordinates. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool NormalizeCoordinates { | |||||
| get { return normalizeCoordinates_; } | |||||
| set { | |||||
| normalizeCoordinates_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as MultiscaleAnchorGenerator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(MultiscaleAnchorGenerator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (MinLevel != other.MinLevel) return false; | |||||
| if (MaxLevel != other.MaxLevel) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(AnchorScale, other.AnchorScale)) return false; | |||||
| if(!aspectRatios_.Equals(other.aspectRatios_)) return false; | |||||
| if (ScalesPerOctave != other.ScalesPerOctave) return false; | |||||
| if (NormalizeCoordinates != other.NormalizeCoordinates) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (MinLevel != 0) hash ^= MinLevel.GetHashCode(); | |||||
| if (MaxLevel != 0) hash ^= MaxLevel.GetHashCode(); | |||||
| if (AnchorScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(AnchorScale); | |||||
| hash ^= aspectRatios_.GetHashCode(); | |||||
| if (ScalesPerOctave != 0) hash ^= ScalesPerOctave.GetHashCode(); | |||||
| if (NormalizeCoordinates != false) hash ^= NormalizeCoordinates.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (MinLevel != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteInt32(MinLevel); | |||||
| } | |||||
| if (MaxLevel != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteInt32(MaxLevel); | |||||
| } | |||||
| if (AnchorScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(AnchorScale); | |||||
| } | |||||
| aspectRatios_.WriteTo(output, _repeated_aspectRatios_codec); | |||||
| if (ScalesPerOctave != 0) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteInt32(ScalesPerOctave); | |||||
| } | |||||
| if (NormalizeCoordinates != false) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteBool(NormalizeCoordinates); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (MinLevel != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MinLevel); | |||||
| } | |||||
| if (MaxLevel != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxLevel); | |||||
| } | |||||
| if (AnchorScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| size += aspectRatios_.CalculateSize(_repeated_aspectRatios_codec); | |||||
| if (ScalesPerOctave != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(ScalesPerOctave); | |||||
| } | |||||
| if (NormalizeCoordinates != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(MultiscaleAnchorGenerator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.MinLevel != 0) { | |||||
| MinLevel = other.MinLevel; | |||||
| } | |||||
| if (other.MaxLevel != 0) { | |||||
| MaxLevel = other.MaxLevel; | |||||
| } | |||||
| if (other.AnchorScale != 0F) { | |||||
| AnchorScale = other.AnchorScale; | |||||
| } | |||||
| aspectRatios_.Add(other.aspectRatios_); | |||||
| if (other.ScalesPerOctave != 0) { | |||||
| ScalesPerOctave = other.ScalesPerOctave; | |||||
| } | |||||
| if (other.NormalizeCoordinates != false) { | |||||
| NormalizeCoordinates = other.NormalizeCoordinates; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| MinLevel = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| MaxLevel = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| AnchorScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 34: | |||||
| case 37: { | |||||
| aspectRatios_.AddEntriesFrom(input, _repeated_aspectRatios_codec); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| ScalesPerOctave = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 48: { | |||||
| NormalizeCoordinates = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,352 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/pipeline.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/pipeline.proto</summary> | |||||
| public static partial class PipelineReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/pipeline.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static PipelineReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CiZvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9waXBlbGluZS5wcm90bxIXb2Jq", | |||||
| "ZWN0X2RldGVjdGlvbi5wcm90b3MaIm9iamVjdF9kZXRlY3Rpb24vcHJvdG9z", | |||||
| "L2V2YWwucHJvdG8aLG9iamVjdF9kZXRlY3Rpb24vcHJvdG9zL2dyYXBoX3Jl", | |||||
| "d3JpdGVyLnByb3RvGipvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9pbnB1dF9y", | |||||
| "ZWFkZXIucHJvdG8aI29iamVjdF9kZXRlY3Rpb24vcHJvdG9zL21vZGVsLnBy", | |||||
| "b3RvGiNvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy90cmFpbi5wcm90byKKAwoX", | |||||
| "VHJhaW5FdmFsUGlwZWxpbmVDb25maWcSNgoFbW9kZWwYASABKAsyJy5vYmpl", | |||||
| "Y3RfZGV0ZWN0aW9uLnByb3Rvcy5EZXRlY3Rpb25Nb2RlbBI6Cgx0cmFpbl9j", | |||||
| "b25maWcYAiABKAsyJC5vYmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5UcmFpbkNv", | |||||
| "bmZpZxJAChJ0cmFpbl9pbnB1dF9yZWFkZXIYAyABKAsyJC5vYmplY3RfZGV0", | |||||
| "ZWN0aW9uLnByb3Rvcy5JbnB1dFJlYWRlchI4CgtldmFsX2NvbmZpZxgEIAEo", | |||||
| "CzIjLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLkV2YWxDb25maWcSPwoRZXZh", | |||||
| "bF9pbnB1dF9yZWFkZXIYBSADKAsyJC5vYmplY3RfZGV0ZWN0aW9uLnByb3Rv", | |||||
| "cy5JbnB1dFJlYWRlchI+Cg5ncmFwaF9yZXdyaXRlchgGIAEoCzImLm9iamVj", | |||||
| "dF9kZXRlY3Rpb24ucHJvdG9zLkdyYXBoUmV3cml0ZXJiBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.EvalReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriterReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.InputReaderReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.ModelReflection.Descriptor, global::Tensorflow.Models.ObjectDetection.Protos.TrainReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.TrainEvalPipelineConfig), global::Tensorflow.Models.ObjectDetection.Protos.TrainEvalPipelineConfig.Parser, new[]{ "Model", "TrainConfig", "TrainInputReader", "EvalConfig", "EvalInputReader", "GraphRewriter" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Convenience message for configuring a training and eval pipeline. Allows all | |||||
| /// of the pipeline parameters to be configured from one file. | |||||
| /// Next id: 7 | |||||
| /// </summary> | |||||
| public sealed partial class TrainEvalPipelineConfig : pb::IMessage<TrainEvalPipelineConfig> { | |||||
| private static readonly pb::MessageParser<TrainEvalPipelineConfig> _parser = new pb::MessageParser<TrainEvalPipelineConfig>(() => new TrainEvalPipelineConfig()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<TrainEvalPipelineConfig> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.PipelineReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public TrainEvalPipelineConfig() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public TrainEvalPipelineConfig(TrainEvalPipelineConfig other) : this() { | |||||
| model_ = other.model_ != null ? other.model_.Clone() : null; | |||||
| trainConfig_ = other.trainConfig_ != null ? other.trainConfig_.Clone() : null; | |||||
| trainInputReader_ = other.trainInputReader_ != null ? other.trainInputReader_.Clone() : null; | |||||
| evalConfig_ = other.evalConfig_ != null ? other.evalConfig_.Clone() : null; | |||||
| evalInputReader_ = other.evalInputReader_.Clone(); | |||||
| graphRewriter_ = other.graphRewriter_ != null ? other.graphRewriter_.Clone() : null; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public TrainEvalPipelineConfig Clone() { | |||||
| return new TrainEvalPipelineConfig(this); | |||||
| } | |||||
| /// <summary>Field number for the "model" field.</summary> | |||||
| public const int ModelFieldNumber = 1; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel model_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel Model { | |||||
| get { return model_; } | |||||
| set { | |||||
| model_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "train_config" field.</summary> | |||||
| public const int TrainConfigFieldNumber = 2; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.TrainConfig trainConfig_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.TrainConfig TrainConfig { | |||||
| get { return trainConfig_; } | |||||
| set { | |||||
| trainConfig_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "train_input_reader" field.</summary> | |||||
| public const int TrainInputReaderFieldNumber = 3; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.InputReader trainInputReader_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.InputReader TrainInputReader { | |||||
| get { return trainInputReader_; } | |||||
| set { | |||||
| trainInputReader_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "eval_config" field.</summary> | |||||
| public const int EvalConfigFieldNumber = 4; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig evalConfig_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig EvalConfig { | |||||
| get { return evalConfig_; } | |||||
| set { | |||||
| evalConfig_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "eval_input_reader" field.</summary> | |||||
| public const int EvalInputReaderFieldNumber = 5; | |||||
| private static readonly pb::FieldCodec<global::Tensorflow.Models.ObjectDetection.Protos.InputReader> _repeated_evalInputReader_codec | |||||
| = pb::FieldCodec.ForMessage(42, global::Tensorflow.Models.ObjectDetection.Protos.InputReader.Parser); | |||||
| private readonly pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.InputReader> evalInputReader_ = new pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.InputReader>(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.InputReader> EvalInputReader { | |||||
| get { return evalInputReader_; } | |||||
| } | |||||
| /// <summary>Field number for the "graph_rewriter" field.</summary> | |||||
| public const int GraphRewriterFieldNumber = 6; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter graphRewriter_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter GraphRewriter { | |||||
| get { return graphRewriter_; } | |||||
| set { | |||||
| graphRewriter_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as TrainEvalPipelineConfig); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(TrainEvalPipelineConfig other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(Model, other.Model)) return false; | |||||
| if (!object.Equals(TrainConfig, other.TrainConfig)) return false; | |||||
| if (!object.Equals(TrainInputReader, other.TrainInputReader)) return false; | |||||
| if (!object.Equals(EvalConfig, other.EvalConfig)) return false; | |||||
| if(!evalInputReader_.Equals(other.evalInputReader_)) return false; | |||||
| if (!object.Equals(GraphRewriter, other.GraphRewriter)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (model_ != null) hash ^= Model.GetHashCode(); | |||||
| if (trainConfig_ != null) hash ^= TrainConfig.GetHashCode(); | |||||
| if (trainInputReader_ != null) hash ^= TrainInputReader.GetHashCode(); | |||||
| if (evalConfig_ != null) hash ^= EvalConfig.GetHashCode(); | |||||
| hash ^= evalInputReader_.GetHashCode(); | |||||
| if (graphRewriter_ != null) hash ^= GraphRewriter.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (model_ != null) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(Model); | |||||
| } | |||||
| if (trainConfig_ != null) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(TrainConfig); | |||||
| } | |||||
| if (trainInputReader_ != null) { | |||||
| output.WriteRawTag(26); | |||||
| output.WriteMessage(TrainInputReader); | |||||
| } | |||||
| if (evalConfig_ != null) { | |||||
| output.WriteRawTag(34); | |||||
| output.WriteMessage(EvalConfig); | |||||
| } | |||||
| evalInputReader_.WriteTo(output, _repeated_evalInputReader_codec); | |||||
| if (graphRewriter_ != null) { | |||||
| output.WriteRawTag(50); | |||||
| output.WriteMessage(GraphRewriter); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (model_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(Model); | |||||
| } | |||||
| if (trainConfig_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(TrainConfig); | |||||
| } | |||||
| if (trainInputReader_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(TrainInputReader); | |||||
| } | |||||
| if (evalConfig_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(EvalConfig); | |||||
| } | |||||
| size += evalInputReader_.CalculateSize(_repeated_evalInputReader_codec); | |||||
| if (graphRewriter_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(GraphRewriter); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(TrainEvalPipelineConfig other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.model_ != null) { | |||||
| if (model_ == null) { | |||||
| model_ = new global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel(); | |||||
| } | |||||
| Model.MergeFrom(other.Model); | |||||
| } | |||||
| if (other.trainConfig_ != null) { | |||||
| if (trainConfig_ == null) { | |||||
| trainConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.TrainConfig(); | |||||
| } | |||||
| TrainConfig.MergeFrom(other.TrainConfig); | |||||
| } | |||||
| if (other.trainInputReader_ != null) { | |||||
| if (trainInputReader_ == null) { | |||||
| trainInputReader_ = new global::Tensorflow.Models.ObjectDetection.Protos.InputReader(); | |||||
| } | |||||
| TrainInputReader.MergeFrom(other.TrainInputReader); | |||||
| } | |||||
| if (other.evalConfig_ != null) { | |||||
| if (evalConfig_ == null) { | |||||
| evalConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig(); | |||||
| } | |||||
| EvalConfig.MergeFrom(other.EvalConfig); | |||||
| } | |||||
| evalInputReader_.Add(other.evalInputReader_); | |||||
| if (other.graphRewriter_ != null) { | |||||
| if (graphRewriter_ == null) { | |||||
| graphRewriter_ = new global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter(); | |||||
| } | |||||
| GraphRewriter.MergeFrom(other.GraphRewriter); | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| if (model_ == null) { | |||||
| model_ = new global::Tensorflow.Models.ObjectDetection.Protos.DetectionModel(); | |||||
| } | |||||
| input.ReadMessage(model_); | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| if (trainConfig_ == null) { | |||||
| trainConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.TrainConfig(); | |||||
| } | |||||
| input.ReadMessage(trainConfig_); | |||||
| break; | |||||
| } | |||||
| case 26: { | |||||
| if (trainInputReader_ == null) { | |||||
| trainInputReader_ = new global::Tensorflow.Models.ObjectDetection.Protos.InputReader(); | |||||
| } | |||||
| input.ReadMessage(trainInputReader_); | |||||
| break; | |||||
| } | |||||
| case 34: { | |||||
| if (evalConfig_ == null) { | |||||
| evalConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.EvalConfig(); | |||||
| } | |||||
| input.ReadMessage(evalConfig_); | |||||
| break; | |||||
| } | |||||
| case 42: { | |||||
| evalInputReader_.AddEntriesFrom(input, _repeated_evalInputReader_codec); | |||||
| break; | |||||
| } | |||||
| case 50: { | |||||
| if (graphRewriter_ == null) { | |||||
| graphRewriter_ = new global::Tensorflow.Models.ObjectDetection.Protos.GraphRewriter(); | |||||
| } | |||||
| input.ReadMessage(graphRewriter_); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,685 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/post_processing.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/post_processing.proto</summary> | |||||
| public static partial class PostProcessingReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/post_processing.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static PostProcessingReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "Ci1vYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9wb3N0X3Byb2Nlc3NpbmcucHJv", | |||||
| "dG8SF29iamVjdF9kZXRlY3Rpb24ucHJvdG9zGilvYmplY3RfZGV0ZWN0aW9u", | |||||
| "L3Byb3Rvcy9jYWxpYnJhdGlvbi5wcm90byL+AQoWQmF0Y2hOb25NYXhTdXBw", | |||||
| "cmVzc2lvbhIXCg9zY29yZV90aHJlc2hvbGQYASABKAISFQoNaW91X3RocmVz", | |||||
| "aG9sZBgCIAEoAhIgChhtYXhfZGV0ZWN0aW9uc19wZXJfY2xhc3MYAyABKAUS", | |||||
| "HAoUbWF4X3RvdGFsX2RldGVjdGlvbnMYBSABKAUSGQoRdXNlX3N0YXRpY19z", | |||||
| "aGFwZXMYBiABKAgSHgoWdXNlX2NsYXNzX2Fnbm9zdGljX25tcxgHIAEoCBIh", | |||||
| "ChltYXhfY2xhc3Nlc19wZXJfZGV0ZWN0aW9uGAggASgFEhYKDnNvZnRfbm1z", | |||||
| "X3NpZ21hGAkgASgCIswCCg5Qb3N0UHJvY2Vzc2luZxJSChliYXRjaF9ub25f", | |||||
| "bWF4X3N1cHByZXNzaW9uGAEgASgLMi8ub2JqZWN0X2RldGVjdGlvbi5wcm90", | |||||
| "b3MuQmF0Y2hOb25NYXhTdXBwcmVzc2lvbhJPCg9zY29yZV9jb252ZXJ0ZXIY", | |||||
| "AiABKA4yNi5vYmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5Qb3N0UHJvY2Vzc2lu", | |||||
| "Zy5TY29yZUNvbnZlcnRlchITCgtsb2dpdF9zY2FsZRgDIAEoAhJGChJjYWxp", | |||||
| "YnJhdGlvbl9jb25maWcYBCABKAsyKi5vYmplY3RfZGV0ZWN0aW9uLnByb3Rv", | |||||
| "cy5DYWxpYnJhdGlvbkNvbmZpZyI4Cg5TY29yZUNvbnZlcnRlchIMCghJREVO", | |||||
| "VElUWRAAEgsKB1NJR01PSUQQARILCgdTT0ZUTUFYEAJiBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { global::Tensorflow.Models.ObjectDetection.Protos.CalibrationReflection.Descriptor, }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression), global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression.Parser, new[]{ "ScoreThreshold", "IouThreshold", "MaxDetectionsPerClass", "MaxTotalDetections", "UseStaticShapes", "UseClassAgnosticNms", "MaxClassesPerDetection", "SoftNmsSigma" }, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing), global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing.Parser, new[]{ "BatchNonMaxSuppression", "ScoreConverter", "LogitScale", "CalibrationConfig" }, null, new[]{ typeof(global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing.Types.ScoreConverter) }, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for non-max-suppression operation on a batch of | |||||
| /// detections. | |||||
| /// </summary> | |||||
| public sealed partial class BatchNonMaxSuppression : pb::IMessage<BatchNonMaxSuppression> { | |||||
| private static readonly pb::MessageParser<BatchNonMaxSuppression> _parser = new pb::MessageParser<BatchNonMaxSuppression>(() => new BatchNonMaxSuppression()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<BatchNonMaxSuppression> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.PostProcessingReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BatchNonMaxSuppression() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BatchNonMaxSuppression(BatchNonMaxSuppression other) : this() { | |||||
| scoreThreshold_ = other.scoreThreshold_; | |||||
| iouThreshold_ = other.iouThreshold_; | |||||
| maxDetectionsPerClass_ = other.maxDetectionsPerClass_; | |||||
| maxTotalDetections_ = other.maxTotalDetections_; | |||||
| useStaticShapes_ = other.useStaticShapes_; | |||||
| useClassAgnosticNms_ = other.useClassAgnosticNms_; | |||||
| maxClassesPerDetection_ = other.maxClassesPerDetection_; | |||||
| softNmsSigma_ = other.softNmsSigma_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public BatchNonMaxSuppression Clone() { | |||||
| return new BatchNonMaxSuppression(this); | |||||
| } | |||||
| /// <summary>Field number for the "score_threshold" field.</summary> | |||||
| public const int ScoreThresholdFieldNumber = 1; | |||||
| private float scoreThreshold_; | |||||
| /// <summary> | |||||
| /// Scalar threshold for score (low scoring boxes are removed). | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float ScoreThreshold { | |||||
| get { return scoreThreshold_; } | |||||
| set { | |||||
| scoreThreshold_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "iou_threshold" field.</summary> | |||||
| public const int IouThresholdFieldNumber = 2; | |||||
| private float iouThreshold_; | |||||
| /// <summary> | |||||
| /// Scalar threshold for IOU (boxes that have high IOU overlap | |||||
| /// with previously selected boxes are removed). | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float IouThreshold { | |||||
| get { return iouThreshold_; } | |||||
| set { | |||||
| iouThreshold_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_detections_per_class" field.</summary> | |||||
| public const int MaxDetectionsPerClassFieldNumber = 3; | |||||
| private int maxDetectionsPerClass_; | |||||
| /// <summary> | |||||
| /// Maximum number of detections to retain per class. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MaxDetectionsPerClass { | |||||
| get { return maxDetectionsPerClass_; } | |||||
| set { | |||||
| maxDetectionsPerClass_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_total_detections" field.</summary> | |||||
| public const int MaxTotalDetectionsFieldNumber = 5; | |||||
| private int maxTotalDetections_; | |||||
| /// <summary> | |||||
| /// Maximum number of detections to retain across all classes. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MaxTotalDetections { | |||||
| get { return maxTotalDetections_; } | |||||
| set { | |||||
| maxTotalDetections_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "use_static_shapes" field.</summary> | |||||
| public const int UseStaticShapesFieldNumber = 6; | |||||
| private bool useStaticShapes_; | |||||
| /// <summary> | |||||
| /// Whether to use the implementation of NMS that guarantees static shapes. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool UseStaticShapes { | |||||
| get { return useStaticShapes_; } | |||||
| set { | |||||
| useStaticShapes_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "use_class_agnostic_nms" field.</summary> | |||||
| public const int UseClassAgnosticNmsFieldNumber = 7; | |||||
| private bool useClassAgnosticNms_; | |||||
| /// <summary> | |||||
| /// Whether to use class agnostic NMS. | |||||
| /// Class-agnostic NMS function implements a class-agnostic version | |||||
| /// of Non Maximal Suppression where if max_classes_per_detection=k, | |||||
| /// 1) we keep the top-k scores for each detection and | |||||
| /// 2) during NMS, each detection only uses the highest class score for sorting. | |||||
| /// 3) Compared to regular NMS, the worst runtime of this version is O(N^2) | |||||
| /// instead of O(KN^2) where N is the number of detections and K the number of | |||||
| /// classes. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool UseClassAgnosticNms { | |||||
| get { return useClassAgnosticNms_; } | |||||
| set { | |||||
| useClassAgnosticNms_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_classes_per_detection" field.</summary> | |||||
| public const int MaxClassesPerDetectionFieldNumber = 8; | |||||
| private int maxClassesPerDetection_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int MaxClassesPerDetection { | |||||
| get { return maxClassesPerDetection_; } | |||||
| set { | |||||
| maxClassesPerDetection_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "soft_nms_sigma" field.</summary> | |||||
| public const int SoftNmsSigmaFieldNumber = 9; | |||||
| private float softNmsSigma_; | |||||
| /// <summary> | |||||
| /// Soft NMS sigma parameter; Bodla et al, https://arxiv.org/abs/1704.04503) | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float SoftNmsSigma { | |||||
| get { return softNmsSigma_; } | |||||
| set { | |||||
| softNmsSigma_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as BatchNonMaxSuppression); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(BatchNonMaxSuppression other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(ScoreThreshold, other.ScoreThreshold)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(IouThreshold, other.IouThreshold)) return false; | |||||
| if (MaxDetectionsPerClass != other.MaxDetectionsPerClass) return false; | |||||
| if (MaxTotalDetections != other.MaxTotalDetections) return false; | |||||
| if (UseStaticShapes != other.UseStaticShapes) return false; | |||||
| if (UseClassAgnosticNms != other.UseClassAgnosticNms) return false; | |||||
| if (MaxClassesPerDetection != other.MaxClassesPerDetection) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SoftNmsSigma, other.SoftNmsSigma)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (ScoreThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(ScoreThreshold); | |||||
| if (IouThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(IouThreshold); | |||||
| if (MaxDetectionsPerClass != 0) hash ^= MaxDetectionsPerClass.GetHashCode(); | |||||
| if (MaxTotalDetections != 0) hash ^= MaxTotalDetections.GetHashCode(); | |||||
| if (UseStaticShapes != false) hash ^= UseStaticShapes.GetHashCode(); | |||||
| if (UseClassAgnosticNms != false) hash ^= UseClassAgnosticNms.GetHashCode(); | |||||
| if (MaxClassesPerDetection != 0) hash ^= MaxClassesPerDetection.GetHashCode(); | |||||
| if (SoftNmsSigma != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SoftNmsSigma); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (ScoreThreshold != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(ScoreThreshold); | |||||
| } | |||||
| if (IouThreshold != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(IouThreshold); | |||||
| } | |||||
| if (MaxDetectionsPerClass != 0) { | |||||
| output.WriteRawTag(24); | |||||
| output.WriteInt32(MaxDetectionsPerClass); | |||||
| } | |||||
| if (MaxTotalDetections != 0) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteInt32(MaxTotalDetections); | |||||
| } | |||||
| if (UseStaticShapes != false) { | |||||
| output.WriteRawTag(48); | |||||
| output.WriteBool(UseStaticShapes); | |||||
| } | |||||
| if (UseClassAgnosticNms != false) { | |||||
| output.WriteRawTag(56); | |||||
| output.WriteBool(UseClassAgnosticNms); | |||||
| } | |||||
| if (MaxClassesPerDetection != 0) { | |||||
| output.WriteRawTag(64); | |||||
| output.WriteInt32(MaxClassesPerDetection); | |||||
| } | |||||
| if (SoftNmsSigma != 0F) { | |||||
| output.WriteRawTag(77); | |||||
| output.WriteFloat(SoftNmsSigma); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (ScoreThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (IouThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (MaxDetectionsPerClass != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxDetectionsPerClass); | |||||
| } | |||||
| if (MaxTotalDetections != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxTotalDetections); | |||||
| } | |||||
| if (UseStaticShapes != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (UseClassAgnosticNms != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (MaxClassesPerDetection != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(MaxClassesPerDetection); | |||||
| } | |||||
| if (SoftNmsSigma != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(BatchNonMaxSuppression other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.ScoreThreshold != 0F) { | |||||
| ScoreThreshold = other.ScoreThreshold; | |||||
| } | |||||
| if (other.IouThreshold != 0F) { | |||||
| IouThreshold = other.IouThreshold; | |||||
| } | |||||
| if (other.MaxDetectionsPerClass != 0) { | |||||
| MaxDetectionsPerClass = other.MaxDetectionsPerClass; | |||||
| } | |||||
| if (other.MaxTotalDetections != 0) { | |||||
| MaxTotalDetections = other.MaxTotalDetections; | |||||
| } | |||||
| if (other.UseStaticShapes != false) { | |||||
| UseStaticShapes = other.UseStaticShapes; | |||||
| } | |||||
| if (other.UseClassAgnosticNms != false) { | |||||
| UseClassAgnosticNms = other.UseClassAgnosticNms; | |||||
| } | |||||
| if (other.MaxClassesPerDetection != 0) { | |||||
| MaxClassesPerDetection = other.MaxClassesPerDetection; | |||||
| } | |||||
| if (other.SoftNmsSigma != 0F) { | |||||
| SoftNmsSigma = other.SoftNmsSigma; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| ScoreThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| IouThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 24: { | |||||
| MaxDetectionsPerClass = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| MaxTotalDetections = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 48: { | |||||
| UseStaticShapes = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 56: { | |||||
| UseClassAgnosticNms = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 64: { | |||||
| MaxClassesPerDetection = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 77: { | |||||
| SoftNmsSigma = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Configuration proto for post-processing predicted boxes and | |||||
| /// scores. | |||||
| /// </summary> | |||||
| public sealed partial class PostProcessing : pb::IMessage<PostProcessing> { | |||||
| private static readonly pb::MessageParser<PostProcessing> _parser = new pb::MessageParser<PostProcessing>(() => new PostProcessing()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<PostProcessing> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.PostProcessingReflection.Descriptor.MessageTypes[1]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public PostProcessing() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public PostProcessing(PostProcessing other) : this() { | |||||
| batchNonMaxSuppression_ = other.batchNonMaxSuppression_ != null ? other.batchNonMaxSuppression_.Clone() : null; | |||||
| scoreConverter_ = other.scoreConverter_; | |||||
| logitScale_ = other.logitScale_; | |||||
| calibrationConfig_ = other.calibrationConfig_ != null ? other.calibrationConfig_.Clone() : null; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public PostProcessing Clone() { | |||||
| return new PostProcessing(this); | |||||
| } | |||||
| /// <summary>Field number for the "batch_non_max_suppression" field.</summary> | |||||
| public const int BatchNonMaxSuppressionFieldNumber = 1; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression batchNonMaxSuppression_; | |||||
| /// <summary> | |||||
| /// Non max suppression parameters. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression BatchNonMaxSuppression { | |||||
| get { return batchNonMaxSuppression_; } | |||||
| set { | |||||
| batchNonMaxSuppression_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "score_converter" field.</summary> | |||||
| public const int ScoreConverterFieldNumber = 2; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing.Types.ScoreConverter scoreConverter_ = 0; | |||||
| /// <summary> | |||||
| /// Score converter to use. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing.Types.ScoreConverter ScoreConverter { | |||||
| get { return scoreConverter_; } | |||||
| set { | |||||
| scoreConverter_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "logit_scale" field.</summary> | |||||
| public const int LogitScaleFieldNumber = 3; | |||||
| private float logitScale_; | |||||
| /// <summary> | |||||
| /// Scale logit (input) value before conversion in post-processing step. | |||||
| /// Typically used for softmax distillation, though can be used to scale for | |||||
| /// other reasons. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float LogitScale { | |||||
| get { return logitScale_; } | |||||
| set { | |||||
| logitScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "calibration_config" field.</summary> | |||||
| public const int CalibrationConfigFieldNumber = 4; | |||||
| private global::Tensorflow.Models.ObjectDetection.Protos.CalibrationConfig calibrationConfig_; | |||||
| /// <summary> | |||||
| /// Calibrate score outputs. Calibration is applied after score converter | |||||
| /// and before non max suppression. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.CalibrationConfig CalibrationConfig { | |||||
| get { return calibrationConfig_; } | |||||
| set { | |||||
| calibrationConfig_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as PostProcessing); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(PostProcessing other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(BatchNonMaxSuppression, other.BatchNonMaxSuppression)) return false; | |||||
| if (ScoreConverter != other.ScoreConverter) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LogitScale, other.LogitScale)) return false; | |||||
| if (!object.Equals(CalibrationConfig, other.CalibrationConfig)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (batchNonMaxSuppression_ != null) hash ^= BatchNonMaxSuppression.GetHashCode(); | |||||
| if (ScoreConverter != 0) hash ^= ScoreConverter.GetHashCode(); | |||||
| if (LogitScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LogitScale); | |||||
| if (calibrationConfig_ != null) hash ^= CalibrationConfig.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (batchNonMaxSuppression_ != null) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(BatchNonMaxSuppression); | |||||
| } | |||||
| if (ScoreConverter != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteEnum((int) ScoreConverter); | |||||
| } | |||||
| if (LogitScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(LogitScale); | |||||
| } | |||||
| if (calibrationConfig_ != null) { | |||||
| output.WriteRawTag(34); | |||||
| output.WriteMessage(CalibrationConfig); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (batchNonMaxSuppression_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(BatchNonMaxSuppression); | |||||
| } | |||||
| if (ScoreConverter != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ScoreConverter); | |||||
| } | |||||
| if (LogitScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (calibrationConfig_ != null) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(CalibrationConfig); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(PostProcessing other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.batchNonMaxSuppression_ != null) { | |||||
| if (batchNonMaxSuppression_ == null) { | |||||
| batchNonMaxSuppression_ = new global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression(); | |||||
| } | |||||
| BatchNonMaxSuppression.MergeFrom(other.BatchNonMaxSuppression); | |||||
| } | |||||
| if (other.ScoreConverter != 0) { | |||||
| ScoreConverter = other.ScoreConverter; | |||||
| } | |||||
| if (other.LogitScale != 0F) { | |||||
| LogitScale = other.LogitScale; | |||||
| } | |||||
| if (other.calibrationConfig_ != null) { | |||||
| if (calibrationConfig_ == null) { | |||||
| calibrationConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.CalibrationConfig(); | |||||
| } | |||||
| CalibrationConfig.MergeFrom(other.CalibrationConfig); | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| if (batchNonMaxSuppression_ == null) { | |||||
| batchNonMaxSuppression_ = new global::Tensorflow.Models.ObjectDetection.Protos.BatchNonMaxSuppression(); | |||||
| } | |||||
| input.ReadMessage(batchNonMaxSuppression_); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| scoreConverter_ = (global::Tensorflow.Models.ObjectDetection.Protos.PostProcessing.Types.ScoreConverter) input.ReadEnum(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| LogitScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 34: { | |||||
| if (calibrationConfig_ == null) { | |||||
| calibrationConfig_ = new global::Tensorflow.Models.ObjectDetection.Protos.CalibrationConfig(); | |||||
| } | |||||
| input.ReadMessage(calibrationConfig_); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #region Nested types | |||||
| /// <summary>Container for nested types declared in the PostProcessing message type.</summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static partial class Types { | |||||
| /// <summary> | |||||
| /// Enum to specify how to convert the detection scores. | |||||
| /// </summary> | |||||
| public enum ScoreConverter { | |||||
| /// <summary> | |||||
| /// Input scores equals output scores. | |||||
| /// </summary> | |||||
| [pbr::OriginalName("IDENTITY")] Identity = 0, | |||||
| /// <summary> | |||||
| /// Applies a sigmoid on input scores. | |||||
| /// </summary> | |||||
| [pbr::OriginalName("SIGMOID")] Sigmoid = 1, | |||||
| /// <summary> | |||||
| /// Applies a softmax on input scores | |||||
| /// </summary> | |||||
| [pbr::OriginalName("SOFTMAX")] Softmax = 2, | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,791 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/region_similarity_calculator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/region_similarity_calculator.proto</summary> | |||||
| public static partial class RegionSimilarityCalculatorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/region_similarity_calculator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static RegionSimilarityCalculatorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjpvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9yZWdpb25fc2ltaWxhcml0eV9j", | |||||
| "YWxjdWxhdG9yLnByb3RvEhdvYmplY3RfZGV0ZWN0aW9uLnByb3RvcyLeAgoa", | |||||
| "UmVnaW9uU2ltaWxhcml0eUNhbGN1bGF0b3ISTgoWbmVnX3NxX2Rpc3Rfc2lt", | |||||
| "aWxhcml0eRgBIAEoCzIsLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLk5lZ1Nx", | |||||
| "RGlzdFNpbWlsYXJpdHlIABJACg5pb3Vfc2ltaWxhcml0eRgCIAEoCzImLm9i", | |||||
| "amVjdF9kZXRlY3Rpb24ucHJvdG9zLklvdVNpbWlsYXJpdHlIABJACg5pb2Ff", | |||||
| "c2ltaWxhcml0eRgDIAEoCzImLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLklv", | |||||
| "YVNpbWlsYXJpdHlIABJXChp0aHJlc2hvbGRlZF9pb3Vfc2ltaWxhcml0eRgE", | |||||
| "IAEoCzIxLm9iamVjdF9kZXRlY3Rpb24ucHJvdG9zLlRocmVzaG9sZGVkSW91", | |||||
| "U2ltaWxhcml0eUgAQhMKEXJlZ2lvbl9zaW1pbGFyaXR5IhUKE05lZ1NxRGlz", | |||||
| "dFNpbWlsYXJpdHkiDwoNSW91U2ltaWxhcml0eSIPCg1Jb2FTaW1pbGFyaXR5", | |||||
| "IjEKGFRocmVzaG9sZGVkSW91U2ltaWxhcml0eRIVCg1pb3VfdGhyZXNob2xk", | |||||
| "GAEgASgCYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculator), global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculator.Parser, new[]{ "NegSqDistSimilarity", "IouSimilarity", "IoaSimilarity", "ThresholdedIouSimilarity" }, new[]{ "RegionSimilarity" }, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity), global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity.Parser, null, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity), global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity.Parser, null, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity), global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity.Parser, null, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity), global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity.Parser, new[]{ "IouThreshold" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for region similarity calculators. See | |||||
| /// core/region_similarity_calculator.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class RegionSimilarityCalculator : pb::IMessage<RegionSimilarityCalculator> { | |||||
| private static readonly pb::MessageParser<RegionSimilarityCalculator> _parser = new pb::MessageParser<RegionSimilarityCalculator>(() => new RegionSimilarityCalculator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<RegionSimilarityCalculator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculatorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public RegionSimilarityCalculator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public RegionSimilarityCalculator(RegionSimilarityCalculator other) : this() { | |||||
| switch (other.RegionSimilarityCase) { | |||||
| case RegionSimilarityOneofCase.NegSqDistSimilarity: | |||||
| NegSqDistSimilarity = other.NegSqDistSimilarity.Clone(); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.IouSimilarity: | |||||
| IouSimilarity = other.IouSimilarity.Clone(); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.IoaSimilarity: | |||||
| IoaSimilarity = other.IoaSimilarity.Clone(); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.ThresholdedIouSimilarity: | |||||
| ThresholdedIouSimilarity = other.ThresholdedIouSimilarity.Clone(); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public RegionSimilarityCalculator Clone() { | |||||
| return new RegionSimilarityCalculator(this); | |||||
| } | |||||
| /// <summary>Field number for the "neg_sq_dist_similarity" field.</summary> | |||||
| public const int NegSqDistSimilarityFieldNumber = 1; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity NegSqDistSimilarity { | |||||
| get { return regionSimilarityCase_ == RegionSimilarityOneofCase.NegSqDistSimilarity ? (global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity) regionSimilarity_ : null; } | |||||
| set { | |||||
| regionSimilarity_ = value; | |||||
| regionSimilarityCase_ = value == null ? RegionSimilarityOneofCase.None : RegionSimilarityOneofCase.NegSqDistSimilarity; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "iou_similarity" field.</summary> | |||||
| public const int IouSimilarityFieldNumber = 2; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity IouSimilarity { | |||||
| get { return regionSimilarityCase_ == RegionSimilarityOneofCase.IouSimilarity ? (global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity) regionSimilarity_ : null; } | |||||
| set { | |||||
| regionSimilarity_ = value; | |||||
| regionSimilarityCase_ = value == null ? RegionSimilarityOneofCase.None : RegionSimilarityOneofCase.IouSimilarity; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "ioa_similarity" field.</summary> | |||||
| public const int IoaSimilarityFieldNumber = 3; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity IoaSimilarity { | |||||
| get { return regionSimilarityCase_ == RegionSimilarityOneofCase.IoaSimilarity ? (global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity) regionSimilarity_ : null; } | |||||
| set { | |||||
| regionSimilarity_ = value; | |||||
| regionSimilarityCase_ = value == null ? RegionSimilarityOneofCase.None : RegionSimilarityOneofCase.IoaSimilarity; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "thresholded_iou_similarity" field.</summary> | |||||
| public const int ThresholdedIouSimilarityFieldNumber = 4; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity ThresholdedIouSimilarity { | |||||
| get { return regionSimilarityCase_ == RegionSimilarityOneofCase.ThresholdedIouSimilarity ? (global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity) regionSimilarity_ : null; } | |||||
| set { | |||||
| regionSimilarity_ = value; | |||||
| regionSimilarityCase_ = value == null ? RegionSimilarityOneofCase.None : RegionSimilarityOneofCase.ThresholdedIouSimilarity; | |||||
| } | |||||
| } | |||||
| private object regionSimilarity_; | |||||
| /// <summary>Enum of possible cases for the "region_similarity" oneof.</summary> | |||||
| public enum RegionSimilarityOneofCase { | |||||
| None = 0, | |||||
| NegSqDistSimilarity = 1, | |||||
| IouSimilarity = 2, | |||||
| IoaSimilarity = 3, | |||||
| ThresholdedIouSimilarity = 4, | |||||
| } | |||||
| private RegionSimilarityOneofCase regionSimilarityCase_ = RegionSimilarityOneofCase.None; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public RegionSimilarityOneofCase RegionSimilarityCase { | |||||
| get { return regionSimilarityCase_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void ClearRegionSimilarity() { | |||||
| regionSimilarityCase_ = RegionSimilarityOneofCase.None; | |||||
| regionSimilarity_ = null; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as RegionSimilarityCalculator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(RegionSimilarityCalculator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!object.Equals(NegSqDistSimilarity, other.NegSqDistSimilarity)) return false; | |||||
| if (!object.Equals(IouSimilarity, other.IouSimilarity)) return false; | |||||
| if (!object.Equals(IoaSimilarity, other.IoaSimilarity)) return false; | |||||
| if (!object.Equals(ThresholdedIouSimilarity, other.ThresholdedIouSimilarity)) return false; | |||||
| if (RegionSimilarityCase != other.RegionSimilarityCase) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.NegSqDistSimilarity) hash ^= NegSqDistSimilarity.GetHashCode(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IouSimilarity) hash ^= IouSimilarity.GetHashCode(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IoaSimilarity) hash ^= IoaSimilarity.GetHashCode(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.ThresholdedIouSimilarity) hash ^= ThresholdedIouSimilarity.GetHashCode(); | |||||
| hash ^= (int) regionSimilarityCase_; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.NegSqDistSimilarity) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteMessage(NegSqDistSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IouSimilarity) { | |||||
| output.WriteRawTag(18); | |||||
| output.WriteMessage(IouSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IoaSimilarity) { | |||||
| output.WriteRawTag(26); | |||||
| output.WriteMessage(IoaSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.ThresholdedIouSimilarity) { | |||||
| output.WriteRawTag(34); | |||||
| output.WriteMessage(ThresholdedIouSimilarity); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.NegSqDistSimilarity) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(NegSqDistSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IouSimilarity) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(IouSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IoaSimilarity) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(IoaSimilarity); | |||||
| } | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.ThresholdedIouSimilarity) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeMessageSize(ThresholdedIouSimilarity); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(RegionSimilarityCalculator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| switch (other.RegionSimilarityCase) { | |||||
| case RegionSimilarityOneofCase.NegSqDistSimilarity: | |||||
| if (NegSqDistSimilarity == null) { | |||||
| NegSqDistSimilarity = new global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity(); | |||||
| } | |||||
| NegSqDistSimilarity.MergeFrom(other.NegSqDistSimilarity); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.IouSimilarity: | |||||
| if (IouSimilarity == null) { | |||||
| IouSimilarity = new global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity(); | |||||
| } | |||||
| IouSimilarity.MergeFrom(other.IouSimilarity); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.IoaSimilarity: | |||||
| if (IoaSimilarity == null) { | |||||
| IoaSimilarity = new global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity(); | |||||
| } | |||||
| IoaSimilarity.MergeFrom(other.IoaSimilarity); | |||||
| break; | |||||
| case RegionSimilarityOneofCase.ThresholdedIouSimilarity: | |||||
| if (ThresholdedIouSimilarity == null) { | |||||
| ThresholdedIouSimilarity = new global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity(); | |||||
| } | |||||
| ThresholdedIouSimilarity.MergeFrom(other.ThresholdedIouSimilarity); | |||||
| break; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.NegSqDistSimilarity(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.NegSqDistSimilarity) { | |||||
| subBuilder.MergeFrom(NegSqDistSimilarity); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| NegSqDistSimilarity = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 18: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.IouSimilarity(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IouSimilarity) { | |||||
| subBuilder.MergeFrom(IouSimilarity); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| IouSimilarity = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 26: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.IoaSimilarity(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.IoaSimilarity) { | |||||
| subBuilder.MergeFrom(IoaSimilarity); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| IoaSimilarity = subBuilder; | |||||
| break; | |||||
| } | |||||
| case 34: { | |||||
| global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity subBuilder = new global::Tensorflow.Models.ObjectDetection.Protos.ThresholdedIouSimilarity(); | |||||
| if (regionSimilarityCase_ == RegionSimilarityOneofCase.ThresholdedIouSimilarity) { | |||||
| subBuilder.MergeFrom(ThresholdedIouSimilarity); | |||||
| } | |||||
| input.ReadMessage(subBuilder); | |||||
| ThresholdedIouSimilarity = subBuilder; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Configuration for negative squared distance similarity calculator. | |||||
| /// </summary> | |||||
| public sealed partial class NegSqDistSimilarity : pb::IMessage<NegSqDistSimilarity> { | |||||
| private static readonly pb::MessageParser<NegSqDistSimilarity> _parser = new pb::MessageParser<NegSqDistSimilarity>(() => new NegSqDistSimilarity()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<NegSqDistSimilarity> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculatorReflection.Descriptor.MessageTypes[1]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public NegSqDistSimilarity() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public NegSqDistSimilarity(NegSqDistSimilarity other) : this() { | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public NegSqDistSimilarity Clone() { | |||||
| return new NegSqDistSimilarity(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as NegSqDistSimilarity); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(NegSqDistSimilarity other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(NegSqDistSimilarity other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Configuration for intersection-over-union (IOU) similarity calculator. | |||||
| /// </summary> | |||||
| public sealed partial class IouSimilarity : pb::IMessage<IouSimilarity> { | |||||
| private static readonly pb::MessageParser<IouSimilarity> _parser = new pb::MessageParser<IouSimilarity>(() => new IouSimilarity()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<IouSimilarity> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculatorReflection.Descriptor.MessageTypes[2]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IouSimilarity() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IouSimilarity(IouSimilarity other) : this() { | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IouSimilarity Clone() { | |||||
| return new IouSimilarity(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as IouSimilarity); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(IouSimilarity other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(IouSimilarity other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Configuration for intersection-over-area (IOA) similarity calculator. | |||||
| /// </summary> | |||||
| public sealed partial class IoaSimilarity : pb::IMessage<IoaSimilarity> { | |||||
| private static readonly pb::MessageParser<IoaSimilarity> _parser = new pb::MessageParser<IoaSimilarity>(() => new IoaSimilarity()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<IoaSimilarity> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculatorReflection.Descriptor.MessageTypes[3]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IoaSimilarity() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IoaSimilarity(IoaSimilarity other) : this() { | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public IoaSimilarity Clone() { | |||||
| return new IoaSimilarity(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as IoaSimilarity); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(IoaSimilarity other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(IoaSimilarity other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| /// <summary> | |||||
| /// Configuration for thresholded-intersection-over-union similarity calculator. | |||||
| /// </summary> | |||||
| public sealed partial class ThresholdedIouSimilarity : pb::IMessage<ThresholdedIouSimilarity> { | |||||
| private static readonly pb::MessageParser<ThresholdedIouSimilarity> _parser = new pb::MessageParser<ThresholdedIouSimilarity>(() => new ThresholdedIouSimilarity()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<ThresholdedIouSimilarity> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.RegionSimilarityCalculatorReflection.Descriptor.MessageTypes[4]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ThresholdedIouSimilarity() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ThresholdedIouSimilarity(ThresholdedIouSimilarity other) : this() { | |||||
| iouThreshold_ = other.iouThreshold_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public ThresholdedIouSimilarity Clone() { | |||||
| return new ThresholdedIouSimilarity(this); | |||||
| } | |||||
| /// <summary>Field number for the "iou_threshold" field.</summary> | |||||
| public const int IouThresholdFieldNumber = 1; | |||||
| private float iouThreshold_; | |||||
| /// <summary> | |||||
| /// IOU threshold used for filtering scores. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float IouThreshold { | |||||
| get { return iouThreshold_; } | |||||
| set { | |||||
| iouThreshold_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as ThresholdedIouSimilarity); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(ThresholdedIouSimilarity other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(IouThreshold, other.IouThreshold)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (IouThreshold != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(IouThreshold); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (IouThreshold != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(IouThreshold); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (IouThreshold != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(ThresholdedIouSimilarity other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.IouThreshold != 0F) { | |||||
| IouThreshold = other.IouThreshold; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| IouThreshold = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,240 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/square_box_coder.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/square_box_coder.proto</summary> | |||||
| public static partial class SquareBoxCoderReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/square_box_coder.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static SquareBoxCoderReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "Ci5vYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9zcXVhcmVfYm94X2NvZGVyLnBy", | |||||
| "b3RvEhdvYmplY3RfZGV0ZWN0aW9uLnByb3RvcyJICg5TcXVhcmVCb3hDb2Rl", | |||||
| "chIPCgd5X3NjYWxlGAEgASgCEg8KB3hfc2NhbGUYAiABKAISFAoMbGVuZ3Ro", | |||||
| "X3NjYWxlGAMgASgCYgZwcm90bzM=")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder), global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoder.Parser, new[]{ "YScale", "XScale", "LengthScale" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for SquareBoxCoder. See | |||||
| /// box_coders/square_box_coder.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class SquareBoxCoder : pb::IMessage<SquareBoxCoder> { | |||||
| private static readonly pb::MessageParser<SquareBoxCoder> _parser = new pb::MessageParser<SquareBoxCoder>(() => new SquareBoxCoder()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<SquareBoxCoder> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.SquareBoxCoderReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SquareBoxCoder() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SquareBoxCoder(SquareBoxCoder other) : this() { | |||||
| yScale_ = other.yScale_; | |||||
| xScale_ = other.xScale_; | |||||
| lengthScale_ = other.lengthScale_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SquareBoxCoder Clone() { | |||||
| return new SquareBoxCoder(this); | |||||
| } | |||||
| /// <summary>Field number for the "y_scale" field.</summary> | |||||
| public const int YScaleFieldNumber = 1; | |||||
| private float yScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box center. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float YScale { | |||||
| get { return yScale_; } | |||||
| set { | |||||
| yScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "x_scale" field.</summary> | |||||
| public const int XScaleFieldNumber = 2; | |||||
| private float xScale_; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float XScale { | |||||
| get { return xScale_; } | |||||
| set { | |||||
| xScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "length_scale" field.</summary> | |||||
| public const int LengthScaleFieldNumber = 3; | |||||
| private float lengthScale_; | |||||
| /// <summary> | |||||
| /// Scale factor for anchor encoded box length. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float LengthScale { | |||||
| get { return lengthScale_; } | |||||
| set { | |||||
| lengthScale_ = value; | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as SquareBoxCoder); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(SquareBoxCoder other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(YScale, other.YScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(XScale, other.XScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(LengthScale, other.LengthScale)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (YScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(YScale); | |||||
| if (XScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(XScale); | |||||
| if (LengthScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(LengthScale); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (YScale != 0F) { | |||||
| output.WriteRawTag(13); | |||||
| output.WriteFloat(YScale); | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(XScale); | |||||
| } | |||||
| if (LengthScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(LengthScale); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (YScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (XScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (LengthScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(SquareBoxCoder other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.YScale != 0F) { | |||||
| YScale = other.YScale; | |||||
| } | |||||
| if (other.XScale != 0F) { | |||||
| XScale = other.XScale; | |||||
| } | |||||
| if (other.LengthScale != 0F) { | |||||
| LengthScale = other.LengthScale; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 13: { | |||||
| YScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| XScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| LengthScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,526 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/ssd_anchor_generator.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/ssd_anchor_generator.proto</summary> | |||||
| public static partial class SsdAnchorGeneratorReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/ssd_anchor_generator.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static SsdAnchorGeneratorReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjJvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9zc2RfYW5jaG9yX2dlbmVyYXRv", | |||||
| "ci5wcm90bxIXb2JqZWN0X2RldGVjdGlvbi5wcm90b3Mi1QIKElNzZEFuY2hv", | |||||
| "ckdlbmVyYXRvchISCgpudW1fbGF5ZXJzGAEgASgFEhEKCW1pbl9zY2FsZRgC", | |||||
| "IAEoAhIRCgltYXhfc2NhbGUYAyABKAISDgoGc2NhbGVzGAwgAygCEhUKDWFz", | |||||
| "cGVjdF9yYXRpb3MYBCADKAISJwofaW50ZXJwb2xhdGVkX3NjYWxlX2FzcGVj", | |||||
| "dF9yYXRpbxgNIAEoAhIkChxyZWR1Y2VfYm94ZXNfaW5fbG93ZXN0X2xheWVy", | |||||
| "GAUgASgIEhoKEmJhc2VfYW5jaG9yX2hlaWdodBgGIAEoAhIZChFiYXNlX2Fu", | |||||
| "Y2hvcl93aWR0aBgHIAEoAhIVCg1oZWlnaHRfc3RyaWRlGAggAygFEhQKDHdp", | |||||
| "ZHRoX3N0cmlkZRgJIAMoBRIVCg1oZWlnaHRfb2Zmc2V0GAogAygFEhQKDHdp", | |||||
| "ZHRoX29mZnNldBgLIAMoBWIGcHJvdG8z")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator), global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator.Parser, new[]{ "NumLayers", "MinScale", "MaxScale", "Scales", "AspectRatios", "InterpolatedScaleAspectRatio", "ReduceBoxesInLowestLayer", "BaseAnchorHeight", "BaseAnchorWidth", "HeightStride", "WidthStride", "HeightOffset", "WidthOffset" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| /// <summary> | |||||
| /// Configuration proto for SSD anchor generator described in | |||||
| /// https://arxiv.org/abs/1512.02325. See | |||||
| /// anchor_generators/multiple_grid_anchor_generator.py for details. | |||||
| /// </summary> | |||||
| public sealed partial class SsdAnchorGenerator : pb::IMessage<SsdAnchorGenerator> { | |||||
| private static readonly pb::MessageParser<SsdAnchorGenerator> _parser = new pb::MessageParser<SsdAnchorGenerator>(() => new SsdAnchorGenerator()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<SsdAnchorGenerator> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGeneratorReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SsdAnchorGenerator() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SsdAnchorGenerator(SsdAnchorGenerator other) : this() { | |||||
| numLayers_ = other.numLayers_; | |||||
| minScale_ = other.minScale_; | |||||
| maxScale_ = other.maxScale_; | |||||
| scales_ = other.scales_.Clone(); | |||||
| aspectRatios_ = other.aspectRatios_.Clone(); | |||||
| interpolatedScaleAspectRatio_ = other.interpolatedScaleAspectRatio_; | |||||
| reduceBoxesInLowestLayer_ = other.reduceBoxesInLowestLayer_; | |||||
| baseAnchorHeight_ = other.baseAnchorHeight_; | |||||
| baseAnchorWidth_ = other.baseAnchorWidth_; | |||||
| heightStride_ = other.heightStride_.Clone(); | |||||
| widthStride_ = other.widthStride_.Clone(); | |||||
| heightOffset_ = other.heightOffset_.Clone(); | |||||
| widthOffset_ = other.widthOffset_.Clone(); | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public SsdAnchorGenerator Clone() { | |||||
| return new SsdAnchorGenerator(this); | |||||
| } | |||||
| /// <summary>Field number for the "num_layers" field.</summary> | |||||
| public const int NumLayersFieldNumber = 1; | |||||
| private int numLayers_; | |||||
| /// <summary> | |||||
| /// Number of grid layers to create anchors for. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int NumLayers { | |||||
| get { return numLayers_; } | |||||
| set { | |||||
| numLayers_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "min_scale" field.</summary> | |||||
| public const int MinScaleFieldNumber = 2; | |||||
| private float minScale_; | |||||
| /// <summary> | |||||
| /// Scale of anchors corresponding to finest resolution. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float MinScale { | |||||
| get { return minScale_; } | |||||
| set { | |||||
| minScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "max_scale" field.</summary> | |||||
| public const int MaxScaleFieldNumber = 3; | |||||
| private float maxScale_; | |||||
| /// <summary> | |||||
| /// Scale of anchors corresponding to coarsest resolution | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float MaxScale { | |||||
| get { return maxScale_; } | |||||
| set { | |||||
| maxScale_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "scales" field.</summary> | |||||
| public const int ScalesFieldNumber = 12; | |||||
| private static readonly pb::FieldCodec<float> _repeated_scales_codec | |||||
| = pb::FieldCodec.ForFloat(98); | |||||
| private readonly pbc::RepeatedField<float> scales_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// Can be used to override min_scale->max_scale, with an explicitly defined | |||||
| /// set of scales. If empty, then min_scale->max_scale is used. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> Scales { | |||||
| get { return scales_; } | |||||
| } | |||||
| /// <summary>Field number for the "aspect_ratios" field.</summary> | |||||
| public const int AspectRatiosFieldNumber = 4; | |||||
| private static readonly pb::FieldCodec<float> _repeated_aspectRatios_codec | |||||
| = pb::FieldCodec.ForFloat(34); | |||||
| private readonly pbc::RepeatedField<float> aspectRatios_ = new pbc::RepeatedField<float>(); | |||||
| /// <summary> | |||||
| /// Aspect ratios for anchors at each grid point. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<float> AspectRatios { | |||||
| get { return aspectRatios_; } | |||||
| } | |||||
| /// <summary>Field number for the "interpolated_scale_aspect_ratio" field.</summary> | |||||
| public const int InterpolatedScaleAspectRatioFieldNumber = 13; | |||||
| private float interpolatedScaleAspectRatio_; | |||||
| /// <summary> | |||||
| /// When this aspect ratio is greater than 0, then an additional | |||||
| /// anchor, with an interpolated scale is added with this aspect ratio. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float InterpolatedScaleAspectRatio { | |||||
| get { return interpolatedScaleAspectRatio_; } | |||||
| set { | |||||
| interpolatedScaleAspectRatio_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "reduce_boxes_in_lowest_layer" field.</summary> | |||||
| public const int ReduceBoxesInLowestLayerFieldNumber = 5; | |||||
| private bool reduceBoxesInLowestLayer_; | |||||
| /// <summary> | |||||
| /// Whether to use the following aspect ratio and scale combination for the | |||||
| /// layer with the finest resolution : (scale=0.1, aspect_ratio=1.0), | |||||
| /// (scale=min_scale, aspect_ration=2.0), (scale=min_scale, aspect_ratio=0.5). | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool ReduceBoxesInLowestLayer { | |||||
| get { return reduceBoxesInLowestLayer_; } | |||||
| set { | |||||
| reduceBoxesInLowestLayer_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "base_anchor_height" field.</summary> | |||||
| public const int BaseAnchorHeightFieldNumber = 6; | |||||
| private float baseAnchorHeight_; | |||||
| /// <summary> | |||||
| /// The base anchor size in height dimension. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float BaseAnchorHeight { | |||||
| get { return baseAnchorHeight_; } | |||||
| set { | |||||
| baseAnchorHeight_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "base_anchor_width" field.</summary> | |||||
| public const int BaseAnchorWidthFieldNumber = 7; | |||||
| private float baseAnchorWidth_; | |||||
| /// <summary> | |||||
| /// The base anchor size in width dimension. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public float BaseAnchorWidth { | |||||
| get { return baseAnchorWidth_; } | |||||
| set { | |||||
| baseAnchorWidth_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "height_stride" field.</summary> | |||||
| public const int HeightStrideFieldNumber = 8; | |||||
| private static readonly pb::FieldCodec<int> _repeated_heightStride_codec | |||||
| = pb::FieldCodec.ForInt32(66); | |||||
| private readonly pbc::RepeatedField<int> heightStride_ = new pbc::RepeatedField<int>(); | |||||
| /// <summary> | |||||
| /// Anchor stride in height dimension in pixels for each layer. The length of | |||||
| /// this field is expected to be equal to the value of num_layers. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<int> HeightStride { | |||||
| get { return heightStride_; } | |||||
| } | |||||
| /// <summary>Field number for the "width_stride" field.</summary> | |||||
| public const int WidthStrideFieldNumber = 9; | |||||
| private static readonly pb::FieldCodec<int> _repeated_widthStride_codec | |||||
| = pb::FieldCodec.ForInt32(74); | |||||
| private readonly pbc::RepeatedField<int> widthStride_ = new pbc::RepeatedField<int>(); | |||||
| /// <summary> | |||||
| /// Anchor stride in width dimension in pixels for each layer. The length of | |||||
| /// this field is expected to be equal to the value of num_layers. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<int> WidthStride { | |||||
| get { return widthStride_; } | |||||
| } | |||||
| /// <summary>Field number for the "height_offset" field.</summary> | |||||
| public const int HeightOffsetFieldNumber = 10; | |||||
| private static readonly pb::FieldCodec<int> _repeated_heightOffset_codec | |||||
| = pb::FieldCodec.ForInt32(82); | |||||
| private readonly pbc::RepeatedField<int> heightOffset_ = new pbc::RepeatedField<int>(); | |||||
| /// <summary> | |||||
| /// Anchor height offset in pixels for each layer. The length of this field is | |||||
| /// expected to be equal to the value of num_layers. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<int> HeightOffset { | |||||
| get { return heightOffset_; } | |||||
| } | |||||
| /// <summary>Field number for the "width_offset" field.</summary> | |||||
| public const int WidthOffsetFieldNumber = 11; | |||||
| private static readonly pb::FieldCodec<int> _repeated_widthOffset_codec | |||||
| = pb::FieldCodec.ForInt32(90); | |||||
| private readonly pbc::RepeatedField<int> widthOffset_ = new pbc::RepeatedField<int>(); | |||||
| /// <summary> | |||||
| /// Anchor width offset in pixels for each layer. The length of this field is | |||||
| /// expected to be equal to the value of num_layers. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<int> WidthOffset { | |||||
| get { return widthOffset_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as SsdAnchorGenerator); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(SsdAnchorGenerator other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (NumLayers != other.NumLayers) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MinScale, other.MinScale)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(MaxScale, other.MaxScale)) return false; | |||||
| if(!scales_.Equals(other.scales_)) return false; | |||||
| if(!aspectRatios_.Equals(other.aspectRatios_)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(InterpolatedScaleAspectRatio, other.InterpolatedScaleAspectRatio)) return false; | |||||
| if (ReduceBoxesInLowestLayer != other.ReduceBoxesInLowestLayer) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BaseAnchorHeight, other.BaseAnchorHeight)) return false; | |||||
| if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(BaseAnchorWidth, other.BaseAnchorWidth)) return false; | |||||
| if(!heightStride_.Equals(other.heightStride_)) return false; | |||||
| if(!widthStride_.Equals(other.widthStride_)) return false; | |||||
| if(!heightOffset_.Equals(other.heightOffset_)) return false; | |||||
| if(!widthOffset_.Equals(other.widthOffset_)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (NumLayers != 0) hash ^= NumLayers.GetHashCode(); | |||||
| if (MinScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MinScale); | |||||
| if (MaxScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(MaxScale); | |||||
| hash ^= scales_.GetHashCode(); | |||||
| hash ^= aspectRatios_.GetHashCode(); | |||||
| if (InterpolatedScaleAspectRatio != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(InterpolatedScaleAspectRatio); | |||||
| if (ReduceBoxesInLowestLayer != false) hash ^= ReduceBoxesInLowestLayer.GetHashCode(); | |||||
| if (BaseAnchorHeight != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BaseAnchorHeight); | |||||
| if (BaseAnchorWidth != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(BaseAnchorWidth); | |||||
| hash ^= heightStride_.GetHashCode(); | |||||
| hash ^= widthStride_.GetHashCode(); | |||||
| hash ^= heightOffset_.GetHashCode(); | |||||
| hash ^= widthOffset_.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (NumLayers != 0) { | |||||
| output.WriteRawTag(8); | |||||
| output.WriteInt32(NumLayers); | |||||
| } | |||||
| if (MinScale != 0F) { | |||||
| output.WriteRawTag(21); | |||||
| output.WriteFloat(MinScale); | |||||
| } | |||||
| if (MaxScale != 0F) { | |||||
| output.WriteRawTag(29); | |||||
| output.WriteFloat(MaxScale); | |||||
| } | |||||
| aspectRatios_.WriteTo(output, _repeated_aspectRatios_codec); | |||||
| if (ReduceBoxesInLowestLayer != false) { | |||||
| output.WriteRawTag(40); | |||||
| output.WriteBool(ReduceBoxesInLowestLayer); | |||||
| } | |||||
| if (BaseAnchorHeight != 0F) { | |||||
| output.WriteRawTag(53); | |||||
| output.WriteFloat(BaseAnchorHeight); | |||||
| } | |||||
| if (BaseAnchorWidth != 0F) { | |||||
| output.WriteRawTag(61); | |||||
| output.WriteFloat(BaseAnchorWidth); | |||||
| } | |||||
| heightStride_.WriteTo(output, _repeated_heightStride_codec); | |||||
| widthStride_.WriteTo(output, _repeated_widthStride_codec); | |||||
| heightOffset_.WriteTo(output, _repeated_heightOffset_codec); | |||||
| widthOffset_.WriteTo(output, _repeated_widthOffset_codec); | |||||
| scales_.WriteTo(output, _repeated_scales_codec); | |||||
| if (InterpolatedScaleAspectRatio != 0F) { | |||||
| output.WriteRawTag(109); | |||||
| output.WriteFloat(InterpolatedScaleAspectRatio); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (NumLayers != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumLayers); | |||||
| } | |||||
| if (MinScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (MaxScale != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| size += scales_.CalculateSize(_repeated_scales_codec); | |||||
| size += aspectRatios_.CalculateSize(_repeated_aspectRatios_codec); | |||||
| if (InterpolatedScaleAspectRatio != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (ReduceBoxesInLowestLayer != false) { | |||||
| size += 1 + 1; | |||||
| } | |||||
| if (BaseAnchorHeight != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| if (BaseAnchorWidth != 0F) { | |||||
| size += 1 + 4; | |||||
| } | |||||
| size += heightStride_.CalculateSize(_repeated_heightStride_codec); | |||||
| size += widthStride_.CalculateSize(_repeated_widthStride_codec); | |||||
| size += heightOffset_.CalculateSize(_repeated_heightOffset_codec); | |||||
| size += widthOffset_.CalculateSize(_repeated_widthOffset_codec); | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(SsdAnchorGenerator other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.NumLayers != 0) { | |||||
| NumLayers = other.NumLayers; | |||||
| } | |||||
| if (other.MinScale != 0F) { | |||||
| MinScale = other.MinScale; | |||||
| } | |||||
| if (other.MaxScale != 0F) { | |||||
| MaxScale = other.MaxScale; | |||||
| } | |||||
| scales_.Add(other.scales_); | |||||
| aspectRatios_.Add(other.aspectRatios_); | |||||
| if (other.InterpolatedScaleAspectRatio != 0F) { | |||||
| InterpolatedScaleAspectRatio = other.InterpolatedScaleAspectRatio; | |||||
| } | |||||
| if (other.ReduceBoxesInLowestLayer != false) { | |||||
| ReduceBoxesInLowestLayer = other.ReduceBoxesInLowestLayer; | |||||
| } | |||||
| if (other.BaseAnchorHeight != 0F) { | |||||
| BaseAnchorHeight = other.BaseAnchorHeight; | |||||
| } | |||||
| if (other.BaseAnchorWidth != 0F) { | |||||
| BaseAnchorWidth = other.BaseAnchorWidth; | |||||
| } | |||||
| heightStride_.Add(other.heightStride_); | |||||
| widthStride_.Add(other.widthStride_); | |||||
| heightOffset_.Add(other.heightOffset_); | |||||
| widthOffset_.Add(other.widthOffset_); | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 8: { | |||||
| NumLayers = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 21: { | |||||
| MinScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 29: { | |||||
| MaxScale = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 34: | |||||
| case 37: { | |||||
| aspectRatios_.AddEntriesFrom(input, _repeated_aspectRatios_codec); | |||||
| break; | |||||
| } | |||||
| case 40: { | |||||
| ReduceBoxesInLowestLayer = input.ReadBool(); | |||||
| break; | |||||
| } | |||||
| case 53: { | |||||
| BaseAnchorHeight = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 61: { | |||||
| BaseAnchorWidth = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| case 66: | |||||
| case 64: { | |||||
| heightStride_.AddEntriesFrom(input, _repeated_heightStride_codec); | |||||
| break; | |||||
| } | |||||
| case 74: | |||||
| case 72: { | |||||
| widthStride_.AddEntriesFrom(input, _repeated_widthStride_codec); | |||||
| break; | |||||
| } | |||||
| case 82: | |||||
| case 80: { | |||||
| heightOffset_.AddEntriesFrom(input, _repeated_heightOffset_codec); | |||||
| break; | |||||
| } | |||||
| case 90: | |||||
| case 88: { | |||||
| widthOffset_.AddEntriesFrom(input, _repeated_widthOffset_codec); | |||||
| break; | |||||
| } | |||||
| case 98: | |||||
| case 101: { | |||||
| scales_.AddEntriesFrom(input, _repeated_scales_codec); | |||||
| break; | |||||
| } | |||||
| case 109: { | |||||
| InterpolatedScaleAspectRatio = input.ReadFloat(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,365 @@ | |||||
| // <auto-generated> | |||||
| // Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
| // source: object_detection/protos/string_int_label_map.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 Tensorflow.Models.ObjectDetection.Protos { | |||||
| /// <summary>Holder for reflection information generated from object_detection/protos/string_int_label_map.proto</summary> | |||||
| public static partial class StringIntLabelMapReflection { | |||||
| #region Descriptor | |||||
| /// <summary>File descriptor for object_detection/protos/string_int_label_map.proto</summary> | |||||
| public static pbr::FileDescriptor Descriptor { | |||||
| get { return descriptor; } | |||||
| } | |||||
| private static pbr::FileDescriptor descriptor; | |||||
| static StringIntLabelMapReflection() { | |||||
| byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
| string.Concat( | |||||
| "CjJvYmplY3RfZGV0ZWN0aW9uL3Byb3Rvcy9zdHJpbmdfaW50X2xhYmVsX21h", | |||||
| "cC5wcm90bxIXb2JqZWN0X2RldGVjdGlvbi5wcm90b3MiRwoVU3RyaW5nSW50", | |||||
| "TGFiZWxNYXBJdGVtEgwKBG5hbWUYASABKAkSCgoCaWQYAiABKAUSFAoMZGlz", | |||||
| "cGxheV9uYW1lGAMgASgJIlEKEVN0cmluZ0ludExhYmVsTWFwEjwKBGl0ZW0Y", | |||||
| "ASADKAsyLi5vYmplY3RfZGV0ZWN0aW9uLnByb3Rvcy5TdHJpbmdJbnRMYWJl", | |||||
| "bE1hcEl0ZW1iBnByb3RvMw==")); | |||||
| descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
| new pbr::FileDescriptor[] { }, | |||||
| new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem), global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem.Parser, new[]{ "Name", "Id", "DisplayName" }, null, null, null), | |||||
| new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMap), global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMap.Parser, new[]{ "Item" }, null, null, null) | |||||
| })); | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #region Messages | |||||
| public sealed partial class StringIntLabelMapItem : pb::IMessage<StringIntLabelMapItem> { | |||||
| private static readonly pb::MessageParser<StringIntLabelMapItem> _parser = new pb::MessageParser<StringIntLabelMapItem>(() => new StringIntLabelMapItem()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<StringIntLabelMapItem> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapReflection.Descriptor.MessageTypes[0]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMapItem() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMapItem(StringIntLabelMapItem other) : this() { | |||||
| name_ = other.name_; | |||||
| id_ = other.id_; | |||||
| displayName_ = other.displayName_; | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMapItem Clone() { | |||||
| return new StringIntLabelMapItem(this); | |||||
| } | |||||
| /// <summary>Field number for the "name" field.</summary> | |||||
| public const int NameFieldNumber = 1; | |||||
| private string name_ = ""; | |||||
| /// <summary> | |||||
| /// String name. The most common practice is to set this to a MID or synsets | |||||
| /// id. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string Name { | |||||
| get { return name_; } | |||||
| set { | |||||
| name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "id" field.</summary> | |||||
| public const int IdFieldNumber = 2; | |||||
| private int id_; | |||||
| /// <summary> | |||||
| /// Integer id that maps to the string name above. Label ids should start from | |||||
| /// 1. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int Id { | |||||
| get { return id_; } | |||||
| set { | |||||
| id_ = value; | |||||
| } | |||||
| } | |||||
| /// <summary>Field number for the "display_name" field.</summary> | |||||
| public const int DisplayNameFieldNumber = 3; | |||||
| private string displayName_ = ""; | |||||
| /// <summary> | |||||
| /// Human readable string label. | |||||
| /// </summary> | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public string DisplayName { | |||||
| get { return displayName_; } | |||||
| set { | |||||
| displayName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as StringIntLabelMapItem); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(StringIntLabelMapItem other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if (Name != other.Name) return false; | |||||
| if (Id != other.Id) return false; | |||||
| if (DisplayName != other.DisplayName) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| if (Name.Length != 0) hash ^= Name.GetHashCode(); | |||||
| if (Id != 0) hash ^= Id.GetHashCode(); | |||||
| if (DisplayName.Length != 0) hash ^= DisplayName.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| if (Name.Length != 0) { | |||||
| output.WriteRawTag(10); | |||||
| output.WriteString(Name); | |||||
| } | |||||
| if (Id != 0) { | |||||
| output.WriteRawTag(16); | |||||
| output.WriteInt32(Id); | |||||
| } | |||||
| if (DisplayName.Length != 0) { | |||||
| output.WriteRawTag(26); | |||||
| output.WriteString(DisplayName); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| if (Name.Length != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); | |||||
| } | |||||
| if (Id != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeInt32Size(Id); | |||||
| } | |||||
| if (DisplayName.Length != 0) { | |||||
| size += 1 + pb::CodedOutputStream.ComputeStringSize(DisplayName); | |||||
| } | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(StringIntLabelMapItem other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| if (other.Name.Length != 0) { | |||||
| Name = other.Name; | |||||
| } | |||||
| if (other.Id != 0) { | |||||
| Id = other.Id; | |||||
| } | |||||
| if (other.DisplayName.Length != 0) { | |||||
| DisplayName = other.DisplayName; | |||||
| } | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| Name = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| case 16: { | |||||
| Id = input.ReadInt32(); | |||||
| break; | |||||
| } | |||||
| case 26: { | |||||
| DisplayName = input.ReadString(); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| public sealed partial class StringIntLabelMap : pb::IMessage<StringIntLabelMap> { | |||||
| private static readonly pb::MessageParser<StringIntLabelMap> _parser = new pb::MessageParser<StringIntLabelMap>(() => new StringIntLabelMap()); | |||||
| private pb::UnknownFieldSet _unknownFields; | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pb::MessageParser<StringIntLabelMap> Parser { get { return _parser; } } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public static pbr::MessageDescriptor Descriptor { | |||||
| get { return global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapReflection.Descriptor.MessageTypes[1]; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
| get { return Descriptor; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMap() { | |||||
| OnConstruction(); | |||||
| } | |||||
| partial void OnConstruction(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMap(StringIntLabelMap other) : this() { | |||||
| item_ = other.item_.Clone(); | |||||
| _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public StringIntLabelMap Clone() { | |||||
| return new StringIntLabelMap(this); | |||||
| } | |||||
| /// <summary>Field number for the "item" field.</summary> | |||||
| public const int ItemFieldNumber = 1; | |||||
| private static readonly pb::FieldCodec<global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem> _repeated_item_codec | |||||
| = pb::FieldCodec.ForMessage(10, global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem.Parser); | |||||
| private readonly pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem> item_ = new pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem>(); | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public pbc::RepeatedField<global::Tensorflow.Models.ObjectDetection.Protos.StringIntLabelMapItem> Item { | |||||
| get { return item_; } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override bool Equals(object other) { | |||||
| return Equals(other as StringIntLabelMap); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public bool Equals(StringIntLabelMap other) { | |||||
| if (ReferenceEquals(other, null)) { | |||||
| return false; | |||||
| } | |||||
| if (ReferenceEquals(other, this)) { | |||||
| return true; | |||||
| } | |||||
| if(!item_.Equals(other.item_)) return false; | |||||
| return Equals(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override int GetHashCode() { | |||||
| int hash = 1; | |||||
| hash ^= item_.GetHashCode(); | |||||
| if (_unknownFields != null) { | |||||
| hash ^= _unknownFields.GetHashCode(); | |||||
| } | |||||
| return hash; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public override string ToString() { | |||||
| return pb::JsonFormatter.ToDiagnosticString(this); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void WriteTo(pb::CodedOutputStream output) { | |||||
| item_.WriteTo(output, _repeated_item_codec); | |||||
| if (_unknownFields != null) { | |||||
| _unknownFields.WriteTo(output); | |||||
| } | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public int CalculateSize() { | |||||
| int size = 0; | |||||
| size += item_.CalculateSize(_repeated_item_codec); | |||||
| if (_unknownFields != null) { | |||||
| size += _unknownFields.CalculateSize(); | |||||
| } | |||||
| return size; | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(StringIntLabelMap other) { | |||||
| if (other == null) { | |||||
| return; | |||||
| } | |||||
| item_.Add(other.item_); | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
| } | |||||
| [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
| public void MergeFrom(pb::CodedInputStream input) { | |||||
| uint tag; | |||||
| while ((tag = input.ReadTag()) != 0) { | |||||
| switch(tag) { | |||||
| default: | |||||
| _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
| break; | |||||
| case 10: { | |||||
| item_.AddEntriesFrom(input, _repeated_item_codec); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| } | |||||
| #endregion Designer generated code | |||||
| @@ -0,0 +1,13 @@ | |||||
| <Project Sdk="Microsoft.NET.Sdk"> | |||||
| <PropertyGroup> | |||||
| <TargetFramework>netcoreapp2.2</TargetFramework> | |||||
| <AssemblyName>TensorFlow.Models</AssemblyName> | |||||
| <RootNamespace>Tensorflow.Models</RootNamespace> | |||||
| </PropertyGroup> | |||||
| <ItemGroup> | |||||
| <ProjectReference Include="..\TensorFlowNET.Core\TensorFlowNET.Core.csproj" /> | |||||
| </ItemGroup> | |||||
| </Project> | |||||
| @@ -28,4 +28,8 @@ | |||||
| <ProjectReference Include="..\..\src\TensorFlowText\TensorFlowText.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowText\TensorFlowText.csproj" /> | ||||
| <ProjectReference Include="..\..\src\TensorFlowHub\TensorFlowHub.csproj" /> | <ProjectReference Include="..\..\src\TensorFlowHub\TensorFlowHub.csproj" /> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup> | |||||
| <Folder Include="ImageProcessing\ObjectDetection\" /> | |||||
| </ItemGroup> | |||||
| </Project> | </Project> | ||||