4 Replies
      Latest reply on Sep 16, 2019 1:11 PM by sdkfjdslfjdsklfjdslkfjdskljfld
      sdkfjdslfjdsklfjdslkfjdskljfld Level 1 Level 1 (0 points)

        I am trying to train a model using the create ml app to do object detection on approximately 10 different classes (ultimately). Here is what I have done so far, with corresponding results:

         

        1. train 1 class with approx. 50 images. results in excellent object detection, and a model size of approx 65 MB

        2. train 2 classes, one with approx. 150 images, the other with 50 images. results in very good object detection and a model size of approx. 65 MB

        3. train 6 classes, one with approx 50 images, the rest with 150 or more images, a total of approx. 3000 images. results in varying qualitys of object detection from very good to very poor. the model size is still approx. 65 MB.

         

        Here are my questions:

        1. why is the model size the same regardless of complexity, number of images, and number of classes

        2. is there some parameters that I can change to allow the output to be larger and more precise?

        3. how many images should I have for each class?

        4. do I have to label every instance of each class in each image?

        • Re: perplexed about create ml app and object detection
          stuartfromsydney Level 1 Level 1 (0 points)

          The answer to 4 is a yes. The object detector model regards anything that's not tagged as not part of the model, so if you have a object class in an image that isn't annotated the model will be trained to not detect it.

           

          Could that explain the results you're seeing?

            • Re: perplexed about create ml app and object detection
              sdkfjdslfjdsklfjdslkfjdskljfld Level 1 Level 1 (0 points)

              Thanks Stuart,

               

                   That does explain some things. It is kind of frustrating that it works that way because the real world is significantly different than I want to label a "cat" or "dog. Especially... say, hypothetically you wanted to label fruit in their "natural" environment. So you go off and start labelling bananas, and apples, etc. You do so in 1000s of images so that your model performs well. Everything goes great, you have 1000s of images labeled, and you're set. Next thing you know, you get a requirement to label vegetables. So now you have to go back through the 1000s of images and add labels for the vegetables that may or may not be in the images that you labeled the fruit in, along with labeling all the fruit that might occur in your new vegetable images? That is both painful and frustrating and does not scale very well. I'm open to any advice.