Answers.Body: <p>This is a high level explanation: So most object detectors are generally deep neural networks that return a set of boxes: </p>
  
  <p><code>box1 : coordinates : confidence
   box2 : coordinates : confidence
   etc...</code></p>
  
  <p>and loss is computed different model to model. But i think your specifically curious how most do box comparison and loss. Generally they first check if the box is even relevant to the target. To do this often they calculate the Intersection over Union (IOU) as known as the Jaccard index <a href="https://en.wikipedia.org/wiki/Jaccard_index" rel="nofollow noreferrer">wikipedia link</a>. This checks how overlapped they are biased on the box sizes. Now if its above some threshold (example: boxes have IOU over .5 caluclate a loss, otherwise loss is just 0) they will compute some objective. Objectives can differ, but ideally its something differentiable. Examples include vectorizing and approximiating the IOU, dice loss, etc..</p>
  
  <p>After a quick google search, heres a good tutorial explaining some components commonly used in the field (region proposals, feature extraction, etc) [<a href="https://www.datacamp.com/community/tutorials/object-detection-guide" rel="nofollow noreferrer">guide</a>]</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-21T14:16:16.070Z
Answers.LastActivityDate: 2019-06-21T14:16:16.070Z
Answers.UserDisplayName: mshlis
Body: <p>I am on the hook to measure the prediction results of an object detector. I learned from some tutorials that when testing a trained object detector, for each object in the test image, the following information is provided:</p>
  
  <pre><code>    &lt;object&gt;
      &lt;name&gt;date&lt;/name&gt;
      &lt;pose&gt;Unspecified&lt;/pose&gt;
      &lt;truncated&gt;0&lt;/truncated&gt;
      &lt;difficult&gt;0&lt;/difficult&gt;
      &lt;bndbox&gt;
          &lt;xmin&gt;451&lt;/xmin&gt;
          &lt;ymin&gt;182&lt;/ymin&gt;
          &lt;xmax&gt;695&lt;/xmax&gt;
          &lt;ymax&gt;359&lt;/ymax&gt;
      &lt;/bndbox&gt;
  &lt;/object&gt;
  </code></pre>
  
  <p>However, it is still unclear to me 1) how does these information is taken by the object detector to measure the accuracy, and 2) how does the "loss" is computed for this case. Is it something like a strict comparison? For instance, if for the object "date", I got the following outputs:</p>
  
  <pre><code>    &lt;object&gt;
      &lt;name&gt;date&lt;/name&gt;
      &lt;pose&gt;Unspecified&lt;/pose&gt;
      &lt;truncated&gt;0&lt;/truncated&gt;
      &lt;difficult&gt;0&lt;/difficult&gt;
      &lt;bndbox&gt;
          &lt;xmin&gt;461&lt;/xmin&gt;  &lt;---- different
          &lt;ymin&gt;182&lt;/ymin&gt;
          &lt;xmax&gt;695&lt;/xmax&gt;
          &lt;ymax&gt;359&lt;/ymax&gt;
      &lt;/bndbox&gt;
  &lt;/object&gt;
  </code></pre>
  
  <p>Then I will believe that my object detector made something wrong? Or they tolerant some small delta such that if the bounding box has a small drifting, then it's acceptable. But if the "label" is totally wrong, then that's wrong for sure? </p>
  
  <p>This is like a "blackbox" to me and it would be great if someone can shed some lights on this. Thank you.</p>
  
Tags: <object-recognition><object-detection>
Title: From what aspect to measure the performance of an object detector?
UserDisplayName: lllllllllllll
ThreadText: # From what aspect to measure the performance of an object detector?
  
  (Asked by: username_0 on 2019-06-21)
  
  I am on the hook to measure the prediction results of an object detector. I learned from some tutorials that when testing a trained object detector, for each object in the test image, the following information is provided:
      
      date
      Unspecified
      0
      0
      
          451
          182
          695
          359
      
  
  
  However, it is still unclear to me 1) how does these information is taken by the object detector to measure the accuracy, and 2) how does the "loss" is computed for this case. Is it something like a strict comparison? For instance, if for the object "date", I got the following outputs:
      
      date
      Unspecified
      0
      0
      
          461  <---- different
          182
          695
          359
      
  
  
  Then I will believe that my object detector made something wrong? Or they tolerant some small delta such that if the bounding box has a small drifting, then it's acceptable. But if the "label" is totally wrong, then that's wrong for sure? 
  This is like a "blackbox" to me and it would be great if someone can shed some lights on this. Thank you.
  
  **Tags:** object-recognition, object-detection
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-06-21. Score: 1 | Accepted answer
  
  This is a high level explanation: So most object detectors are generally deep neural networks that return a set of boxes:
  
  `box1 : coordinates : confidence
  box2 : coordinates : confidence
  etc...`
  
  and loss is computed different model to model. But i think your specifically curious how most do box comparison and loss. Generally they first check if the box is even relevant to the target. To do this often they calculate the Intersection over Union (IOU) as known as the Jaccard index [wikipedia link](https://en.wikipedia.org/wiki/Jaccard_index). This checks how overlapped they are biased on the box sizes. Now if its above some threshold (example: boxes have IOU over .5 caluclate a loss, otherwise loss is just 0) they will compute some objective. Objectives can differ, but ideally its something differentiable. Examples include vectorizing and approximiating the IOU, dice loss, etc..
  
  After a quick google search, heres a good tutorial explaining some components commonly used in the field (region proposals, feature extraction, etc) [[guide](https://www.datacamp.com/community/tutorials/object-detection-guide)]
  
  
  ---
  
  