DocSentry / RUN_APP.md
SpandanM110's picture
DocSentry - bank document forensics with 4 tabs
05b69f8
|
Raw
History Blame Contribute Delete
5.26 kB
# Running the DocSentry Demo App
## Quick start (3 commands)
```powershell
# From: C:\Users\HP\Desktop\Anomaly Based project\
pip install -r requirements.txt
streamlit run app.py
```
That's it. Streamlit will open the app at http://localhost:8501 in your browser.
## Optional: install Tesseract OCR (for full text-rule checks)
1. Download from https://github.com/UB-Mannheim/tesseract/wiki
2. Run the `.exe` installer
3. Check "Add Tesseract to system PATH" during install
4. Restart your terminal, then `streamlit run app.py` again
The app works without Tesseract too β€” only the text/OCR-based checks are skipped.
## What's in the app
**Tab 1 β€” Single-document analysis** *(your primary demo)*
- Drag-drop a PNG / JPG / PDF
- See risk band (LOW / MEDIUM / HIGH / CRITICAL) in big colored text
- Sub-score breakdown bar chart
- ELA heatmap, copy-move match visualization, noise inconsistency heatmap (image files)
- Producer / creator / fonts table (PDFs)
- Trained ML model verdict (if `models/forgery_rf.joblib` exists)
- Download audit JSON or formatted PDF report
**Tab 2 β€” Cross-document consistency check** *(the novel angle)*
- Upload 2–4 documents for the same applicant
- App extracts name, DOB, address, account, IFSC from each
- Field-by-field comparison table with green/yellow/red status
- Mismatch detector with similarity scores
- Download consistency report JSON
**Tab 3 β€” Batch audit**
- Point at a folder, scan every file in it
- Get risk band per file as a sortable table
- Download CSV for the underwriting team
## Demo flow (for the pitch)
1. **Open Tab 1**, drop in a clean `land_000.png` from `data/images/originals/` β†’ "LOW" green band, no evidence
2. **Drop in a `land_005_copy_move.png`** from `data/images/tampered/` β†’ "HIGH" orange band, copy-move evidence
3. **Click through the heatmap tabs** β†’ judges see real visualizations, not just numbers
4. **Click "Download audit PDF"** β†’ a bank-letterhead report renders
5. **Switch to Tab 2**, upload 2 different `agreement_*.png` files β†’ "HIGH" mismatch because names differ
6. **Switch to Tab 3**, point at `data/` β†’ batch-process 250+ files in a few seconds
Total demo time: 3 minutes. Hands the judges something to download.
## Project file layout
```
C:\Users\HP\Desktop\Anomaly Based project\
β”œβ”€β”€ app.py <-- Streamlit UI (this app)
β”œβ”€β”€ forensics.py <-- Core detection module
β”œβ”€β”€ audit_report.py <-- PDF report generator
β”œβ”€β”€ requirements.txt <-- pip dependencies
β”œβ”€β”€ RUN_APP.md <-- this file
β”œβ”€β”€ DATASETS.md <-- where to get more training data
β”œβ”€β”€ COLAB_QUICKSTART.md <-- Colab usage guide
β”œβ”€β”€ anomaly_detection_banking.ipynb <-- local Jupyter notebook
β”œβ”€β”€ anomaly_detection_banking_COLAB.ipynb <-- Colab notebook
β”œβ”€β”€ data/
β”‚ β”œβ”€β”€ images/originals/ 130 genuine docs
β”‚ β”œβ”€β”€ images/tampered/ 130 tampered docs
β”‚ β”œβ”€β”€ pdfs/originals/ 30 PDFs
β”‚ β”œβ”€β”€ pdfs/tampered/ 30 tampered PDFs
β”‚ └── statements/ 60 statements
└── models/
└── forgery_rf.joblib (created after running Section 7.5 in the notebook)
```
## Common issues
**"ModuleNotFoundError: No module named 'forensics'"**
You're not in the project folder. `cd "C:\Users\HP\Desktop\Anomaly Based project"` first, then `streamlit run app.py`.
**"streamlit: command not found"**
Streamlit didn't install. Re-run `pip install -r requirements.txt`. On Windows, you may need `python -m streamlit run app.py` instead.
**The "Download audit PDF" button shows a warning**
Make sure `reportlab` installed cleanly. Re-run `pip install reportlab`.
**Cross-doc tab says "ocr_skipped" for every field**
You don't have Tesseract installed. The forensic checks still work; only the cross-doc field extraction needs OCR. Install Tesseract (see above) to unlock that tab.
**The trained ML model section doesn't appear**
You haven't run Section 7.5 in the notebook yet. Open `anomaly_detection_banking.ipynb`, run all cells through Section 7.5; that creates `models/forgery_rf.joblib`. The Streamlit app picks it up automatically.
## Architecture sketch
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ app.py (Streamlit) β”‚
β”‚ Tab1: Single doc Tab2: Cross-doc β”‚
β”‚ Tab3: Batch audit Downloads: JSON + PDF β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ imports
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β–Ό β–Ό
forensics.py audit_report.py
- ELA / copy-move - ReportLab PDF
- noise / EXIF - Heatmap embeds
- PDF audit - Bank letterhead
- OCR + text rules - Evidence list
- RF model load
- Cross-doc check
```
All three files run on plain Python 3.10+, CPU-only, no paid APIs.