Spaces:
Running
A newer version of the Gradio SDK is available: 6.14.0
GraphoLab: When Artificial Intelligence Meets Forensic Graphology
Picture this: a law firm, a will sitting on the desk, and a forensic graphologist holding a magnifying glass. The question is simple, but the answer can be worth millions — or change the outcome of a criminal trial: is this signature genuine?
For decades, answering that question has required years of expertise, hours of painstaking manual work and, inevitably, a degree of subjectivity. Today, artificial intelligence offers new tools to support, accelerate and make this process more rigorous.
I built GraphoLab — an open-source collection of eight demonstration labs showing how machine learning and computer vision can be applied to forensic graphology.
The Problem: Limits of Traditional Analysis
Forensic graphology is a serious, well-established discipline. But like any manual process, it has structural limitations:
- Subjectivity: two expert examiners can reach different conclusions on the same document
- Scalability: finding a specific signature among ten thousand scanned pages takes weeks
- Reproducibility: qualitative observations ("the pen pressure seems different") are hard to verify independently
- Speed: in complex legal proceedings, the timeline of manual analysis can become a bottleneck
AI does not eliminate these problems — but it significantly reduces them, bringing objective measurements alongside human expertise.
The Solution: GraphoLab
GraphoLab is an open-source project that integrates seven AI technologies into a unified demonstration platform, accessible via browser thanks to a Gradio app. Each lab addresses a specific forensic graphology task.
The Eight Labs
| Lab | Functionality | AI Technology |
|---|---|---|
| 01 | Conceptual introduction | — |
| 02 | Handwritten Text Recognition (HTR) | TrOCR / EasyOCR |
| 03 | Signature authenticity verification | SigNet (Siamese Network) |
| 04 | Signature detection in documents | Conditional DETR fine-tuned |
| 05 | Writer identification | HOG + LBP + SVM |
| 06 | Graphological feature analysis | OpenCV + signal processing |
| 07 | Named Entity Recognition (NER) | Multilingual BERT-NER |
| 08 | Advanced OCR for Italian cursive | dots.ocr (1.7B VLM) |
Deep Dive 1: Verifying a Signature Without Knowing the Signer
One of the most frequent questions I get: "Does SigNet only work with signatures already in its training database?"
The answer is no — and the reason is architectural.
SigNet uses metric learning (a Siamese network with contrastive loss), not a traditional classifier. A classifier learns "who is person X" and cannot generalise to unseen identities. A metric model, by contrast, learns to answer a different question: "did these two signatures come from the same hand?"
This question is identity-agnostic. SigNet can therefore be applied to any pair of signatures — even from people never seen during training — producing a cosine similarity score that the examiner can use as quantitative evidence.
Limitations exist and must be communicated clearly:
- The training set (GPDS) contains primarily Brazilian/Portuguese signatures: styles far from that distribution may yield less reliable scores
- The decision threshold (0.35) was calibrated on CEDAR and may need adjustment in different contexts
- The system is a screening tool, not standalone proof: the final judgement always rests with the qualified examiner
Deep Dive 2: Transcribing Italian Cursive Is an Open Problem
Not all OCR engines are equal — and in the Italian forensic context, the difference can be decisive.
EasyOCR (used in the interactive app) runs a CNN + BiLSTM + CTC pipeline: fast (1–3 seconds per image on CPU), but with limited linguistic context. It works well on printed text and regular cursive.
TrOCR (Lab 02) is a full Transformer: BEiT visual encoder + RoBERTa decoder. Global linguistic context (self-attention) makes it more accurate on complex cursive, at the cost of 10–20 seconds per image on CPU.
dots.ocr (Lab 08) is a 1.7-billion-parameter Vision-Language Model. The LLM component corrects visual ambiguities using sentence-level semantic context — delivering the best publicly available accuracy on Italian cursive, requiring ~7 GB RAM and 2–5 minutes per image on CPU.
The right tool depends on the context: EasyOCR for interactive demos, dots.ocr for forensic transcription of a holographic will.
The Interactive Demo: Eight Tabs, All in a Browser
GraphoLab's Gradio app aggregates all capabilities in a single, accessible interface (no coding required — just Docker):
- Handwritten OCR — upload an image, get the transcribed text
- Signature Verification — upload two signatures, get a genuine/forged verdict with a confidence score
- Signature Detection — upload a multi-page document, automatically extract all signatures
- Named Entity Recognition — identify persons, locations and organisations in the text
- Writer Identification — attribute authorship of an anonymous handwriting sample
- Graphological Analysis — measure slant, spacing and stroke pressure
- Forensic Pipeline — full report in a single pass
- Document Dating — upload multiple documents, get them sorted chronologically by extracted date
Ethics and Limits: AI Does Not Replace the Expert
This point deserves to be stated plainly.
GraphoLab is a support tool, not an oracle. AI models produce scores and measurements — not verdicts. The appropriate model is human-AI collaboration: AI handles the quantitative and labour-intensive aspects of analysis, while the expert focuses on interpretation, contextualisation and legal accountability.
In a courtroom, "the model says X" is not evidence. "The expert used this tool to corroborate their analysis, here is how" is a different matter entirely.
Transparency about model limitations — training datasets, decision thresholds, conditions of validity — is an integral part of responsible use of these tools in forensic practice.
Try It Yourself
GraphoLab is fully open source under the Apache 2.0 licence.
GitHub repository: https://github.com/fabioantonini/GraphoLab
You will find:
- Eight runnable Jupyter notebooks (Python 3.11/3.12 + PyTorch)
- The Gradio app, launchable locally or via Docker
- Full documentation in Italian and English
- Scripts to generate synthetic test data
git clone https://github.com/fabioantonini/GraphoLab.git
cd GraphoLab
docker compose up gradio
# Open http://localhost:7860
I am curious to hear your thoughts — especially from those working in forensic or legal practice. AI in this domain is still largely unexplored, and I believe there are significant opportunities for professionals who want to bring quantitative rigour to expert witness work.
Forensic examiners, lawyers, notaries, document specialists: what do you expect from tools like this? What is still missing?
Fabio Antonini — AI Engineer & Researcher GitHub: https://github.com/fabioantonini/GraphoLab