// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/automl/v1/detection.proto

package automl

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "github.com/golang/protobuf/ptypes/duration"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Annotation details for image object detection.
type ImageObjectDetectionAnnotation struct {
	// Output only. The rectangle representing the object location.
	BoundingBox *BoundingPoly `protobuf:"bytes,1,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"`
	// Output only. The confidence that this annotation is positive for the parent
	// example, value in [0, 1], higher means higher positivity confidence.
	Score                float32  `protobuf:"fixed32,2,opt,name=score,proto3" json:"score,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImageObjectDetectionAnnotation) Reset()         { *m = ImageObjectDetectionAnnotation{} }
func (m *ImageObjectDetectionAnnotation) String() string { return proto.CompactTextString(m) }
func (*ImageObjectDetectionAnnotation) ProtoMessage()    {}
func (*ImageObjectDetectionAnnotation) Descriptor() ([]byte, []int) {
	return fileDescriptor_7610e9887e92daa1, []int{0}
}

func (m *ImageObjectDetectionAnnotation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageObjectDetectionAnnotation.Unmarshal(m, b)
}
func (m *ImageObjectDetectionAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageObjectDetectionAnnotation.Marshal(b, m, deterministic)
}
func (m *ImageObjectDetectionAnnotation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageObjectDetectionAnnotation.Merge(m, src)
}
func (m *ImageObjectDetectionAnnotation) XXX_Size() int {
	return xxx_messageInfo_ImageObjectDetectionAnnotation.Size(m)
}
func (m *ImageObjectDetectionAnnotation) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageObjectDetectionAnnotation.DiscardUnknown(m)
}

var xxx_messageInfo_ImageObjectDetectionAnnotation proto.InternalMessageInfo

func (m *ImageObjectDetectionAnnotation) GetBoundingBox() *BoundingPoly {
	if m != nil {
		return m.BoundingBox
	}
	return nil
}

func (m *ImageObjectDetectionAnnotation) GetScore() float32 {
	if m != nil {
		return m.Score
	}
	return 0
}

// Bounding box matching model metrics for a single intersection-over-union
// threshold and multiple label match confidence thresholds.
type BoundingBoxMetricsEntry struct {
	// Output only. The intersection-over-union threshold value used to compute
	// this metrics entry.
	IouThreshold float32 `protobuf:"fixed32,1,opt,name=iou_threshold,json=iouThreshold,proto3" json:"iou_threshold,omitempty"`
	// Output only. The mean average precision, most often close to au_prc.
	MeanAveragePrecision float32 `protobuf:"fixed32,2,opt,name=mean_average_precision,json=meanAveragePrecision,proto3" json:"mean_average_precision,omitempty"`
	// Output only. Metrics for each label-match confidence_threshold from
	// 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is
	// derived from them.
	ConfidenceMetricsEntries []*BoundingBoxMetricsEntry_ConfidenceMetricsEntry `protobuf:"bytes,3,rep,name=confidence_metrics_entries,json=confidenceMetricsEntries,proto3" json:"confidence_metrics_entries,omitempty"`
	XXX_NoUnkeyedLiteral     struct{}                                          `json:"-"`
	XXX_unrecognized         []byte                                            `json:"-"`
	XXX_sizecache            int32                                             `json:"-"`
}

func (m *BoundingBoxMetricsEntry) Reset()         { *m = BoundingBoxMetricsEntry{} }
func (m *BoundingBoxMetricsEntry) String() string { return proto.CompactTextString(m) }
func (*BoundingBoxMetricsEntry) ProtoMessage()    {}
func (*BoundingBoxMetricsEntry) Descriptor() ([]byte, []int) {
	return fileDescriptor_7610e9887e92daa1, []int{1}
}

func (m *BoundingBoxMetricsEntry) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BoundingBoxMetricsEntry.Unmarshal(m, b)
}
func (m *BoundingBoxMetricsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BoundingBoxMetricsEntry.Marshal(b, m, deterministic)
}
func (m *BoundingBoxMetricsEntry) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BoundingBoxMetricsEntry.Merge(m, src)
}
func (m *BoundingBoxMetricsEntry) XXX_Size() int {
	return xxx_messageInfo_BoundingBoxMetricsEntry.Size(m)
}
func (m *BoundingBoxMetricsEntry) XXX_DiscardUnknown() {
	xxx_messageInfo_BoundingBoxMetricsEntry.DiscardUnknown(m)
}

var xxx_messageInfo_BoundingBoxMetricsEntry proto.InternalMessageInfo

func (m *BoundingBoxMetricsEntry) GetIouThreshold() float32 {
	if m != nil {
		return m.IouThreshold
	}
	return 0
}

func (m *BoundingBoxMetricsEntry) GetMeanAveragePrecision() float32 {
	if m != nil {
		return m.MeanAveragePrecision
	}
	return 0
}

func (m *BoundingBoxMetricsEntry) GetConfidenceMetricsEntries() []*BoundingBoxMetricsEntry_ConfidenceMetricsEntry {
	if m != nil {
		return m.ConfidenceMetricsEntries
	}
	return nil
}

// Metrics for a single confidence threshold.
type BoundingBoxMetricsEntry_ConfidenceMetricsEntry struct {
	// Output only. The confidence threshold value used to compute the metrics.
	ConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"`
	// Output only. Recall under the given confidence threshold.
	Recall float32 `protobuf:"fixed32,2,opt,name=recall,proto3" json:"recall,omitempty"`
	// Output only. Precision under the given confidence threshold.
	Precision float32 `protobuf:"fixed32,3,opt,name=precision,proto3" json:"precision,omitempty"`
	// Output only. The harmonic mean of recall and precision.
	F1Score              float32  `protobuf:"fixed32,4,opt,name=f1_score,json=f1Score,proto3" json:"f1_score,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) Reset() {
	*m = BoundingBoxMetricsEntry_ConfidenceMetricsEntry{}
}
func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) String() string {
	return proto.CompactTextString(m)
}
func (*BoundingBoxMetricsEntry_ConfidenceMetricsEntry) ProtoMessage() {}
func (*BoundingBoxMetricsEntry_ConfidenceMetricsEntry) Descriptor() ([]byte, []int) {
	return fileDescriptor_7610e9887e92daa1, []int{1, 0}
}

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry.Unmarshal(m, b)
}
func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry.Marshal(b, m, deterministic)
}
func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry.Merge(m, src)
}
func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) XXX_Size() int {
	return xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry.Size(m)
}
func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) XXX_DiscardUnknown() {
	xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry.DiscardUnknown(m)
}

var xxx_messageInfo_BoundingBoxMetricsEntry_ConfidenceMetricsEntry proto.InternalMessageInfo

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) GetConfidenceThreshold() float32 {
	if m != nil {
		return m.ConfidenceThreshold
	}
	return 0
}

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) GetRecall() float32 {
	if m != nil {
		return m.Recall
	}
	return 0
}

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) GetPrecision() float32 {
	if m != nil {
		return m.Precision
	}
	return 0
}

func (m *BoundingBoxMetricsEntry_ConfidenceMetricsEntry) GetF1Score() float32 {
	if m != nil {
		return m.F1Score
	}
	return 0
}

// Model evaluation metrics for image object detection problems.
// Evaluates prediction quality of labeled bounding boxes.
type ImageObjectDetectionEvaluationMetrics struct {
	// Output only. The total number of bounding boxes (i.e. summed over all
	// images) the ground truth used to create this evaluation had.
	EvaluatedBoundingBoxCount int32 `protobuf:"varint,1,opt,name=evaluated_bounding_box_count,json=evaluatedBoundingBoxCount,proto3" json:"evaluated_bounding_box_count,omitempty"`
	// Output only. The bounding boxes match metrics for each
	// Intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99
	// and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99
	// pair.
	BoundingBoxMetricsEntries []*BoundingBoxMetricsEntry `protobuf:"bytes,2,rep,name=bounding_box_metrics_entries,json=boundingBoxMetricsEntries,proto3" json:"bounding_box_metrics_entries,omitempty"`
	// Output only. The single metric for bounding boxes evaluation:
	// the mean_average_precision averaged over all bounding_box_metrics_entries.
	BoundingBoxMeanAveragePrecision float32  `protobuf:"fixed32,3,opt,name=bounding_box_mean_average_precision,json=boundingBoxMeanAveragePrecision,proto3" json:"bounding_box_mean_average_precision,omitempty"`
	XXX_NoUnkeyedLiteral            struct{} `json:"-"`
	XXX_unrecognized                []byte   `json:"-"`
	XXX_sizecache                   int32    `json:"-"`
}

func (m *ImageObjectDetectionEvaluationMetrics) Reset()         { *m = ImageObjectDetectionEvaluationMetrics{} }
func (m *ImageObjectDetectionEvaluationMetrics) String() string { return proto.CompactTextString(m) }
func (*ImageObjectDetectionEvaluationMetrics) ProtoMessage()    {}
func (*ImageObjectDetectionEvaluationMetrics) Descriptor() ([]byte, []int) {
	return fileDescriptor_7610e9887e92daa1, []int{2}
}

func (m *ImageObjectDetectionEvaluationMetrics) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageObjectDetectionEvaluationMetrics.Unmarshal(m, b)
}
func (m *ImageObjectDetectionEvaluationMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageObjectDetectionEvaluationMetrics.Marshal(b, m, deterministic)
}
func (m *ImageObjectDetectionEvaluationMetrics) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageObjectDetectionEvaluationMetrics.Merge(m, src)
}
func (m *ImageObjectDetectionEvaluationMetrics) XXX_Size() int {
	return xxx_messageInfo_ImageObjectDetectionEvaluationMetrics.Size(m)
}
func (m *ImageObjectDetectionEvaluationMetrics) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageObjectDetectionEvaluationMetrics.DiscardUnknown(m)
}

var xxx_messageInfo_ImageObjectDetectionEvaluationMetrics proto.InternalMessageInfo

func (m *ImageObjectDetectionEvaluationMetrics) GetEvaluatedBoundingBoxCount() int32 {
	if m != nil {
		return m.EvaluatedBoundingBoxCount
	}
	return 0
}

func (m *ImageObjectDetectionEvaluationMetrics) GetBoundingBoxMetricsEntries() []*BoundingBoxMetricsEntry {
	if m != nil {
		return m.BoundingBoxMetricsEntries
	}
	return nil
}

func (m *ImageObjectDetectionEvaluationMetrics) GetBoundingBoxMeanAveragePrecision() float32 {
	if m != nil {
		return m.BoundingBoxMeanAveragePrecision
	}
	return 0
}

func init() {
	proto.RegisterType((*ImageObjectDetectionAnnotation)(nil), "google.cloud.automl.v1.ImageObjectDetectionAnnotation")
	proto.RegisterType((*BoundingBoxMetricsEntry)(nil), "google.cloud.automl.v1.BoundingBoxMetricsEntry")
	proto.RegisterType((*BoundingBoxMetricsEntry_ConfidenceMetricsEntry)(nil), "google.cloud.automl.v1.BoundingBoxMetricsEntry.ConfidenceMetricsEntry")
	proto.RegisterType((*ImageObjectDetectionEvaluationMetrics)(nil), "google.cloud.automl.v1.ImageObjectDetectionEvaluationMetrics")
}

func init() {
	proto.RegisterFile("google/cloud/automl/v1/detection.proto", fileDescriptor_7610e9887e92daa1)
}

var fileDescriptor_7610e9887e92daa1 = []byte{
	// 555 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xc1, 0x6e, 0xd3, 0x40,
	0x10, 0x86, 0x65, 0x87, 0x16, 0xd8, 0x94, 0xcb, 0x12, 0x85, 0x24, 0x8a, 0x4a, 0xd4, 0x52, 0x94,
	0x93, 0x2d, 0x17, 0x4e, 0x06, 0x09, 0x25, 0xa1, 0x54, 0x48, 0xad, 0x88, 0x0c, 0xca, 0x01, 0x45,
	0xb2, 0xd6, 0xf6, 0xc4, 0x5d, 0x64, 0xef, 0x46, 0xeb, 0x75, 0xd4, 0x9c, 0xb8, 0xf0, 0x14, 0x88,
	0x07, 0x40, 0x7d, 0x14, 0x1e, 0x85, 0xa7, 0x40, 0xd9, 0x75, 0xe2, 0x34, 0xb8, 0x42, 0xdc, 0xbc,
	0xf3, 0xfd, 0xff, 0xce, 0x78, 0x66, 0x16, 0x3d, 0x8f, 0x39, 0x8f, 0x13, 0xb0, 0xc3, 0x84, 0xe7,
	0x91, 0x4d, 0x72, 0xc9, 0xd3, 0xc4, 0x5e, 0x38, 0x76, 0x04, 0x12, 0x42, 0x49, 0x39, 0xb3, 0xe6,
	0x82, 0x4b, 0x8e, 0x9b, 0x5a, 0x67, 0x29, 0x9d, 0xa5, 0x75, 0xd6, 0xc2, 0xe9, 0x74, 0x0b, 0x3f,
	0x99, 0x53, 0x9b, 0x30, 0xc6, 0x25, 0x59, 0x99, 0x32, 0xed, 0xea, 0x9c, 0xdc, 0x71, 0x7b, 0x0c,
	0x3c, 0x05, 0x29, 0x96, 0x85, 0xec, 0xb0, 0x90, 0xa9, 0x53, 0x90, 0xcf, 0xec, 0x28, 0x17, 0xa4,
	0x4c, 0x7e, 0xf4, 0x15, 0x1d, 0xbe, 0x4f, 0x49, 0x0c, 0x1f, 0x82, 0x2f, 0x10, 0xca, 0xb7, 0xeb,
	0xd2, 0x06, 0x9b, 0x7c, 0xf8, 0x1c, 0x1d, 0x04, 0x3c, 0x67, 0x11, 0x65, 0xb1, 0x1f, 0xf0, 0xeb,
	0x96, 0xd1, 0x33, 0xfa, 0xf5, 0xd3, 0x67, 0x56, 0x75, 0xd5, 0xd6, 0xb0, 0xd0, 0x8e, 0x79, 0xb2,
	0xf4, 0xea, 0x6b, 0xe7, 0x90, 0x5f, 0xe3, 0x06, 0xda, 0xcb, 0x42, 0x2e, 0xa0, 0x65, 0xf6, 0x8c,
	0xbe, 0xe9, 0xe9, 0xc3, 0xd1, 0xf7, 0x1a, 0x7a, 0x32, 0x2c, 0x55, 0x97, 0x20, 0x05, 0x0d, 0xb3,
	0x33, 0x26, 0xc5, 0x12, 0x1f, 0xa3, 0x47, 0x94, 0xe7, 0xbe, 0xbc, 0x12, 0x90, 0x5d, 0xf1, 0x24,
	0x52, 0xb9, 0x4d, 0xef, 0x80, 0xf2, 0xfc, 0xd3, 0x3a, 0x86, 0x5f, 0xa2, 0x66, 0x0a, 0x84, 0xf9,
	0x64, 0x01, 0x82, 0xc4, 0xe0, 0xcf, 0x05, 0x84, 0x34, 0xa3, 0x9c, 0x15, 0x79, 0x1a, 0x2b, 0x3a,
	0xd0, 0x70, 0xbc, 0x66, 0xf8, 0x9b, 0x81, 0x3a, 0x21, 0x67, 0x33, 0x1a, 0x01, 0x0b, 0xc1, 0x4f,
	0x75, 0x5a, 0x1f, 0x98, 0x14, 0x14, 0xb2, 0x56, 0xad, 0x57, 0xeb, 0xd7, 0x4f, 0xdf, 0xfd, 0xeb,
	0x27, 0x77, 0x0a, 0xb6, 0x46, 0x9b, 0x1b, 0xb7, 0xc3, 0x5e, 0x2b, 0xac, 0x8a, 0x53, 0xc8, 0x3a,
	0x3f, 0x0c, 0xd4, 0xac, 0x36, 0x61, 0x07, 0x35, 0xb6, 0x0a, 0xdc, 0xed, 0xc1, 0xe3, 0x92, 0x95,
	0xad, 0x68, 0xa2, 0x7d, 0x01, 0x21, 0x49, 0x92, 0xe2, 0xd7, 0x8b, 0x13, 0xee, 0xa2, 0x87, 0x65,
	0x57, 0x6a, 0x0a, 0x95, 0x01, 0xdc, 0x46, 0x0f, 0x66, 0x8e, 0xaf, 0x47, 0x73, 0x4f, 0xc1, 0xfb,
	0x33, 0xe7, 0xa3, 0x1a, 0xce, 0x4f, 0x13, 0x9d, 0x54, 0xad, 0xc7, 0xd9, 0x82, 0x24, 0xb9, 0x5a,
	0x8f, 0xa2, 0x64, 0xfc, 0x06, 0x75, 0x41, 0x07, 0x21, 0xf2, 0xb7, 0xf7, 0xc5, 0x0f, 0x79, 0xce,
	0xa4, 0xaa, 0x7a, 0xcf, 0x6b, 0x6f, 0x34, 0x5b, 0x1d, 0x1c, 0xad, 0x04, 0x78, 0x8e, 0xba, 0xb7,
	0x6c, 0xbb, 0x13, 0x31, 0xd5, 0x44, 0xec, 0xff, 0x9c, 0x88, 0xd7, 0x0e, 0x2a, 0x01, 0x85, 0x0c,
	0x5f, 0xa0, 0xe3, 0x9d, 0x8c, 0x95, 0x5b, 0xa4, 0xfb, 0xf5, 0xf4, 0xd6, 0x3d, 0x7f, 0x2f, 0xd4,
	0xf0, 0x46, 0x2d, 0x54, 0x7a, 0x47, 0x7d, 0x63, 0xe3, 0xf3, 0xeb, 0x82, 0xc4, 0x3c, 0x21, 0x2c,
	0xb6, 0xb8, 0x88, 0xed, 0x18, 0x98, 0x7a, 0x85, 0xb6, 0x46, 0x64, 0x4e, 0xb3, 0xdd, 0xf7, 0xfc,
	0x4a, 0x7f, 0xdd, 0x98, 0xcd, 0x73, 0x6d, 0x1f, 0xa9, 0x8b, 0x07, 0xb9, 0xe4, 0x97, 0x17, 0xd6,
	0xc4, 0xf9, 0xb5, 0x06, 0x53, 0x05, 0xa6, 0x0a, 0x24, 0xd3, 0x89, 0xf3, 0xdb, 0x6c, 0x6b, 0xe0,
	0xba, 0x8a, 0xb8, 0xae, 0xf6, 0xb8, 0xee, 0xc4, 0x09, 0xf6, 0x55, 0xda, 0x17, 0x7f, 0x02, 0x00,
	0x00, 0xff, 0xff, 0x67, 0x14, 0x09, 0x80, 0xa3, 0x04, 0x00, 0x00,
}
