How do I do object detection (or identify the location of an object) if there is only one kind of object, and they are more of less similar size, but the picture does not look like standard scenes (it is detection of drops on a substrate in microscopic images)? Which software is good for it?

  • $\begingroup$ Object detection and recognition are not exactly the same thing. See: dsp.stackexchange.com/q/12940/40095. So, please, edit your question to use the most appropriate expression in all cases. $\endgroup$
    – nbro
    Jun 14 '19 at 19:16
  • $\begingroup$ what ouput do you want to have, meybe you do have some division in sub- categories? $\endgroup$ Jun 14 '19 at 19:17

The hardest part is image annotation: here the difference between object recognition and object detection becomes important. If you just want to answer the question "does this image contain object X?", then you just need to provide as many images that contain object X as possible, together with as many images that don't contain object X (but are otherwise similar). However if you want to answer the question "Where exactly object X is located in this image?" then you will need to manually provide a bounding box for each instance of object X in each image. Obviously, the second scenario is a lot more labor intensive.

After you've done this part, train either a binary image classifier (typically this will be a convolutional neural network) on your annotated images (split them into train and test partitions), or an object detector (googling "custom object detection" produces lots of code examples how to train it (e.g. https://towardsdatascience.com/tutorial-build-an-object-detection-system-using-yolo-9a930513643a start with Step 2B).

  • 1
    $\begingroup$ That I know. "A lot of code examples" is a problem, the question is which one to select. $\endgroup$
    – user31264
    Jun 14 '19 at 22:37
  • $\begingroup$ Are you not happy with the one I suggested for some reason? $\endgroup$
    – MichaelSB
    Jun 14 '19 at 22:39

Such applications are usually dealt with by using some image processing and computer vision techniques. As far as I remember, we used Correlation in Digital Signal Processing using MATLAB last semester. The method was simple:
METHOD 1 : Using Cross Convolution
- Import the image you want to use
- Select the object in the image that you want to detect (a drop in your case) using its coordinates
- After some processing, search the image for the drop, using the selected image as reference. (So, MATLAB actually calculates cross convolution of each coordinates of the actual image with that of the 'drop' image)
Read this for detailed method
This requires you to obtain MATLAB and a normal PC

If you can manage to get better hardware or more time (as slower processing demands more time), you can opt for method 2
METHOD 2 : Using Deep Learning
- Download loads of images of drops or the object you are looking for
- Train the model and create a Convolution Neural Network (Hardware and time intensive)
- Validate the network and test it
(this method is more widely used and is a offspring of Artificial Intelligence/ Machine Learning . It provides a far more accurate result at the cost of the images, hardware and time you spend on training the model. Nowadays, people use Python for the same purpose as it saves you from the new syntax that you might face using MATLAB. Both are more or the same equally efficient)
Read detailed methodology here and here

  • $\begingroup$ Hi. Can you please format this answer more appropriately? $\endgroup$
    – nbro
    Mar 11 '20 at 16:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.