Browse Source

generated ObjectDetection related protos for tf.models.

tags/v0.12
Oceania2018 6 years ago
parent
commit
fa41aac14c
34 changed files with 35129 additions and 0 deletions
  1. +6
    -0
      TensorFlow.NET.sln
  2. +343
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/AnchorGenerator.cs
  3. +343
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/ArgmaxMatcher.cs
  4. +181
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/BipartiteMatcher.cs
  5. +341
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/BoxCoder.cs
  6. +2587
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/BoxPredictor.cs
  7. +1413
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Calibration.cs
  8. +901
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Eval.cs
  9. +1592
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/FasterRcnn.cs
  10. +272
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/FasterRcnnBoxCoder.cs
  11. +476
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/FlexibleGridAnchorGenerator.cs
  12. +417
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/GraphRewriter.cs
  13. +386
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/GridAnchorGenerator.cs
  14. +2106
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Hyperparams.cs
  15. +1255
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/ImageResizer.cs
  16. +1225
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/InputReader.cs
  17. +300
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/KeypointBoxCoder.cs
  18. +3009
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Losses.cs
  19. +257
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Matcher.cs
  20. +180
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/MeanStddevBoxCoder.cs
  21. +255
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Model.cs
  22. +332
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/MultiscaleAnchorGenerator.cs
  23. +2231
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Optimizer.cs
  24. +352
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Pipeline.cs
  25. +685
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/PostProcessing.cs
  26. +8697
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Preprocessor.cs
  27. +791
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/RegionSimilarityCalculator.cs
  28. +240
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/SquareBoxCoder.cs
  29. +2028
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Ssd.cs
  30. +526
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/SsdAnchorGenerator.cs
  31. +365
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/StringIntLabelMap.cs
  32. +1020
    -0
      src/TensorFlowNET.Models/ObjectDetection/Protos/Train.cs
  33. +13
    -0
      src/TensorFlowNET.Models/TensorFlowNET.Models.csproj
  34. +4
    -0
      test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj

+ 6
- 0
TensorFlow.NET.sln View File

@@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowDatasets", "src\T
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Examples.GPU", "test\TensorFlowNET.Examples\TensorFlowNET.Examples.GPU.csproj", "{6F6B3382-8F87-4CD9-BF87-C81D5405685A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Models", "src\TensorFlowNET.Models\TensorFlowNET.Models.csproj", "{D03F94CF-B283-4730-B177-21A57641061F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE


+ 343
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/AnchorGenerator.cs View File

@@ -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

+ 343
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/ArgmaxMatcher.cs View File

@@ -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

+ 181
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/BipartiteMatcher.cs View File

@@ -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

+ 341
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/BoxCoder.cs View File

@@ -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

+ 2587
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/BoxPredictor.cs
File diff suppressed because it is too large
View File


+ 1413
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Calibration.cs
File diff suppressed because it is too large
View File


+ 901
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Eval.cs View File

@@ -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
/// &lt;label name> : &lt;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

+ 1592
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/FasterRcnn.cs
File diff suppressed because it is too large
View File


+ 272
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/FasterRcnnBoxCoder.cs View File

@@ -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

+ 476
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/FlexibleGridAnchorGenerator.cs View File

@@ -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

+ 417
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/GraphRewriter.cs View File

@@ -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

+ 386
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/GridAnchorGenerator.cs View File

@@ -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

+ 2106
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Hyperparams.cs
File diff suppressed because it is too large
View File


+ 1255
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/ImageResizer.cs
File diff suppressed because it is too large
View File


+ 1225
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/InputReader.cs
File diff suppressed because it is too large
View File


+ 300
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/KeypointBoxCoder.cs View File

@@ -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

+ 3009
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Losses.cs
File diff suppressed because it is too large
View File


+ 257
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Matcher.cs View File

@@ -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

+ 180
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/MeanStddevBoxCoder.cs View File

@@ -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

+ 255
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Model.cs View File

@@ -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

+ 332
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/MultiscaleAnchorGenerator.cs View File

@@ -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

+ 2231
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Optimizer.cs
File diff suppressed because it is too large
View File


+ 352
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Pipeline.cs View File

@@ -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

+ 685
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/PostProcessing.cs View File

@@ -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

+ 8697
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Preprocessor.cs
File diff suppressed because it is too large
View File


+ 791
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/RegionSimilarityCalculator.cs View File

@@ -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

+ 240
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/SquareBoxCoder.cs View File

@@ -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

+ 2028
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Ssd.cs
File diff suppressed because it is too large
View File


+ 526
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/SsdAnchorGenerator.cs View File

@@ -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

+ 365
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/StringIntLabelMap.cs View File

@@ -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

+ 1020
- 0
src/TensorFlowNET.Models/ObjectDetection/Protos/Train.cs
File diff suppressed because it is too large
View File


+ 13
- 0
src/TensorFlowNET.Models/TensorFlowNET.Models.csproj View File

@@ -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>

+ 4
- 0
test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj View File

@@ -28,4 +28,8 @@
<ProjectReference Include="..\..\src\TensorFlowText\TensorFlowText.csproj" />
<ProjectReference Include="..\..\src\TensorFlowHub\TensorFlowHub.csproj" />
</ItemGroup>

<ItemGroup>
<Folder Include="ImageProcessing\ObjectDetection\" />
</ItemGroup>
</Project>

Loading…
Cancel
Save