Skip to content

About

YOLOv8 (custom SE-attention variant) banknote detection for 6 currencies, exported to ONNX and running fully client-side in the browser — no server.

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Currency Vision

Currency Vision is a live browser app and research project for banknote denomination detection. The Vite frontend runs a YOLOv8 ONNX model in the browser, draws detections on the uploaded image, counts denominations, and converts totals across USD, PHP, INR, EUR, AUD, and CAD.

Live site: https://currency-vision-live.vercel.app

What is in this repo

  • index.html, src/, public/ - live Vite app deployed on Vercel.
  • public/model.onnx - browser inference model used by the live app.
  • public/ort/ - ONNX Runtime WebAssembly runtime files.
  • public/research/ and public/samples/ - app images copied from the research assets.
  • Currency_Vision_Latex_PDF.pdf - full paper.
  • dataset.yaml, notebook, result charts, and sample images - original research materials.

Run locally

npm install
npm run build
npm run preview

For development:

npm run dev

Dataset

The multi-currency dataset has 36 classes across USD, PHP, INR, EUR, AUD, and CAD.

Ultralytics Hub: https://hub.ultralytics.com/datasets/LIlVXj6GtnwV3fA91mwM

Deploy

This repo is linked locally to the Vercel project through .vercel/project.json, but .vercel is ignored by Git. To deploy from this machine:

vercel deploy --prod --yes

Do not commit .env.local, .vercel, node_modules, or dist.

Note

Currency Vision recognizes denominations. It is a research prototype, not a counterfeit-detection or authentication tool.

Results

Training curves for the custom SE-attention YOLOv8 variant, generated directly from training runs (see All_Model_Training_Code (1).ipynb):

mAP@50 mAP@50-95 Precision Recall

Comparison runs against baseline YOLOv8s, YOLOv8m, and RT-DETR are also in the repo root (yolov8s-result.png, yolov8m-results.png, RT-DETR-Result.png, yolov8s-SE-Result.png) for anyone who wants to check the SE-attention variant against the baselines directly.

How the browser inference works

The live app does not call a server for detection. The trained model is exported to ONNX and shipped as a static asset (public/model.onnx); ONNX Runtime Web (public/ort/, WebAssembly build) loads it and runs inference directly in the visitor's browser. Upload an image, and the forward pass, box decoding, and denomination counting all happen client-side.

Paper

Full writeup: Currency_Vision_Latex_PDF.pdf

About

YOLOv8 (custom SE-attention variant) banknote detection for 6 currencies, exported to ONNX and running fully client-side in the browser — no server.

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages