Arbiter

What problem are you addressing and why does it matter to you?

San Diego's recycling rules are stricter and weirder than most people realize: rigid plastics yes, soft plastics no, pizza boxes only if clean, and a long list of similar edge cases. The result is wishcycling. People toss things in the blue bin hoping they're recyclable, and contamination ends up sending entire loads to the landfill anyway.

Education campaigns have been running for decades and contamination rates haven't moved. That's what convinced me the problem isn't informational. It's that the decision is being made by the least-informed party in the system, in two seconds, with no feedback. So I stopped trying to fix the human and built a system that sorts at the point of disposal instead.

How does your solution work?

Arbiter is a self-contained sorting bin. You drop an item onto a white acrylic plate, a Pi Camera captures it under controlled LED lighting, a MobileNetV3-small classifier decides recycle or waste, and a servo-driven lever tilts the plate to drop the item into the correct bin. The user does nothing except place the item down. Inference runs locally on the Pi, so there's no network dependency and no images leave the device.

What are the key features?

  • Binary classification at the point of disposal. Recycle or waste, decided in the moment the item lands on the plate.
  • Physical sorting, not just labeling. The system actually moves the item into the right bin instead of telling the user what to do.
  • Fully local inference. The model runs on the Pi. No cloud, no latency, no data leaving the device.
  • Controlled capture environment. White acrylic plate, fixed camera placement, and LED under-cabinet lighting make the capture conditions consistent enough for a small model to perform reliably.
  • Generalizes beyond the training set. Because the network learned visual characteristics like reflectivity and texture rather than memorizing specific objects, it handles items it has never seen before.

Challenges we faced

Domain consistency between training and inference. My first model validated well and was useless on the Pi. The Pi Camera runs auto white balance per frame, so training images and inference images were coming from different color distributions and the model was learning lighting instead of objects. I diagnosed it by locking AwbEnable: False and hardcoding ColourGains, re-captured the entire dataset under fixed LED lighting with those locked values, and made the same locked-AWB pipeline mandatory at inference. Waste precision on the Pi holdout jumped to 97% after the fix. The lesson was that a small model on a controlled surface can perform reliably, but only if AWB is treated as part of the model, not a camera setting.

What tools, languages, or APIs did you use?

  • Hardware: Raspberry Pi 4, Pi Camera Module 3 (IMX708), MG90S servo, LED under-cabinet lights, white acrylic drop plate.
  • Model: MobileNetV3-small via the timm library, trained on TrashNet plus several hundred Pi-captured images. I used asymmetric class weighting (15× paper, 10× trash) to counter TrashNet's recycle-heavy distribution.
  • Training: PyTorch on WSL2, with trained weights deployed to the Pi over scp.
  • Inference: PyTorch running locally on the Pi.
  • Languages: Python end to end.

Who does this help?

The direct beneficiary is anyone running a high-traffic public bin where contamination is a real cost. School cafeterias, offices, and event venues all generate the kind of mixed waste where one wrong item ruins a load. The custodian who currently has to re-sort by hand, and the sustainability coordinator whose contamination rate determines whether the recycling program survives the next budget cycle, both gain something concrete here.

The indirect beneficiary is the person dropping in the item. They no longer have to know San Diego's recycling rulebook to do the right thing.

Real-world impact

Arbiter targets the specific failure point that makes municipal recycling economically fragile in places like San Diego: contamination at the source. A single contaminated load can be rejected at the sorting facility and rerouted to landfill, which is exactly the outcome the user was trying to avoid by recycling in the first place. Decades of signage and education haven't closed that gap, because the gap isn't about willingness.

A bin that gets sorting right at the moment of disposal, without asking the user to be an expert, removes the weakest link in the chain. Even one Arbiter unit deployed in a school cafeteria turns a passive labeled bin into an active system that actually delivers what the recycling label promises, and the model is small and cheap enough that scaling to more units is a hardware problem rather than a software one.

Built With

Share this project:

Updates

Submission history