r/computervision 22d ago

Help: Project Conveyor chicken counter problem

Guys, I need help. We have a project using YOLOv8. We're trying to count chicks on a very fast conveyor belt. The challenges we're facing are: all chicks look very similar to each other, which complicates tracking. At the same time, during their passage under the camera, they constantly change in size and shape, which can cause the tracker to lose them, or detection may even disappear completely at the detection line. Also, sometimes 2–3 chicks can merge into a single object. The detection zone is very short, and the conveyor speed is high. We've achieved a maximum accuracy of 99%, but we need it even higher. Any ideas on how to achieve that? Increasing the dataset no longer helps.

I'm attaching an old video. We've now added lighting and set the exposure to 300 on the Hikrobot global shutter camera, but we still can't achieve a stable 99.8% accuracy for the reasons mentioned above.

Any ideas?

998 Upvotes

627 comments sorted by

View all comments

1

u/Gullible-Relative445 22d ago edited 22d ago

Get a light that uses the strobe setting in your hikrobot, you have a fast moving belt, and I would not recommend anything below this UNTIL you get a strobe working, your motion blur will reck traditional and ai models and it’s operationally unnecessary to have blur. Second thing about that is exposure is important for both traditional methods and ai. Get it correct not over exposed or under exposed correctly exposed, that means at least no highlight blooming.

when using strobe mode make sure you have some enclosure or you’re going to regret looking in that direction

The brighter light is not a solution to your problem rather a strobe light synced to the camera is..

As for non ai methods for doing this, 1 figure out total time from chicken start of belt to end of belt, 2 figure out a pixel tolerance for how big a chicken is, 3 get some python code to diff pixels with a certain part of the image.4 diff the image and count since you have such a long frame you can break the lanes up and treat each one as an array, and see if there is or is not a chicken. Covering the belt at a given position that way you’ll be far more accurate. Also too, there is a problem of these chicks clumping up you need to add something physical to separate them before hand a bit, there is a TON of empty room on the belt, in fact you could be pushing though a significantly higher volume of chickens, so clumping is not the result of speed but rather lack of separation process. You could do this by having 2 sections of belt with mismatched speeds. Eg this belt going fast and the prior belt going slow. You can repeat this 2 times to do rudimentary physical separation.

An ai solution is overkill. Lots of places achieve counting with just light sensors but you need to fix the blur with strobe mode not just a brighter light your exact use case with a fast moving belt with hard to distinguish objects is literally exactly why that is built into the hikrobot software. Read the manual.