97.1%
recall at IoU ≥ 0.9
96.9%
precision at IoU ≥ 0.9
222 / 238
held-out pages with no edits
6 min 22 s
for a 414-page book on an M5 Max

Held-out test: a 238-page book (554 questions) never used in training. Thresholds were chosen on the validation split, then frozen.

Work behind this service

Vision models in use

Computer vision finds and reads things in images: regions on a scanned page, marks on an answer sheet, printed numbers. Both systems below are in use at Erkan Ulu Schools in Istanbul.

Erkan Ulu Schools · macOSDeployed · v1.0.4

Otocropper

An offline Mac app that turns scanned question-bank PDFs into one image per question, named by its printed number and filed by unit and test.

  • Fine-tuned RT-DETRv2 detector for seven kinds of page region, run as four passes across two checkpoints and three input scales
  • Tesseract OCR reads the question numbers and the unit and test headers
  • 97.1% recall and 96.9% precision at IoU ≥ 0.9 on a 238-page book never used in training
  • Signed, notarized Mac app; five versions shipped between 8 and 14 September 2026
Erkan Ulu Schools · IstanbulIn production

Agentic OMR answer-sheet reader

Reads multiple-choice answer sheets from teachers' phone photos and scans, on the school's own sheet layout.

  • A YOLO model finds and crops each answer row
  • A custom-trained open-source vision-language model, served with vLLM, reads the marks
  • Low-confidence reads wait for a teacher instead of being guessed
Fine-tuning

Fine-tuning a model on your data

Fine-tune when the task is narrow and measurable and a general model keeps missing it. Otocropper's detector was fine-tuned on seven page-region classes from a five-book labeled corpus.

When answers must come from your documents, retrieval (RAG) is usually the better fit. GPU prices are in the LoRA fine-tuning cost guide, and methods are compared in PEFT vs LoRA.

  1. Baseline first

    Measure how a general model does on your data before training anything. If prompting or retrieval is enough, you hear that first.

  2. Label a corpus

    Label real examples, and keep a test set apart from the start.

  3. Train and calibrate

    Train on a CUDA workstation, keep more than one checkpoint, and choose thresholds on the validation split only.

  4. Test once, then ship

    Score the frozen model once on the test set, publish the result and release. Otocropper's 1.0.3 and 1.0.4 followed teacher reports.

Documents

Documents and OCR

Not every document needs a trained model. Printed text is read with OCR, handwritten marks with a vision model, and digital PDFs with a parser.

Printed text

Tesseract reads printed question numbers and unit and test headers in Turkish, so Otocropper names its files the way the book is printed, such as 1.jpg or 7_with_passage.jpg.

Handwritten marks

Marks need a vision model. The answer-sheet reader reads half-erased marks and corrections on the school's own sheets, with no special forms or scanner.

PDF statements, without AI

Sağlama, Savas Tutumlu's own financial-data venture, parses companies' published PDF statements in Python and keeps a SHA-256 hash of every file it fetches. Its ratios are measurements, not religious rulings or investment advice.

Read the case study
What you can hire for

What a vision project includes

Labeling pipeline

Draft labels, a verifier pass and a box editor, feeding clean train, validation and test splits.

Detector training

Object detectors fine-tuned on your classes. Otocropper's RT-DETRv2 model knows seven kinds of page region.

Strict evaluation

Scored at a strict overlap threshold on data never used in training, with thresholds chosen on validation and then frozen.

Error analysis

Every remaining error reviewed by eye. Two of the resulting rules removed 17 false positives on the test book at no cost in true positives.

Release checks

New versions run on real documents first: Otocropper 1.0.2 was checked against 20 of the school's PDFs, 4,813 pages.

On-device apps

PyTorch on the Apple GPU inside a signed, notarized Mac app that works with no internet connection.

Questions

Frequently asked questions

Fine-tuning, RAG or prompting?

Prompting first. Retrieval when the model needs your documents. Fine-tuning when the task is narrow and measurable and a general model keeps missing it, as with finding question regions on scanned pages.

YOLO or something else?

It depends on the licence and the task. Otocropper uses RT-DETRv2 rather than YOLO, so the app ships no Ultralytics or DocLayout-YOLO code and avoids AGPL licensing. The answer-sheet reader uses YOLO to find answer rows.

How much labeled data do I need?

Otocropper's detector was trained on pages from a five-book labeled corpus. The right amount depends on how varied your images are; a held-out test tells you when you have enough.

How is accuracy reported?

On a held-out set, at a strict threshold, with the numbers published. For Otocropper a predicted question box counts only at IoU ≥ 0.9 with the reference label.

Can it run offline?

Yes. Otocropper bundles Python 3.13, PyTorch on the Apple GPU, Tesseract and two model checkpoints in one Mac app signed with Developer ID and notarized.

What does fine-tuning cost?

Each build is quoted as one fixed price after a call. Preparing and checking the data often takes longer than the training run; GPU prices and worked examples are in the LoRA fine-tuning cost guide.

Have images or scans a model should read?

Send a sample and describe what the model should find. You will get a straight answer on whether a trained model is worth it.

Or call (786) 788-1030

Savas Tutumlu

Who builds it

Savas Tutumlu

Founder & CEO, Stratagem Systems

Started the studio in Houston, TX in 2023 and now works from Istanbul. He builds every project himself.