satyaki-mitra commited on
Commit
d9dfeec
·
1 Parent(s): 4d08607

Docs/ updated.

Browse files
Files changed (1) hide show
  1. docs/ARCHITECTURE.md +59 -34
docs/ARCHITECTURE.md CHANGED
@@ -110,53 +110,78 @@ graph TB
110
  ## Data Pipeline
111
 
112
  ```mermaid
113
- flowchart LR
114
- subgraph "Input"
115
- A[Image Upload] --> B{Validation}
116
- B -->|Pass| C[Temp Storage]
117
- B -->|Fail| X[Error Response]
118
  end
119
 
120
- subgraph "Preprocessing"
121
- C --> D[Load Image]
122
- D --> E[Resize / Normalize]
123
- E --> F[Luminance Conversion]
124
  end
125
 
126
- subgraph "Tier 1 — Statistical Metrics"
127
- F --> G1[Gradient Analysis]
128
- F --> G2[Frequency Analysis]
129
- F --> G3[Noise Analysis]
130
- F --> G4[Texture Analysis]
131
- F --> G5[Color Analysis]
132
  end
133
 
134
- subgraph "Metric Aggregation"
135
- G1 & G2 & G3 & G4 & G5 --> H[Weighted Ensemble]
136
- H --> I[Overall Score<br/>0.0 – 1.0]
137
- I --> J[Detection Status]
 
 
 
 
 
 
138
  end
139
 
140
- subgraph "Tier 2Declarative Evidence"
141
- C --> K1[EXIF Analysis]
142
- C --> K2[Watermark Analysis]
143
- K1 & K2 --> L[Evidence Results]
144
  end
145
 
146
- subgraph "Decision Policy"
147
- J --> M[Rule-Based Engine]
148
- L --> M
149
- M --> V1[Mostly Authentic]
150
- M --> V2[Authentic But Review]
151
- M --> V3[Suspicious AI Likely]
152
- M --> V4[Confirmed AI Generated]
153
  end
154
 
155
- subgraph "Output"
156
- M --> N[Detailed Result Assembly]
157
- N --> O[Explainability]
158
- O --> P[CSV / JSON Export]
159
  end
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  ```
161
 
162
  ---
 
110
  ## Data Pipeline
111
 
112
  ```mermaid
113
+ graph TB
114
+ subgraph "Frontend Layer"
115
+ UI["Web UI<br/>Single Page HTML"]
 
 
116
  end
117
 
118
+ subgraph "API Layer"
119
+ API["FastAPI Server<br/>app.py"]
120
+ CORS["CORS Middleware"]
121
+ ERROR["Global Error Handler"]
122
  end
123
 
124
+ subgraph "Processing Layer"
125
+ VALIDATOR["Image Validator<br/>utils/validators.py"]
126
+ BATCH["Batch Processor<br/>features/batch_processor.py"]
 
 
 
127
  end
128
 
129
+ subgraph "Detection Layer — Tier 1"
130
+ AGG["Signal Aggregator<br/>metrics/signal_aggregator.py"]
131
+
132
+ subgraph "Independent Metrics"
133
+ M1["Gradient PCA"]
134
+ M2["Frequency FFT"]
135
+ M3["Noise Pattern"]
136
+ M4["Texture Stats"]
137
+ M5["Color Distribution"]
138
+ end
139
  end
140
 
141
+ subgraph "Evidence LayerTier 2 (non-scoring)"
142
+ EVIDENCE_AGG["Evidence Aggregator (Tier-2)<br/>evidence_analyzers/"]
143
+ EXIF["EXIF Analyzer"]
144
+ WM["Watermark Analyzer"]
145
  end
146
 
147
+ subgraph "Decision Layer"
148
+ POLICY["Decision Policy Engine<br/>decision_policy.py"]
149
+ DETAIL["Decision Explanation Engine"]
 
 
 
 
150
  end
151
 
152
+ subgraph "Reporting Layer"
153
+ CSV["CSV Reporter"]
154
+ JSON["JSON Reporter"]
 
155
  end
156
+
157
+ subgraph "Storage Layer"
158
+ UPLOAD[("Temp Uploads")]
159
+ CACHE[("Processing Cache")]
160
+ REPORTS[("Reports")]
161
+ end
162
+
163
+ UI --> API
164
+ API --> VALIDATOR
165
+ VALIDATOR --> BATCH
166
+ API --> ERROR
167
+
168
+ BATCH --> AGG
169
+ AGG --> M1 & M2 & M3 & M4 & M5
170
+ M1 & M2 & M3 & M4 & M5 --> AGG
171
+
172
+ BATCH --> EVIDENCE_AGG
173
+ EVIDENCE_AGG --> EXIF & WM
174
+
175
+ AGG --> POLICY
176
+ EVIDENCE_AGG --> DETAIL
177
+ EVIDENCE_AGG --> POLICY
178
+
179
+ POLICY --> DETAIL
180
+ DETAIL --> CSV & JSON
181
+
182
+ API -.-> UPLOAD
183
+ BATCH -.-> CACHE
184
+ CSV & JSON -.-> REPORTS
185
  ```
186
 
187
  ---