Body: <p>There is a project I'm currently working on that requires object detection with continuous training. The idea is to train a model beforehand with a standard dataset. When I get new images I want to &quot;teach&quot; the model with theses new images. The procedure is the following:</p>
  <ul>
  <li>Train a neural network with a standard dataset for object detection.</li>
  <li>Create a script that will deploy the model, capture camera images and make inference on them.</li>
  <li>Since all processed images are stored in a computer, I want to use them for training, example: for a true positive the model learns the object, for a false positive, the model learns that the object detected is not from the desired class, for false negatives the user needs to create a label and train the model. Also the model needs to be trained with true negatives.</li>
  <li>The learning should be periodically based on new images (When the user presses a certain button or automatically).</li>
  <li>The model should not forget the features from old images, or at least retain the most possible features from them.</li>
  </ul>
  <p>Basically the model should improve continuously as new images are gathered.
  I tried finding the technique on google, but for this specific scenario I can't find anything. I found some papers about the incremental learning, but they refer on their solution about adding new classes to the model. That is not what I want. For now, I need only one class, hopefully I can add more in the future for the same model.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-12-19T19:13:43.647Z
Comments.Text: What kinds of objects are being identified, and how many classes? In addition, could this be a kind of identity system (e.g. face recognition, pet recognition, or any named objects from similar classes where there could be 1000s of classes)? Identity systems usually have a different approach to training and finding matches which is better than continuous training
Comments.UserDisplayName: Neil Slater
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-12-20T09:30:31.467Z
Comments.Text: It is 1 class for the model. We want to detect people from a surveillance camera. The idea is to use the object detection method. For now we are using yolov5, but it is not possible to do want I want, which is incremental training by "feeding" new labelled images to the model (continuously).
Comments.UserDisplayName: Pedro Carvalho
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-12-20T09:33:19.307Z
Comments.Text: How much labelled data are you starting with? Is this a single installation, or at least a single central model, or is the idea that separate installations learn their own unique local models?
Comments.UserDisplayName: Neil Slater
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-12-20T09:40:39.613Z
Comments.Text: Hopefully we will start with ~5000 images with different scenarios of people (different distances from the camera to the people, different illumination, day and night images, etc.). The idea is to have a central model (default) to each system and each model will be updated with the images of that system, so that the model learns the environment/context of the site.
Comments.UserDisplayName: Pedro Carvalho
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-01-02T13:40:01.063Z
Comments.Text: There are different terms that refer to similar systems you're looking for. I had provided an answer [here](https://ai.stackexchange.com/a/13050/2444) with more details. I'd assume there are techniques to handle catastrophic forgetting without adding new classes, although it's been a while since I studied this topic. Feel free to provide an answer to your own question once you know it.
Comments.UserDisplayName: nbro
Tags: <convolutional-neural-networks><object-detection><incremental-learning><mask-rcnn>
Title: Ways to train a neural network continuosly as new data is added
UserDisplayName: Pedro Carvalho
ThreadText: # Ways to train a neural network continuosly as new data is added
  
  (Asked by: username_0 on 2023-12-19)
  
  There is a project I'm currently working on that requires object detection with continuous training. The idea is to train a model beforehand with a standard dataset. When I get new images I want to "teach" the model with theses new images. The procedure is the following:
  
  * Train a neural network with a standard dataset for object detection.
  * Create a script that will deploy the model, capture camera images and make inference on them.
  * Since all processed images are stored in a computer, I want to use them for training, example: for a true positive the model learns the object, for a false positive, the model learns that the object detected is not from the desired class, for false negatives the user needs to create a label and train the model. Also the model needs to be trained with true negatives.
  * The learning should be periodically based on new images (When the user presses a certain button or automatically).
  * The model should not forget the features from old images, or at least retain the most possible features from them.
  
  Basically the model should improve continuously as new images are gathered.
  I tried finding the technique on google, but for this specific scenario I can't find anything. I found some papers about the incremental learning, but they refer on their solution about adding new classes to the model. That is not what I want. For now, I need only one class, hopefully I can add more in the future for the same model.
  
  **Tags:** convolutional-neural-networks, object-detection, incremental-learning, mask-rcnn
  
  > **Comments:**
  > **username_1**: What kinds of objects are being identified, and how many classes? In addition, could this be a kind of identity system (e.g. face recognition, pet recognition, or any named objects from similar classes where there could be 1000s of classes)? Identity systems usually have a different approach to training and finding matches which is better than continuous training  
  > **username_0**: It is 1 class for the model. We want to detect people from a surveillance camera. The idea is to use the object detection method. For now we are using yolov5, but it is not possible to do want I want, which is incremental training by "feeding" new labelled images to the model (continuously).  
  > **username_1**: How much labelled data are you starting with? Is this a single installation, or at least a single central model, or is the idea that separate installations learn their own unique local models?  
  > **username_0**: Hopefully we will start with ~5000 images with different scenarios of people (different distances from the camera to the people, different illumination, day and night images, etc.). The idea is to have a central model (default) to each system and each model will be updated with the images of that system, so that the model learns the environment/context of the site.  
  > **username_2**: There are different terms that refer to similar systems you're looking for. I had provided an answer [here](https://ai.stackexchange.com/a/13050/2444) with more details. I'd assume there are techniques to handle catastrophic forgetting without adding new classes, although it's been a while since I studied this topic. Feel free to provide an answer to your own question once you know it.  
  
  ---
  
  ## 0 answers
  
  