Answers.Body: <p>Your approach should work well, you just have to test different neural networks <strong>architectures</strong> to see the most accurate one. I suggest you focus on <a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" rel="nofollow noreferrer"><strong>CNNs</strong></a> architectures and you'll be good to go.</p>
  
  <p>If you don't want to spend much time labelling your data you can <strong>only label non-truncated vehicles</strong>. Everything else is not a "non-truncated vehicle". This is even better because some images may contain persons, roads, animals... and your model will get confused if he's only trained to know truncated vehicles and non truncated vehicles. The other model will instead know how non-truncated vehicles look like and consider everything else as "not a non-truncated vehicle". And this is exactly what you need in your use-case.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-17T07:45:19.830Z
Answers.Text: Ah great, thank you! I was afraid that CNNs would automatically still recognize the objects if it was only partly visible, good to know that that is not necessarily the case and that I do not need to label both classes.
Answers.UserDisplayName: JCRogier
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-17T08:15:47.260Z
Answers.Text: When some parts of the object are recognized this will activate some neurons but not all of them, and the overall activation will not be strong enough to classify the object as "non-truncated". This is of course after your model is trained.
Answers.UserDisplayName: HLeb
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-16T14:54:58.830Z
Answers.LastActivityDate: 2019-05-16T14:54:58.830Z
Answers.UserDisplayName: HLeb
Answers.Body: <p>It could work. I think itll be hard to find labelled bounding box data describing full/truncated cars so this is a good idea for self labelling.</p>
  
  <p>Theres probably also some other ways for you to get labelled data without the crowd sourcing or self labelling. Take a large labelled car dataset with bounding boxes (COCO has some, and if your good with aerial imagery theres alot more out there), and just enforce that any car bounding boxes that are touching the boundary are truncated, while ones fully encompassed in the imaged are not, since with high probability that will be the case. </p>
  
  <p>Good luck!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-16T14:25:21.340Z
Answers.Text: Thank you for you response, good to hear that it might be possible. Do you think it will have a negative impact if I label mixed vehicles as truncated of non-truncated? (So not only cars, but also vans for example)
Answers.UserDisplayName: JCRogier
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-16T15:15:35.647Z
Answers.Text: @JCRogier assuming your model can handle it, and theres enough training data, definitely! btw there exist open source pkgs with retinanet, yolo, faster rcnn, etc to save you some time!
Answers.UserDisplayName: mshlis
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-16T13:33:53.347Z
Answers.LastActivityDate: 2019-05-16T13:33:53.347Z
Answers.UserDisplayName: mshlis
Body: <p>At the moment I am working on a vehicle counting &amp; classification project. 
  For a specific part in the project I need to get back only the completely visible vehicles from my input data (images).  I am wondering if this could be done (more) automatically in the following way:</p>
  
  <ol>
  <li>zoom in such that only approximately one van would be visible</li>
  <li>divide the vehicles into two categories: truncated and non-truncated</li>
  <li>train on these two classes</li>
  <li>After training and testing, use the model to find the completely visible vehicles. </li>
  </ol>
  
  <p>So the main question is, is it possible that this would give sufficient results or should I try to find another solution?</p>
  
Tags: <neural-networks><training>
Title: Divide classes into truncated and non-truncated objects
UserDisplayName: JCRogier
ThreadText: # Divide classes into truncated and non-truncated objects
  
  (Asked by: username_0 on 2019-05-16)
  
  At the moment I am working on a vehicle counting & classification project.
  For a specific part in the project I need to get back only the completely visible vehicles from my input data (images). I am wondering if this could be done (more) automatically in the following way:
  
  1. zoom in such that only approximately one van would be visible
  2. divide the vehicles into two categories: truncated and non-truncated
  3. train on these two classes
  4. After training and testing, use the model to find the completely visible vehicles.
  
  So the main question is, is it possible that this would give sufficient results or should I try to find another solution?
  
  **Tags:** neural-networks, training
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2019-05-16. Score: 0
  
  Your approach should work well, you just have to test different neural networks **architectures** to see the most accurate one. I suggest you focus on [**CNNs**](https://en.wikipedia.org/wiki/Convolutional_neural_network) architectures and you'll be good to go.
  
  If you don't want to spend much time labelling your data you can **only label non-truncated vehicles**. Everything else is not a "non-truncated vehicle". This is even better because some images may contain persons, roads, animals... and your model will get confused if he's only trained to know truncated vehicles and non truncated vehicles. The other model will instead know how non-truncated vehicles look like and consider everything else as "not a non-truncated vehicle". And this is exactly what you need in your use-case.
  
  > **Comments:**
  > **username_0**: Ah great, thank you! I was afraid that CNNs would automatically still recognize the objects if it was only partly visible, good to know that that is not necessarily the case and that I do not need to label both classes.  
  > **username_1**: When some parts of the object are recognized this will activate some neurons but not all of them, and the overall activation will not be strong enough to classify the object as "non-truncated". This is of course after your model is trained.  
  
  ---
  
  ### Answer by username_2 on 2019-05-16. Score: 0
  
  It could work. I think itll be hard to find labelled bounding box data describing full/truncated cars so this is a good idea for self labelling.
  
  Theres probably also some other ways for you to get labelled data without the crowd sourcing or self labelling. Take a large labelled car dataset with bounding boxes (COCO has some, and if your good with aerial imagery theres alot more out there), and just enforce that any car bounding boxes that are touching the boundary are truncated, while ones fully encompassed in the imaged are not, since with high probability that will be the case.
  
  Good luck!
  
  > **Comments:**
  > **username_0**: Thank you for you response, good to hear that it might be possible. Do you think it will have a negative impact if I label mixed vehicles as truncated of non-truncated? (So not only cars, but also vans for example)  
  > **username_2**: @JCRogier assuming your model can handle it, and theres enough training data, definitely! btw there exist open source pkgs with retinanet, yolo, faster rcnn, etc to save you some time!  
  
  ---
  
  