[TUTORIAL] Object Detection

This is a tutorial article explaining how to use object detection application of Deep Block.

In this tutorial, we are going to create an AI model that automatically finds boreal digging frogs.

Boreal digging frog is an endangered species native to Korea.

And as people destroy their habitat, their number is decreasing and face danger.

Let’s find them and save them.

  1. Sign in, and click “TRY DEEP BLOCK” button on the top right corner.
    try deep block button
  2. At the Console page, click “Create” button on the top right corner.
    create button in console page
  3. Click Computer Vision, and Click Object Detection, and choose “NOT FOR REAL-TIME INFERENCE” option. Set the project name without space characters and click the “Create” button to create the project.
    new project page
  4. And open the project.
    project screen
    In this project, we will only find boreal digging frogs.
  5. Therefore, you only need to create one category. But if you want to find multiple types of objects, you can add more to the categories pane.
    Anyway, click creating a category button to create a new class.
    categories pane
    And rename the class.

    In this project, we want to build an AI model to detect boreal digging frog. Thus, our target class can be named as “Boreal_Digging_Frog”.
    Entering "Boreal_Digging_Frog" in categories pane
    You can also change the color of each class by clicking on each class's color picker for a better visibility of the box.
    color picker in categories pane
    color picked in categories pane
  6. Now we need to prepare training dataset to train the AI ​​model.
    For this project, we prepared about 120 pictures of the frogs.
    images of Boreal digging frogs
    But we recommend you to prepare as many images as possible to train your AI model. At least several thousand object instances for each class. Select all images you prepared, and upload files by dragging them to the Manual pane.
    Drag Image to Manual pane
  7. Let’s start preparing the training data.
    Choose the category you want to draw and click Draw mode.
    Clicking Draw Mode
    And draw a bounding box on the object you want to detect.
    Draw bounding box over frog
    Don't draw the box too big or too small, draw it to fit the object.
  8. After you're done drawing boxes on each image, right click the filename and move the file to Done pane.
    Move file to done pane
    It is also possible to select multiple files in the Manual pane and move them all at once with right click action.
  9. If objects overlap, separate the two objects by drawing the boxes carefully.
    Image of two frogs with bounding boxes
    And repeat this process until you draw boxes on all images.
  10. When you have finished drawing the boxes and moving the images to Done pane, you can start the model training. Click Run and set the epoch value, and click TRAIN button. start the model training.
    click run
    click train
    In this case, we set the value as 5,000. However, this epoch value is not absolute. If there is a lot of training data, it is sometimes better to reduce the epoch value, and if you set too many epochs, an over-fitting problem may occur. Therefore, train the model with different epoch values, and you can find which value is the optimal epoch value.
  11. While training the AI model, you can see the remaining time, and metrics like loss.
    graph during training
    It will take some time, so you can close the project and reopen it after some time.
  12. After the training, check if the training score increases as the epoch increases.
    training score increases while training
  13. If it looks okay, then proceed to the PREDICT tab.
    clicking predict tab
    clicking predict tab entire screen
  14. Now let's use our AI model. Prepare the images for the model inference. Select images for inference, and drag and drop images to Predict pane.
    drag image to predict pane
  15. Set a low threshold score for the inference. We usually set it around 30 at the first inference.
    set score to 30 in threshold pane
    Click PREDICT button to start the inference.
    click predict button
  16. It will not take long time. In this case, the model detects the frog well even though the threshold value was low.
    image of frog with prediction box
    However, when the threshold value is low, the AI model usually detects wrong or draws many boxes on the same object. Therefore, the threshold value must be adjusted after the inference with a low threshold value. If the AI model recognizes something strange as the object you are looking for, check the probability of the weird box in the Boxes tab.
    boxes pane
    Usually, the probability value of a box that is incorrectly detected will be lower than that of a box that is correctly detected.
    Therefore, set the threshold score higher than the maximum score value ​​of false positive cases. Then the AI ​​model will correctly detect the objects.
    If the largest threshold score of false positive cases is quite big, it means that the AI ​​model needs more optimization like preparing more training data.
    In addition to this, if you set a low threshold score, you may find that multiple boxes are drawn on a single object. For this case, you have to increase the threshold value so that only one box with the highest threshold score is detected.
    Like the first case, if the AI model can't even find the object after increasing the threshold score, your AI model may need to optimize your AI model.
  17. But keep in mind. It's not easy for an AI model to be perfect even if you put a lot of training data. For example, detecting objects in dark photos or detection of small objects is still quite difficult for modern object detection AI.
  18. If you are having trouble with optimization, contact us and we will help you.