58ca4e68db
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics) - Rust analytics service with parallel report generation - C runtime with POSIX shared memory IPC - PostgreSQL schema with 30+ tables, full migrations - Redis cache, sessions, pub/sub - Kafka event streaming with Zookeeper - WebSocket hub for real-time updates - Automation engine with cron jobs, workflows, event triggers - JWT authentication, multi-tenant from start - Docker Compose with all services - Nginx reverse proxy with rate limiting - Integration tests passing - Feature gap analysis against Fortnox/Odoo/Visma Refs: BOC-001
76 lines
2.4 KiB
Markdown
76 lines
2.4 KiB
Markdown
# ATM Anomaly Detection
|
|
|
|
AI-driven anomaly detection for ATM infrastructure monitoring.
|
|
|
|
## Overview
|
|
|
|
This system detects anomalies in ATM images using computer vision and machine learning:
|
|
- **Physical damage** (vandalism, scratches, broken screens)
|
|
- **Environmental issues** (graffiti, dirt, obstructions)
|
|
- **Functional problems** (out of service, paper jams, empty cash)
|
|
- **Security concerns** (skimming devices, suspicious attachments)
|
|
|
|
## Structure
|
|
|
|
```
|
|
atm-anomaly-detection/
|
|
├── data/ # Training data and datasets
|
|
│ ├── raw/ # Original ATM images
|
|
│ ├── processed/ # Preprocessed images
|
|
│ ├── annotations/ # Label files
|
|
│ └── splits/ # Train/val/test splits
|
|
├── models/ # Trained model artifacts
|
|
│ ├── checkpoints/ # Training checkpoints
|
|
│ ├── exports/ # ONNX/TensorRT exports
|
|
│ └── configs/ # Model configurations
|
|
├── src/ # Source code
|
|
│ ├── data/ # Data loading and preprocessing
|
|
│ ├── models/ # Model architectures
|
|
│ ├── training/ # Training loops
|
|
│ ├── inference/ # Prediction pipeline
|
|
│ └── evaluation/ # Metrics and validation
|
|
├── config/ # Configuration files
|
|
├── docs/ # Documentation
|
|
└── scripts/ # Utility scripts
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
1. Place ATM images in `data/raw/`
|
|
2. Run preprocessing: `python src/data/preprocess.py`
|
|
3. Train model: `python src/training/train.py`
|
|
4. Run inference: `python src/inference/predict.py --image <path>`
|
|
|
|
## Data Schema
|
|
|
|
### Images
|
|
- Format: JPG/PNG
|
|
- Resolution: 1920x1080 or higher
|
|
- Naming: `{atm_id}_{timestamp}_{camera_angle}.jpg`
|
|
|
|
### Annotations
|
|
- Format: COCO JSON or YOLO txt
|
|
- Categories: damage, graffiti, obstruction, skimming, out_of_service
|
|
|
|
## Model
|
|
|
|
- Base: YOLOv8 or EfficientDet
|
|
- Input: 640x640 RGB
|
|
- Output: Bounding boxes + anomaly class + confidence
|
|
|
|
## Pipeline
|
|
|
|
1. **Data Collection** → ATM images from field cameras
|
|
2. **Preprocessing** → Resize, normalize, augment
|
|
3. **Training** → Supervised learning on annotated data
|
|
4. **Inference** → Real-time anomaly detection
|
|
5. **Alerting** → Notify when anomalies detected
|
|
|
|
## Status
|
|
|
|
- [x] Project structure
|
|
- [ ] Database schema
|
|
- [ ] Data pipeline
|
|
- [ ] Model training
|
|
- [ ] API deployment
|