Scoresight
ScoreSight is a powerful scoreboard OCR software for live broadcasts
Install / Use
/learn @royshil/ScoresightREADME
⚠️ Stalled ⚠️ This project is not under active development
ScoreSight - Real-time OCR For Scoreboards, Apps, Games and more
<div align="center"> </div>ScoreSight is an OCR (Optical Character Recognition) application designed to extract text from real-time updating streams like scoreboards, applications, videos and games.
<div align="center"> <a href="https://youtu.be/MtctQZ2DIjU" target="_blank"><img src="./docs/scoresight_getting_started.png" width="50%"/></a> </div>It is written in Python and utilizes the following technologies:
- Qt6: A cross-platform GUI toolkit for creating graphical user interfaces.
- OpenCV: A computer vision library for image and video processing.
- Tesseract OCR: An open-source OCR engine for recognizing text from images.
It is the best free real-time OCR tool on planet Earth for scoreboards and games.
Features
- Works natively on Windows, Mac and Linux (the only scoreboard OCR tool that does it)
- Input/Capture: USB, NDI, Screen Capture, URL / RTSP, Video Files, etc.
- Perspective correction
- Image processing and binarization techniques, local, global etc.
- Output to text files (.txt, .csv, .xml)
- HTTP output via local server: HTML, JSON, XML and CSV endpoints
- Call external HTTP services with the OCR data
- Import & Export configuration profiles
- Integrations: OBS (websocket), vMix (API), NewBlue FX Titler (API), UNO (API), generic HTTP APIs
- Up to 30 updates/s
- Unlimited detection boxes
- Camera bump and drift correction with stabilization algorithm
- Unlimited devices or open instances on the same device
- Detect any scoreboard fonts, general fonts and even "dot" indicators
- Translated to 12 languages (English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Portugese, Russian, Chinese)
- Collect OCR training data and annotate it with a built-in tool
Price: FREE.
Usage
Very short video tutorials:
<div> <a href="https://youtu.be/wMNolI0w0tE" target="_blank"><img src="docs/image-16.png" width="30%"/></a> <a href="https://youtu.be/ACY4-yT3x84" target="_blank"><img src="docs/image-17.png" width="30%"/></a> <a href="https://youtu.be/yowoYzBWrps" target="_blank"><img src="docs/image-18.png" width="30%"/></a> <a href="https://youtu.be/ptR-Yh5FSPg" target="_blank"><img src="docs/image-19.png" width="30%"/></a> <a href="https://youtu.be/QO76EFmJ7Ig" target="_blank"><img src="docs/image-23.png" width="30%"/></a> </div>Additional guides:
- How to use the internal HTTP server
- How to connect to vMix
- How to send API requests to external services
- How to collect and annotate OCR training data
Installation
See the releases page for downloadable executables and installers.
See the Install Guide for help with installation.
Running and Building from Source
Prerequisites
- Python 3.11
- git
Procedure
- Clone the repository:
git clone https://github.com/occ-ai/scoresight.git
- Install the required dependencies:
pip install -r requirements.txt
For Mac and Windows there are further dependencies in requirements-mac.txt and requirements-win.txt
- Create a
.envfile. See the contents of the file in the.github/worksflows/build.yamlfile
Windows
There are some extra steps for installation on Windows:
- Download and install https://visualstudio.microsoft.com/visual-cpp-build-tools/ C++ Build Tools
- Build the win32DeviceEnum pyd by
$ cd src/win32DeviceEnum && python.exe setup.py build_ext --inplace
MacOS
On Mac, and particularly on Arm64, you will need to install dependencies manually. This is reflected in the ./github/actions/build.yaml file.
Get the project from the repo and build it locally
$ git clone https://github.com/nocarryr/cyndilib.git
$ cd cyndilib
$ pip install setuptools numpy cython
$ pip install .
Get the project from the repo and built it locally.
This assumes you have Homewbrew in /opt/homebrew but if it's in /usr/local then there's no need for the extra flagging.
$ git clone https://github.com/sirfz/tesserocr.git
$ cd tesserocr
$ /opt/homebrew/brew install tesseract leptonica
$ PATH="$PATH:/opt/homebrew/bin" CPPFLAGS="-I/opt/homebrew/include -L/opt/homebrew/lib" python3 -m pip install --no-binary tesserocr tesserocr
Running from source
-
Compile the UI files into Python:
./scripts/compile_ui.ps1 -
Launch the application:
python main.py -
Follow the on-screen instructions to load an image of the scoreboard and extract the text.
Build an executable
You may want to build a distributable .exe or .app or even an installer, this is possible with PyInstaller.
To build the executable run PyInstaller.
MacOS
pyinstaller --clean --noconfirm scoresight.spec -- --mac_osx
Windows
pyinstaller --clean --noconfirm scoresight.spec -- --win
Linux
pyinstaller --clean --noconfirm scoresight.spec
Contributing
Contributions are welcome! If you would like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your forked repository.
- Submit a pull request.
License
This project is released under the MIT license.
