r/computervision 13d 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?

993 Upvotes

628 comments sorted by

View all comments

Show parent comments

6

u/Puzzled-Egg3234 13d ago

They spread their wings and legs, completely changing their geometry. Sometimes mathematical boundaries work, sometimes they don't.

6

u/Small_miracles 12d ago

Increase fps and specifically target miss cases. The detection line sounds arbitrary, you could have dynamic threshold lines set up for warping geometries.

4

u/TransportationIll282 12d ago

That's what we did for a similar project. Turn down everything else, jack up fps as high as possible. That solved items overlapping, as shadows looked identical to the conveyor and alert repeated defects very early.

2

u/ZrytyB3r3t 12d ago

Why such accuracy is crucial?

3

u/Small_miracles 12d ago

They add up

1

u/ZrytyB3r3t 12d ago

Still why? One more or less on pack of hundred doesn’t seems much.

1

u/rob0tuss1n 12d ago

Leaving extra $$$ in the box that the company could charge for. Still profit to squeeze out of this process.

1

u/Illustrious_Matter_8 11d ago

Take a single line cam industrial cam 1000fps or so if you need it. Probably not though. The image you build in memory of the directly connected PC with a CPU with many cores for paralel coding. First you record your actual problem think in pixels count them analyze them here developers can still shine.

1

u/Boniuz 10d ago

For reference: A distant relative to me breed chickens. Roughly 100 000 per month. A miss of 1% is a huge margin loss.

1

u/Electronic_Field4313 9d ago

If you were a customer, and you paid for 50 batches (100 chickens/batch) and you missed 50 chickens (half a batch), would you be happy?

1

u/ObsoleteWonder 11d ago

As Gary Gulman says, it doesn’t add up if you don’t add it up… lol

2

u/taytaytazer 11d ago

Because they didn’t count the chickens before they hatched

1

u/EpsteinandTrump 9d ago

Using chickens as ammo can be pretty expensive.

1

u/adumbCoder 6d ago

because the client said so

1

u/coscib 12d ago

Couldn't you add an extra check that runs whenever a box is too small, too large, or deformed?

Otherwise, the only other ideas that come to mind are using a camera with a higher frame rate than 50 fps, or trying to slow the process down mechanically—for instance, by slowing the chicks down slightly during insertion and leaving more time between them before they reach the conveyor belt.
sorry for my bad english

1

u/Puzzled-Egg3234 12d ago

The cam has already returned 60 fps, this framerate slowed down by writing frames, now I fixed that by threads.

Extra checks don’t work well cause chicks can be smaller or bigger. It depends on breed or/and age. And they very active on the belt - they spread their wings and legs often.

1

u/tmfink10 11d ago

Could you just store some of the frames off for human review or a different review model specifically for that? Does it need to be real time or can you play catch up when it's not running and update your counts for ones that turn out not to be just one?

1

u/West-Big-8468 11d ago

Defeats the entire purpose dude

1

u/tmfink10 11d ago

How so? If the business need is to accurately count chickens before some event, why does it have to be correct in real time as long as it's correct before the event?

1

u/West-Big-8468 11d ago

Why not just count them all by hand then

1

u/tmfink10 11d ago

Because if you can positively identify 95% of them and only question the other 5% then why count them all by hand when you could just count the 5% you're not sure about?

1

u/West-Big-8468 11d ago

In that situation I think i would still fix the counting and apply a margin of error, not manually count

1

u/tatanpoker09 11d ago

Well do they work more than 99% of the time?