Work behind this service

Trained models in use

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, plus Tesseract OCR
  • 97.1% recall and 96.9% precision at IoU ≥ 0.9 on a 238-page book never used in training
  • SwiftUI app with Python, PyTorch and the model inside, signed and notarized
Erkan Ulu Schools · IstanbulIn production

Agentic OMR answer-sheet reader

Reads answer sheets from phone photos and scans. YOLO finds the answer rows, a custom-trained open-source vision-language model served with vLLM reads the marked options, and strict checks decide what is saved.

  • Teachers photograph sheets instead of typing every answer into the school portal
  • An uncertain read is tried again with a different prompt, then goes to a teacher
  • Results go into the school portal, and the school keeps its own answer sheets
What you can hire for

What a training project includes

Should you train at all?

A short written answer first: prompting, retrieval or training, with the reasons and the running costs.

Data and labels

Collect, label and split your data. Draft labels pass a verifier and a person before they reach training.

Training runs

Fine-tuning on a CUDA workstation, more than one checkpoint, and thresholds calibrated on the validation split.

Evaluation

A held-out test set and a strict metric, reported with the misses.

Serving

Served with vLLM, run on-device with PyTorch, or packaged inside an app.

Release checks

New versions are run on real documents before they ship. Otocropper 1.0.2 was checked against 20 of the school's PDFs, 4,813 pages.

Process

How a training project runs

  1. Baseline first

    Measure how a general model does on your data before training anything.

  2. Label a corpus

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

  3. Train and calibrate

    Train, then choose thresholds on validation data only.

  4. Test once, then ship

    Score the frozen model on the test set, publish the result, and release.

Questions

Frequently asked questions

Fine-tuning, RAG or prompting?

Prompting first. Retrieval when the model needs your documents. Fine-tuning when the output format or the visual task is narrow and the general model keeps missing. The PEFT methods guide compares the options.

What does fine-tuning cost?

In practice the GPU time is often the smaller part; preparing data and evaluating take longer. Current GPU prices and worked examples are in the LoRA fine-tuning cost guide.

Which models do you train?

Open models you can own: a vision-language model served with vLLM for reading answer marks, and RT-DETRv2 for finding page regions. Licences matter: Otocropper avoided AGPL code on purpose.

Can I see results before committing?

Results are reported on a held-out set the model never saw. Otocropper's numbers are on its case study page.

Thinking about training your own model?

Describe the task and how a general model does on it today. If prompting or retrieval will do, you will hear that first.

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. 30 projects shipped since.

Otocropper on a book it never saw

Held-out test: a 238-page book with 554 questions, never used in training. A predicted box counts only at IoU ≥ 0.9.

97.1%
recall
96.9%
precision
222 / 238
pages needed no edits
6 min 22 s
for a 414-page book (1,831 questions) on an M5 Max
Read the full case study