🧪 Skills
Image Annotation QC
Image Annotation Quality Control Tool - Automatically detect quality issues in bounding box and polygon segmentation annotations, generate visual reports. Su...
v1.0.7
Description
name: image-annotation-qc description: Image Annotation Quality Control Tool - Automatically detect quality issues in bounding box and polygon segmentation annotations, generate visual reports. Supports COCO/YOLO/VOC/LabelMe formats, suitable for autonomous driving, industrial inspection, security monitoring and other AI training data quality control scenarios. metadata: {"openclaw":{"emoji":"🔍","requires":{"bins":["python3"],"pip":["Pillow","openpyxl"]}}}
Image Annotation QC Tool
Automatically detect quality issues in image annotations and generate detailed reports with visualization.
Features
- ✅ Multi-format Support: COCO / YOLO / VOC / LabelMe
- ✅ Auto-detection: Automatically identify format without specification
- ✅ Scene-specific QC: general / road / industrial / security
- ✅ Auto-save Reports: Save to
qc_report/directory automatically - ✅ Visualization: Generate images with error annotations (red boxes)
- ✅ Multi-format Reports: TXT / JSON / Excel
Quick Start
# Basic usage (auto-detect format)
python3 scripts/qc_tool.py -i <image_dir> -a <annotation_dir>
# Specify format
python3 scripts/qc_tool.py -i ./images -a ./annotations -f labelme
# Industrial inspection scenario
python3 scripts/qc_tool.py -i ./images -a ./annotations -d industrial
# Sample 100 images
python3 scripts/qc_tool.py -i ./images -a ./annotations -s 100
# Specify output directory
python3 scripts/qc_tool.py -i ./images -a ./annotations -o ./my_report
# Generate Excel report
python3 scripts/qc_tool.py -i ./images -a ./annotations --formats txt json xlsx
Parameters
| Parameter | Short | Description | Default |
|---|---|---|---|
--image-dir |
-i |
Image directory | (required) |
--annotation |
-a |
Annotation file or directory | (required) |
--format |
-f |
Annotation format | auto |
--domain |
-d |
Application scenario | general |
--sample |
-s |
Sample size | all |
--output |
-o |
Output directory | ./qc_report |
--formats |
- | Report formats | txt json |
--no-visual |
- | Disable visualization | false |
Scenarios
- general: General purpose
- road: Autonomous driving (small objects, occlusions)
- industrial: Industrial inspection (micro-defects)
- security: Security monitoring
Output Example
╔══════════════════════════════════════════╗
║ Image Annotation QC ║
╠══════════════════════════════════════════╣
║ Images: 1000 Annotations: 4523 ║
║ Errors: 127 Quality Score: 85.5 ║
║ Accuracy: 97.2% ║
╚══════════════════════════════════════════╝
Output Files
After QC completes, the following files are generated in the annotation directory:
annotations/
├── qc_report/
│ ├── qc_report.txt # Text report
│ ├── qc_report.json # JSON detailed report
│ ├── qc_report.xlsx # Excel report (optional)
│ └── visual/ # Visualization images
│ ├── frame_001_qc.png
│ └── frame_002_qc.png
Error Types
| Error | Description | Weight |
|---|---|---|
| Missing | Obvious targets not labeled | 1.0 |
| Wrong | Annotation region doesn't match target | 0.8 |
| Offset | Box edge deviates >10px | 0.5 |
| Too Large | Box significantly larger than target | 0.3 |
| Too Small | Box doesn't fully contain target | 0.5 |
| Duplicate | Same object annotated multiple times | 0.5 |
| Label Error | Wrong class label | 0.8 |
Quality Score
Score = 100 × (annotations - errors×weight) / annotations
Grading:
- 90+: Excellent
- 80-89: Good
- 70-79: Pass
- <70: Fail
Installation
pip install Pillow openpyxl
As Module
from qc_tool import AnnotationQC
qc = AnnotationQC('images/', 'annotations/', format='labelme')
data = qc.load_annotations()
result = qc.check_annotations(data)
qc.generate_report(result, formats=['txt', 'json'])
qc.visualize_errors(result)
print(f"Quality Score: {result.quality_score}")
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!