@@ -29,21 +29,22 @@ static ObjectDetectorOptionsReflection() {
2929 "LnRhc2tzLnZpc2lvbi5vYmplY3RfZGV0ZWN0b3IucHJvdG8aJG1lZGlhcGlw" ,
3030 "ZS9mcmFtZXdvcmsvY2FsY3VsYXRvci5wcm90bxosbWVkaWFwaXBlL2ZyYW1l" ,
3131 "d29yay9jYWxjdWxhdG9yX29wdGlvbnMucHJvdG8aMG1lZGlhcGlwZS90YXNr" ,
32- "cy9jYy9jb3JlL3Byb3RvL2Jhc2Vfb3B0aW9ucy5wcm90byLVAgoVT2JqZWN0 " ,
32+ "cy9jYy9jb3JlL3Byb3RvL2Jhc2Vfb3B0aW9ucy5wcm90byKcAwoVT2JqZWN0 " ,
3333 "RGV0ZWN0b3JPcHRpb25zEj0KDGJhc2Vfb3B0aW9ucxgBIAEoCzInLm1lZGlh" ,
3434 "cGlwZS50YXNrcy5jb3JlLnByb3RvLkJhc2VPcHRpb25zEiAKFGRpc3BsYXlf" ,
3535 "bmFtZXNfbG9jYWxlGAIgASgJOgJlbhIXCgttYXhfcmVzdWx0cxgDIAEoBToC" ,
3636 "LTESFwoPc2NvcmVfdGhyZXNob2xkGAQgASgCEhoKEmNhdGVnb3J5X2FsbG93" ,
37- "bGlzdBgFIAMoCRIZChFjYXRlZ29yeV9kZW55bGlzdBgGIAMoCTJyCgNleHQS" ,
38- "HC5tZWRpYXBpcGUuQ2FsY3VsYXRvck9wdGlvbnMYise50wEgASgLMkMubWVk" ,
39- "aWFwaXBlLnRhc2tzLnZpc2lvbi5vYmplY3RfZGV0ZWN0b3IucHJvdG8uT2Jq" ,
40- "ZWN0RGV0ZWN0b3JPcHRpb25zQlQKNmNvbS5nb29nbGUubWVkaWFwaXBlLnRh" ,
41- "c2tzLnZpc2lvbi5vYmplY3RkZXRlY3Rvci5wcm90b0IaT2JqZWN0RGV0ZWN0" ,
42- "b3JPcHRpb25zUHJvdG8=" ) ) ;
37+ "bGlzdBgFIAMoCRIZChFjYXRlZ29yeV9kZW55bGlzdBgGIAMoCRIdCg5tdWx0" ,
38+ "aWNsYXNzX25tcxgHIAEoCDoFZmFsc2USJgoZbWluX3N1cHByZXNzaW9uX3Ro" ,
39+ "cmVzaG9sZBgIIAEoAjoDMC4zMnIKA2V4dBIcLm1lZGlhcGlwZS5DYWxjdWxh" ,
40+ "dG9yT3B0aW9ucxiKx7nTASABKAsyQy5tZWRpYXBpcGUudGFza3MudmlzaW9u" ,
41+ "Lm9iamVjdF9kZXRlY3Rvci5wcm90by5PYmplY3REZXRlY3Rvck9wdGlvbnNC" ,
42+ "VAo2Y29tLmdvb2dsZS5tZWRpYXBpcGUudGFza3MudmlzaW9uLm9iamVjdGRl" ,
43+ "dGVjdG9yLnByb3RvQhpPYmplY3REZXRlY3Rvck9wdGlvbnNQcm90bw==" ) ) ;
4344 descriptor = pbr ::FileDescriptor . FromGeneratedCode ( descriptorData ,
4445 new pbr ::FileDescriptor [ ] { global ::Mediapipe . CalculatorReflection . Descriptor , global ::Mediapipe . CalculatorOptionsReflection . Descriptor , global ::Mediapipe . Tasks . Core . Proto . BaseOptionsReflection . Descriptor , } ,
4546 new pbr ::GeneratedClrTypeInfo ( null , null , new pbr ::GeneratedClrTypeInfo [ ] {
46- new pbr ::GeneratedClrTypeInfo ( typeof ( global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions ) , global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions . Parser , new [ ] { "BaseOptions" , "DisplayNamesLocale" , "MaxResults" , "ScoreThreshold" , "CategoryAllowlist" , "CategoryDenylist" } , null , null , new pb ::Extension [ ] { global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions . Extensions . Ext } , null )
47+ new pbr ::GeneratedClrTypeInfo ( typeof ( global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions ) , global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions . Parser , new [ ] { "BaseOptions" , "DisplayNamesLocale" , "MaxResults" , "ScoreThreshold" , "CategoryAllowlist" , "CategoryDenylist" , "MulticlassNms" , "MinSuppressionThreshold" } , null , null , new pb ::Extension [ ] { global ::Mediapipe . Tasks . Vision . ObjectDetector . Proto . ObjectDetectorOptions . Extensions . Ext } , null )
4748 } ) ) ;
4849 }
4950 #endregion
@@ -92,6 +93,8 @@ public ObjectDetectorOptions(ObjectDetectorOptions other) : this() {
9293 scoreThreshold_ = other . scoreThreshold_ ;
9394 categoryAllowlist_ = other . categoryAllowlist_ . Clone ( ) ;
9495 categoryDenylist_ = other . categoryDenylist_ . Clone ( ) ;
96+ multiclassNms_ = other . multiclassNms_ ;
97+ minSuppressionThreshold_ = other . minSuppressionThreshold_ ;
9598 _unknownFields = pb ::UnknownFieldSet . Clone ( other . _unknownFields ) ;
9699 }
97100
@@ -244,6 +247,69 @@ public void ClearScoreThreshold() {
244247 get { return categoryDenylist_ ; }
245248 }
246249
250+ /// <summary>Field number for the "multiclass_nms" field.</summary>
251+ public const int MulticlassNmsFieldNumber = 7 ;
252+ private readonly static bool MulticlassNmsDefaultValue = false ;
253+
254+ private bool multiclassNms_ ;
255+ /// <summary>
256+ /// Whether to use multiclass NMS. That is, each category processes
257+ /// non-maximum-suppression separately.
258+ /// </summary>
259+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
260+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
261+ public bool MulticlassNms {
262+ get { if ( ( _hasBits0 & 4 ) != 0 ) { return multiclassNms_ ; } else { return MulticlassNmsDefaultValue ; } }
263+ set {
264+ _hasBits0 |= 4 ;
265+ multiclassNms_ = value ;
266+ }
267+ }
268+ /// <summary>Gets whether the "multiclass_nms" field is set</summary>
269+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
270+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
271+ public bool HasMulticlassNms {
272+ get { return ( _hasBits0 & 4 ) != 0 ; }
273+ }
274+ /// <summary>Clears the value of the "multiclass_nms" field</summary>
275+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
276+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
277+ public void ClearMulticlassNms ( ) {
278+ _hasBits0 &= ~ 4 ;
279+ }
280+
281+ /// <summary>Field number for the "min_suppression_threshold" field.</summary>
282+ public const int MinSuppressionThresholdFieldNumber = 8 ;
283+ private readonly static float MinSuppressionThresholdDefaultValue = 0.3F ;
284+
285+ private float minSuppressionThreshold_ ;
286+ /// <summary>
287+ /// Overlapping threshold for non-maximum-suppression calculator. Only used for
288+ /// models without built-in non-maximum-suppression, i.e., models that don't
289+ /// use the Detection_Postprocess TFLite Op
290+ /// </summary>
291+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
292+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
293+ public float MinSuppressionThreshold {
294+ get { if ( ( _hasBits0 & 8 ) != 0 ) { return minSuppressionThreshold_ ; } else { return MinSuppressionThresholdDefaultValue ; } }
295+ set {
296+ _hasBits0 |= 8 ;
297+ minSuppressionThreshold_ = value ;
298+ }
299+ }
300+ /// <summary>Gets whether the "min_suppression_threshold" field is set</summary>
301+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
302+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
303+ public bool HasMinSuppressionThreshold {
304+ get { return ( _hasBits0 & 8 ) != 0 ; }
305+ }
306+ /// <summary>Clears the value of the "min_suppression_threshold" field</summary>
307+ [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
308+ [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
309+ public void ClearMinSuppressionThreshold ( ) {
310+ _hasBits0 &= ~ 8 ;
311+ }
312+
247313 [ global ::System . Diagnostics . DebuggerNonUserCodeAttribute ]
248314 [ global ::System . CodeDom . Compiler . GeneratedCode ( "protoc" , null ) ]
249315 public override bool Equals ( object other ) {
@@ -265,6 +331,8 @@ public bool Equals(ObjectDetectorOptions other) {
265331 if ( ! pbc ::ProtobufEqualityComparers . BitwiseSingleEqualityComparer . Equals ( ScoreThreshold , other . ScoreThreshold ) ) return false ;
266332 if ( ! categoryAllowlist_ . Equals ( other . categoryAllowlist_ ) ) return false ;
267333 if ( ! categoryDenylist_ . Equals ( other . categoryDenylist_ ) ) return false ;
334+ if ( MulticlassNms != other . MulticlassNms ) return false ;
335+ if ( ! pbc ::ProtobufEqualityComparers . BitwiseSingleEqualityComparer . Equals ( MinSuppressionThreshold , other . MinSuppressionThreshold ) ) return false ;
268336 return Equals ( _unknownFields , other . _unknownFields ) ;
269337 }
270338
@@ -278,6 +346,8 @@ public override int GetHashCode() {
278346 if ( HasScoreThreshold ) hash ^= pbc ::ProtobufEqualityComparers . BitwiseSingleEqualityComparer . GetHashCode ( ScoreThreshold ) ;
279347 hash ^= categoryAllowlist_ . GetHashCode ( ) ;
280348 hash ^= categoryDenylist_ . GetHashCode ( ) ;
349+ if ( HasMulticlassNms ) hash ^= MulticlassNms . GetHashCode ( ) ;
350+ if ( HasMinSuppressionThreshold ) hash ^= pbc ::ProtobufEqualityComparers . BitwiseSingleEqualityComparer . GetHashCode ( MinSuppressionThreshold ) ;
281351 if ( _unknownFields != null ) {
282352 hash ^= _unknownFields . GetHashCode ( ) ;
283353 }
@@ -314,6 +384,14 @@ public void WriteTo(pb::CodedOutputStream output) {
314384 }
315385 categoryAllowlist_ . WriteTo ( output , _repeated_categoryAllowlist_codec ) ;
316386 categoryDenylist_ . WriteTo ( output , _repeated_categoryDenylist_codec ) ;
387+ if ( HasMulticlassNms ) {
388+ output . WriteRawTag ( 56 ) ;
389+ output . WriteBool ( MulticlassNms ) ;
390+ }
391+ if ( HasMinSuppressionThreshold ) {
392+ output . WriteRawTag ( 69 ) ;
393+ output . WriteFloat ( MinSuppressionThreshold ) ;
394+ }
317395 if ( _unknownFields != null ) {
318396 _unknownFields . WriteTo ( output ) ;
319397 }
@@ -342,6 +420,14 @@ public void WriteTo(pb::CodedOutputStream output) {
342420 }
343421 categoryAllowlist_ . WriteTo ( ref output , _repeated_categoryAllowlist_codec ) ;
344422 categoryDenylist_ . WriteTo ( ref output , _repeated_categoryDenylist_codec ) ;
423+ if ( HasMulticlassNms ) {
424+ output . WriteRawTag ( 56 ) ;
425+ output . WriteBool ( MulticlassNms ) ;
426+ }
427+ if ( HasMinSuppressionThreshold ) {
428+ output . WriteRawTag ( 69 ) ;
429+ output . WriteFloat ( MinSuppressionThreshold ) ;
430+ }
345431 if ( _unknownFields != null ) {
346432 _unknownFields . WriteTo ( ref output ) ;
347433 }
@@ -366,6 +452,12 @@ public int CalculateSize() {
366452 }
367453 size += categoryAllowlist_ . CalculateSize ( _repeated_categoryAllowlist_codec ) ;
368454 size += categoryDenylist_ . CalculateSize ( _repeated_categoryDenylist_codec ) ;
455+ if ( HasMulticlassNms ) {
456+ size += 1 + 1 ;
457+ }
458+ if ( HasMinSuppressionThreshold ) {
459+ size += 1 + 4 ;
460+ }
369461 if ( _unknownFields != null ) {
370462 size += _unknownFields . CalculateSize ( ) ;
371463 }
@@ -395,6 +487,12 @@ public void MergeFrom(ObjectDetectorOptions other) {
395487 }
396488 categoryAllowlist_ . Add ( other . categoryAllowlist_ ) ;
397489 categoryDenylist_ . Add ( other . categoryDenylist_ ) ;
490+ if ( other . HasMulticlassNms ) {
491+ MulticlassNms = other . MulticlassNms ;
492+ }
493+ if ( other . HasMinSuppressionThreshold ) {
494+ MinSuppressionThreshold = other . MinSuppressionThreshold ;
495+ }
398496 _unknownFields = pb ::UnknownFieldSet . MergeFrom ( _unknownFields , other . _unknownFields ) ;
399497 }
400498
@@ -437,6 +535,14 @@ public void MergeFrom(pb::CodedInputStream input) {
437535 categoryDenylist_ . AddEntriesFrom ( input , _repeated_categoryDenylist_codec ) ;
438536 break ;
439537 }
538+ case 56 : {
539+ MulticlassNms = input . ReadBool ( ) ;
540+ break ;
541+ }
542+ case 69 : {
543+ MinSuppressionThreshold = input . ReadFloat ( ) ;
544+ break ;
545+ }
440546 }
441547 }
442548 #endif
@@ -479,6 +585,14 @@ public void MergeFrom(pb::CodedInputStream input) {
479585 categoryDenylist_ . AddEntriesFrom ( ref input , _repeated_categoryDenylist_codec ) ;
480586 break ;
481587 }
588+ case 56 : {
589+ MulticlassNms = input . ReadBool ( ) ;
590+ break ;
591+ }
592+ case 69 : {
593+ MinSuppressionThreshold = input . ReadFloat ( ) ;
594+ break ;
595+ }
482596 }
483597 }
484598 }
0 commit comments