I’m a bit surprised that this is making the rounds of HN though. OpenCV and other computer vision libraries have trivialized such counting applications for decades now. ML isn’t really necessary.
The watershed algorithm for example, comes built-in and allows segmentation which can then be followed up with blob counting: http://www.cmm.mines-paristech.fr/~beucher/wtshed.html
I don’t want to diminish OP’s work since the product seems to be well-developed and respond to a real need. I guess the challenge must have been making the app robust enough to support different workloads, lighting conditions, etc. I suppose the novelty factor is seeing to what extent the technology that we as developers and engineers work on every day is often disconnected from practical application.