Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BibSort

BibSort is a local desktop application for sorting event photos by visible bib numbers. It runs OCR on images stored on the computer and copies or moves the results into numbered folders.

Photos are not uploaded to an external service. PaddleOCR downloads its model files only during initial setup, then uses the local model cache for later scans.

Output

Given an output folder, BibSort creates:

  • sorted/<number>/ for each recognized bib number.
  • review/ for uncertain photos.
  • no bib/ for photos explicitly marked as having no bib.

One photo can be placed in several number folders when it contains multiple bibs. Previously processed files are skipped to avoid duplicate output copies.

Desktop app

Requirements:

  • .NET 10 SDK when running from source.
  • One OCR engine:
    • PaddleOCR is slower and more reliable for event photos. It requires Python 3.10, 3.11, or 3.12.
    • Tesseract is faster and less reliable. It must be available as tesseract on the system path.

Run from source:

git clone https://github.com/babib3l3l/BibSort.git
cd BibSort
dotnet run --project BibSort.Desktop/BibSort.Desktop.csproj

Choose a local image folder and an output folder, then select Scan and sort. Photos are copied by default; enable Move instead of copy only when the source images should be removed.

PaddleOCR packages are installed on demand when needed. On Linux and macOS, Python may need to be installed through the system package manager first.

Reviewing photos

  • Select a numbered folder to review its photos. Arrow keys move through the current folder.
  • Enter one or more corrected bibs, such as 40,41, then press Enter or Apply to place copies in those folders.
  • The detected bibs are shown below the correction field. Use the - button beside a number to remove that photo from only that number's folder.
  • Press Delete to move the selected result copy to no bib/.
  • Right-click a result photo and choose Remove photo from this folder to delete only that output copy.

The Ignore edge overlays option rejects text close to image borders. Require light bib backing also checks the local pixels surrounding each OCR number and rejects ones without a light, paper-like bib area. Turn that option off for dark or coloured bibs. BibSort rejects timestamp-shaped OCR text such as 7:08 and 01:23:45 before treating it as a bib.

CLI

(WIP) The command-line tool uses Tesseract:

dotnet run --project BibSort.Cli/BibSort.Cli.csproj -- \
  --images ./photos \
  --sorted ./output/sorted \
  --review ./output/review

Run dotnet run --project BibSort.Cli/BibSort.Cli.csproj -- --help for all options. Add --move to move files instead of copying them.

Publish

Create a self-contained desktop build for a supported runtime:

./publish-cross-platform.ps1 -Runtime win-x64

Supported runtime values are win-x64, linux-x64, linux-arm64, osx-x64, and osx-arm64. Windows Terminal log integration is available on Windows; Linux and macOS use the built-in log window. UI and UX elements are mostly untested on non windows environments, please report any bugs you encounter.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages