I want to create a simple object detection tool. So, basically, an image will be provided to the tool, and, from that image, it has to detect the number of objects.

For example, an image of a dining table that has certain items present on it, such as plates, cups, forks, spoons, bottles, etc.

The tool has to count the number of objects, irrespective of the type of object. After counting, it should return the position of the object with its size, so that I can draw a border over it.

I would like not to use any library or API present such as TensorFlow, OpenCV, etc., given that I want to learn the details.

If the process is very difficult to be created without using an API then the number of/type of objects which it will count as an object can also be limited but since this project will be for my educational/learning purpose can anyone help me understand the logic using which this can be achieved? For example, it may ignore a napkin present in the table to be counted as an object.

  • 1
    $\begingroup$ Why don't you want to use libraries like Tensorflow or OpenCv? Project that you described will probably take months or even years, if you want to write whole processing pipeline from scratch. $\endgroup$ Aug 28, 2018 at 8:49
  • $\begingroup$ @paffciu Thanks for the answer. I totally agree with your point. The reason I don't want to use a library is that I want to have an experience on this topic for educational purpose. I don't mind even if the object detection is not fast, not very much accurate or can identify very few objects be it 2-5 objects but that will add to my knowledge & experience. Can you please help with the logic on how an object is detected? $\endgroup$ Aug 28, 2018 at 9:05
  • $\begingroup$ The math is simple but implementing an auto differentiator by scratch isn't worth the effort. The rest of what you want can be programmed in a day or so. Pytorch and TF models for YOLO really aren't that big $\endgroup$ Sep 12, 2020 at 18:29

1 Answer 1


If you want to get experience, you should probably start with some easier task. Object detection and localization are relatively hard and writing a neural network and image processing pipeline from scratch will take you a long time.

If you want to build up an intuition about how NN's work, you might want to code some simple task from scratch. This is an example.

When you got some intuition about how NN's work, then you should proceed to your task. In here, you have a similar question and answer provided. The current state-of-the-art approach for your task would probably be point 3, that is object detection network, like YOLO or Faster-RCNN.

  • $\begingroup$ Thank You very much for the answer and guidance. Will start with something easier and then move on to object detection. Thanks. $\endgroup$ Aug 29, 2018 at 12:25

Not the answer you're looking for? Browse other questions tagged .