Update README.md
Browse files
README.md
CHANGED
|
@@ -15,6 +15,147 @@ tags:
|
|
| 15 |
- YOLO
|
| 16 |
- PyTorch
|
| 17 |
- PaddlePaddle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
---
|
| 19 |
# Indian ID Validator
|
| 20 |
|
|
@@ -38,64 +179,18 @@ Supported ID types:
|
|
| 38 |
|
| 39 |
## Models
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
- mAP50: 0.795
|
| 54 |
-
- mAP50-95: 0.553
|
| 55 |
-
- Precision: 0.777
|
| 56 |
-
- Recall: 0.774
|
| 57 |
-
- Fitness: 0.577
|
| 58 |
-
- **Link**: [Kaggle Notebook](https://www.kaggle.com/code/ravindranlogasanjeev/aadhaar)
|
| 59 |
-
|
| 60 |
-
### Driving_License
|
| 61 |
-
- **Model**: YOLO11l
|
| 62 |
-
- **Classes**: `Address`, `Blood Group`, `DL No`, `DOB`, `Name`, `Relation With`, `RTO`, `State`, `Vehicle Type`
|
| 63 |
-
- **Metrics**:
|
| 64 |
-
- mAP50: 0.690
|
| 65 |
-
- mAP50-95: 0.524
|
| 66 |
-
- Precision: 0.752
|
| 67 |
-
- Recall: 0.669
|
| 68 |
-
- **Link**: [Ultralytics Hub](https://hub.ultralytics.com/models/eaHzQ79umKwJkic9DXbm)
|
| 69 |
-
|
| 70 |
-
### Pan_Card
|
| 71 |
-
- **Model**: YOLO11l
|
| 72 |
-
- **Classes**: `PAN`, `Name`, `Father's Name`, `DOB`, `Pan Card`
|
| 73 |
-
- **Metrics**:
|
| 74 |
-
- mAP50: 0.924
|
| 75 |
-
- mAP50-95: 0.686
|
| 76 |
-
- Precision: 0.902
|
| 77 |
-
- Recall: 0.901
|
| 78 |
-
- **Link**: [Ultralytics Hub](https://hub.ultralytics.com/models/Yj4aJ34fK02MkrHFSXq0)
|
| 79 |
-
|
| 80 |
-
### Passport
|
| 81 |
-
- **Model**: YOLO11l
|
| 82 |
-
- **Classes**: `Address`, `Code`, `DOB`, `DOI`, `EXP`, `Gender`, `MRZ1`, `MRZ2`, `Name`, `Nationality`, `Nation`, `POI`
|
| 83 |
-
- **Metrics**:
|
| 84 |
-
- mAP50: 0.987
|
| 85 |
-
- mAP50-95: 0.851
|
| 86 |
-
- Precision: 0.972
|
| 87 |
-
- Recall: 0.967
|
| 88 |
-
- **Link**: [Ultralytics Hub](https://hub.ultralytics.com/models/ELaiHGZ0bbr4JwsvSZ7z)
|
| 89 |
-
|
| 90 |
-
### Voter_Id
|
| 91 |
-
- **Model**: YOLO11l
|
| 92 |
-
- **Classes**: `Address`, `Age`, `DOB`, `Card Voter ID 1 Back`, `Card Voter ID 2 Front`, `Card Voter ID 2 Back`, `Card Voter ID 1 Front`, `Date of Issue`, `Election`, `Father`, `Gender`, `Name`, `Point`, `Portrait`, `Symbol`, `Voter ID`
|
| 93 |
-
- **Metrics**:
|
| 94 |
-
- mAP50: 0.917
|
| 95 |
-
- mAP50-95: 0.772
|
| 96 |
-
- Precision: 0.922
|
| 97 |
-
- Recall: 0.873
|
| 98 |
-
- **Link**: [Ultralytics Hub](https://hub.ultralytics.com/models/jAz7y1UQAfr2oBlwLGDp)
|
| 99 |
|
| 100 |
## Installation
|
| 101 |
|
|
@@ -113,7 +208,7 @@ Supported ID types:
|
|
| 113 |
The `requirements.txt` includes `ultralytics`, `paddleocr`, `paddlepaddle`, `numpy==1.24.4`, `pandas==2.2.2`, and others.
|
| 114 |
|
| 115 |
3. **Download Models**:
|
| 116 |
-
Models are downloaded automatically via `inference.py` from the Hugging Face repository. Ensure `config.json` is in the root directory.
|
| 117 |
|
| 118 |
## Usage
|
| 119 |
|
|
@@ -192,37 +287,27 @@ print(json.dumps(result, indent=4))
|
|
| 192 |
**Visualizations**:
|
| 193 |
The `verbose=True` flag generates visualizations for the raw image, bounding boxes, and each detected field with extracted text. Below are the results for `passport_front.jpg`:
|
| 194 |
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
- **MRZ2**:
|
| 217 |
-

|
| 218 |
-
- **Name**:
|
| 219 |
-

|
| 220 |
-
- **Nationality**:
|
| 221 |
-

|
| 222 |
-
- **Nation**:
|
| 223 |
-

|
| 224 |
-
- **POI**:
|
| 225 |
-

|
| 226 |
|
| 227 |
**Output**:
|
| 228 |
```
|
|
@@ -293,4 +378,8 @@ Contributions are welcome! To contribute:
|
|
| 293 |
2. Create a branch: `git checkout -b feature-name`.
|
| 294 |
3. Submit a pull request with your changes.
|
| 295 |
|
| 296 |
-
Report issues or suggest features via the [Hugging Face Issues](https://huggingface.co/logasanjeev/indian-id-validator/discussions) page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
- YOLO
|
| 16 |
- PyTorch
|
| 17 |
- PaddlePaddle
|
| 18 |
+
- computer-vision
|
| 19 |
+
- image-classification
|
| 20 |
+
- object-detection
|
| 21 |
+
- indian-id
|
| 22 |
+
- document-processing
|
| 23 |
+
model-index:
|
| 24 |
+
- name: Id_Classifier
|
| 25 |
+
results:
|
| 26 |
+
- task:
|
| 27 |
+
type: image-classification
|
| 28 |
+
dataset:
|
| 29 |
+
name: custom-indian-id-dataset
|
| 30 |
+
type: custom-indian-id-dataset
|
| 31 |
+
metrics:
|
| 32 |
+
- name: Accuracy (Top-1)
|
| 33 |
+
type: accuracy_top1
|
| 34 |
+
value: 0.995
|
| 35 |
+
- name: Accuracy (Top-5)
|
| 36 |
+
type: accuracy_top5
|
| 37 |
+
value: 1.0
|
| 38 |
+
source:
|
| 39 |
+
name: Ultralytics Hub
|
| 40 |
+
url: https://hub.ultralytics.com/models/QnJjO78MxBaRVeX2wOO4
|
| 41 |
+
- name: Aadhaar
|
| 42 |
+
results:
|
| 43 |
+
- task:
|
| 44 |
+
type: object-detection
|
| 45 |
+
dataset:
|
| 46 |
+
name: custom-indian-id-dataset
|
| 47 |
+
type: custom-indian-id-dataset
|
| 48 |
+
metrics:
|
| 49 |
+
- name: mAP50
|
| 50 |
+
type: mAP50
|
| 51 |
+
value: 0.795
|
| 52 |
+
- name: mAP50-95
|
| 53 |
+
type: mAP50-95
|
| 54 |
+
value: 0.553
|
| 55 |
+
- name: Precision
|
| 56 |
+
type: precision
|
| 57 |
+
value: 0.777
|
| 58 |
+
- name: Recall
|
| 59 |
+
type: recall
|
| 60 |
+
value: 0.774
|
| 61 |
+
- name: Fitness
|
| 62 |
+
type: fitness
|
| 63 |
+
value: 0.577
|
| 64 |
+
source:
|
| 65 |
+
name: Kaggle Notebook
|
| 66 |
+
url: https://www.kaggle.com/code/ravindranlogasanjeev/aadhaar
|
| 67 |
+
- name: Driving_License
|
| 68 |
+
results:
|
| 69 |
+
- task:
|
| 70 |
+
type: object-detection
|
| 71 |
+
dataset:
|
| 72 |
+
name: custom-indian-id-dataset
|
| 73 |
+
type: custom-indian-id-dataset
|
| 74 |
+
metrics:
|
| 75 |
+
- name: mAP50
|
| 76 |
+
type: mAP50
|
| 77 |
+
value: 0.690
|
| 78 |
+
- name: mAP50-95
|
| 79 |
+
type: mAP50-95
|
| 80 |
+
value: 0.524
|
| 81 |
+
- name: Precision
|
| 82 |
+
type: precision
|
| 83 |
+
value: 0.752
|
| 84 |
+
- name: Recall
|
| 85 |
+
type: recall
|
| 86 |
+
value: 0.669
|
| 87 |
+
source:
|
| 88 |
+
name: Ultralytics Hub
|
| 89 |
+
url: https://hub.ultralytics.com/models/eaHzQ79umKwJkic9DXbm
|
| 90 |
+
- name: Pan_Card
|
| 91 |
+
results:
|
| 92 |
+
- task:
|
| 93 |
+
type: object-detection
|
| 94 |
+
dataset:
|
| 95 |
+
name: custom-indian-id-dataset
|
| 96 |
+
type: custom-indian-id-dataset
|
| 97 |
+
metrics:
|
| 98 |
+
- name: mAP50
|
| 99 |
+
type: mAP50
|
| 100 |
+
value: 0.924
|
| 101 |
+
- name: mAP50-95
|
| 102 |
+
type: mAP50-95
|
| 103 |
+
value: 0.686
|
| 104 |
+
- name: Precision
|
| 105 |
+
type: precision
|
| 106 |
+
value: 0.902
|
| 107 |
+
- name: Recall
|
| 108 |
+
type: recall
|
| 109 |
+
value: 0.901
|
| 110 |
+
source:
|
| 111 |
+
name: Ultralytics Hub
|
| 112 |
+
url: https://hub.ultralytics.com/models/Yj4aJ34fK02MkrHFSXq0
|
| 113 |
+
- name: Passport
|
| 114 |
+
results:
|
| 115 |
+
- task:
|
| 116 |
+
type: object-detection
|
| 117 |
+
dataset:
|
| 118 |
+
name: custom-indian-id-dataset
|
| 119 |
+
type: custom-indian-id-dataset
|
| 120 |
+
metrics:
|
| 121 |
+
- name: mAP50
|
| 122 |
+
type: mAP50
|
| 123 |
+
value: 0.987
|
| 124 |
+
- name: mAP50-95
|
| 125 |
+
type: mAP50-95
|
| 126 |
+
value: 0.851
|
| 127 |
+
- name: Precision
|
| 128 |
+
type: precision
|
| 129 |
+
value: 0.972
|
| 130 |
+
- name: Recall
|
| 131 |
+
type: recall
|
| 132 |
+
value: 0.967
|
| 133 |
+
source:
|
| 134 |
+
name: Ultralytics Hub
|
| 135 |
+
url: https://hub.ultralytics.com/models/ELaiHGZ0bbr4JwsvSZ7z
|
| 136 |
+
- name: Voter_Id
|
| 137 |
+
results:
|
| 138 |
+
- task:
|
| 139 |
+
type: object-detection
|
| 140 |
+
dataset:
|
| 141 |
+
name: custom-indian-id-dataset
|
| 142 |
+
type: custom-indian-id-dataset
|
| 143 |
+
metrics:
|
| 144 |
+
- name: mAP50
|
| 145 |
+
type: mAP50
|
| 146 |
+
value: 0.917
|
| 147 |
+
- name: mAP50-95
|
| 148 |
+
type: mAP50-95
|
| 149 |
+
value: 0.772
|
| 150 |
+
- name: Precision
|
| 151 |
+
type: precision
|
| 152 |
+
value: 0.922
|
| 153 |
+
- name: Recall
|
| 154 |
+
type: recall
|
| 155 |
+
value: 0.873
|
| 156 |
+
source:
|
| 157 |
+
name: Ultralytics Hub
|
| 158 |
+
url: https://hub.ultralytics.com/models/jAz7y1UQAfr2oBlwLGDp
|
| 159 |
---
|
| 160 |
# Indian ID Validator
|
| 161 |
|
|
|
|
| 179 |
|
| 180 |
## Models
|
| 181 |
|
| 182 |
+
The following models are used in the pipeline. You can download them from their respective Ultralytics Hub links in various formats such as PyTorch, ONNX, TensorRT, and more for deployment in different environments.
|
| 183 |
+
|
| 184 |
+
| Model Name | Type | Classes | Link |
|
| 185 |
+
|------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
|
| 186 |
+
| Id_Classifier | YOLO11l-cls | `aadhar_back`, `aadhar_front`, `driving_license_back`, `driving_license_front`, `pan_card_front`, `passport`, `voter_id` | [Ultralytics Hub](https://hub.ultralytics.com/models/QnJjO78MxBaRVeX2wOO4) |
|
| 187 |
+
| Aadhaar | YOLO11l | `Aadhaar_Number`, `Aadhaar_DOB`, `Aadhaar_Gender`, `Aadhaar_Name`, `Aadhaar_Address` | [Kaggle Notebook](https://www.kaggle.com/code/ravindranlogasanjeev/aadhaar) |
|
| 188 |
+
| Driving_License | YOLO11l | `Address`, `Blood Group`, `DL No`, `DOB`, `Name`, `Relation With`, `RTO`, `State`, `Vehicle Type` | [Ultralytics Hub](https://hub.ultralytics.com/models/eaHzQ79umKwJkic9DXbm) |
|
| 189 |
+
| Pan_Card | YOLO11l | `PAN`, `Name`, `Father's Name`, `DOB`, `Pan Card` | [Ultralytics Hub](https://hub.ultralytics.com/models/Yj4aJ34fK02MkrHFSXq0) |
|
| 190 |
+
| Passport | YOLO11l | `Address`, `Code`, `DOB`, `DOI`, `EXP`, `Gender`, `MRZ1`, `MRZ2`, `Name`, `Nationality`, `Nation`, `POI` | [Ultralytics Hub](https://hub.ultralytics.com/models/ELaiHGZ0bbr4JwsvSZ7z) |
|
| 191 |
+
| Voter_Id | YOLO11l | `Address`, `Age`, `DOB`, `Card Voter ID 1 Back`, `Card Voter ID 2 Front`, `Card Voter ID 2 Back`, `Card Voter ID 1 Front`, `Date of Issue`, `Election`, `Father`, `Gender`, `Name`, `Point`, `Portrait`, `Symbol`, `Voter ID` | [Ultralytics Hub](https://hub.ultralytics.com/models/jAz7y1UQAfr2oBlwLGDp) |
|
| 192 |
+
|
| 193 |
+
**Note**: Metrics for each model are available in the `model-index` section of the YAML metadata at the top of this README. Refer to those for detailed evaluation results.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 194 |
|
| 195 |
## Installation
|
| 196 |
|
|
|
|
| 208 |
The `requirements.txt` includes `ultralytics`, `paddleocr`, `paddlepaddle`, `numpy==1.24.4`, `pandas==2.2.2`, and others.
|
| 209 |
|
| 210 |
3. **Download Models**:
|
| 211 |
+
Models are downloaded automatically via `inference.py` from the Hugging Face repository. Ensure `config.json` is in the root directory. Alternatively, use the Ultralytics Hub links above to download models in formats like PyTorch, ONNX, etc.
|
| 212 |
|
| 213 |
## Usage
|
| 214 |
|
|
|
|
| 287 |
**Visualizations**:
|
| 288 |
The `verbose=True` flag generates visualizations for the raw image, bounding boxes, and each detected field with extracted text. Below are the results for `passport_front.jpg`:
|
| 289 |
|
| 290 |
+
| **Type** | **Image** |
|
| 291 |
+
|------------------------------|-----------------------------------------------------------------------------------------------|
|
| 292 |
+
| **Raw Image** |  |
|
| 293 |
+
| **Output with Bounding Boxes** |  |
|
| 294 |
+
|
| 295 |
+
**Detected Fields**:
|
| 296 |
+
|
| 297 |
+
| **Field** | **Image** |
|
| 298 |
+
|----------------|-----------------------------------------------------------------------------------------------|
|
| 299 |
+
| **Address** |  |
|
| 300 |
+
| **Code** |  |
|
| 301 |
+
| **DOB** |  |
|
| 302 |
+
| **DOI** |  |
|
| 303 |
+
| **EXP** |  |
|
| 304 |
+
| **Gender** |  |
|
| 305 |
+
| **MRZ1** |  |
|
| 306 |
+
| **MRZ2** |  |
|
| 307 |
+
| **Name** |  |
|
| 308 |
+
| **Nationality**|  |
|
| 309 |
+
| **Nation** |  |
|
| 310 |
+
| **POI** |  |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 311 |
|
| 312 |
**Output**:
|
| 313 |
```
|
|
|
|
| 378 |
2. Create a branch: `git checkout -b feature-name`.
|
| 379 |
3. Submit a pull request with your changes.
|
| 380 |
|
| 381 |
+
Report issues or suggest features via the [Hugging Face Issues](https://huggingface.co/logasanjeev/indian-id-validator/discussions) page.
|
| 382 |
+
|
| 383 |
+
## License
|
| 384 |
+
|
| 385 |
+
MIT License
|