Image Duplication Detector
name: image-duplication-detector
by aipoch-ai · published 2026-04-01
$ claw add gh:aipoch-ai/aipoch-ai-image-duplication-detector---
name: image-duplication-detector
description: Detect image duplication and tampering in manuscript figures using computer
vision algorithms
version: 1.0.0
category: Integrity
tags: []
author: AIPOCH
license: MIT
status: Draft
risk_level: Medium
skill_type: Tool/Script
owner: AIPOCH
reviewer: ''
last_updated: '2026-02-06'
---
# Image Duplication Detector
ID: 195
Description
Uses Computer Vision (CV) algorithms to scan all images in paper manuscripts to detect potential duplication or local tampering (PS traces).
Usage
# Scan single PDF file
python scripts/main.py --input paper.pdf --output report.json
# Scan image folder
python scripts/main.py --input ./images/ --output report.json
# Specify similarity threshold (default 0.85)
python scripts/main.py --input paper.pdf --threshold 0.90 --output report.json
# Enable tampering detection
python scripts/main.py --input paper.pdf --detect-tampering --output report.json
# Generate visualization report
python scripts/main.py --input paper.pdf --visualize --output report.jsonParameters
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| `--input` | string | - | Yes | Input PDF file or image folder path |
| `--output` | string | report.json | No | Output report path |
| `--threshold` | float | 0.85 | No | Similarity threshold (0-1), higher is stricter |
| `--detect-tampering` | flag | false | No | Enable tampering/PS trace detection |
| `--visualize` | flag | false | No | Generate visualization comparison images |
| `--temp-dir` | string | ./temp | No | Temporary file directory |
Output Format
{
"summary": {
"total_images": 12,
"duplicates_found": 2,
"tampering_detected": 1,
"processing_time": "3.5s"
},
"duplicates": [
{
"group_id": 1,
"similarity": 0.98,
"images": [
{"page": 2, "index": 1, "path": "..."},
{"page": 5, "index": 3, "path": "..."}
]
}
],
"tampering": [
{
"image": "page_3_img_2.png",
"suspicious_regions": [
{"x": 120, "y": 80, "width": 50, "height": 50, "confidence": 0.92}
]
}
]
}Requirements
opencv-python>=4.8.0
numpy>=1.24.0
Pillow>=10.0.0
PyPDF2>=3.0.0
pdf2image>=1.16.0
imagehash>=4.3.0
scikit-image>=0.21.0
matplotlib>=3.7.0Algorithm Details
Duplication Detection
Tampering Detection
Example
from scripts.main import ImageDuplicationDetector
detector = ImageDuplicationDetector(
threshold=0.85,
detect_tampering=True
)
results = detector.scan("paper.pdf")
detector.save_report(results, "report.json")Notes
Risk Assessment
| Risk Indicator | Assessment | Level |
|----------------|------------|-------|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
Security Checklist
Prerequisites
# Python dependencies
pip install -r requirements.txtEvaluation Criteria
Success Metrics
Test Cases
1. **Basic Functionality**: Standard input → Expected output
2. **Edge Case**: Invalid input → Graceful error handling
3. **Performance**: Large dataset → Acceptable processing time
Lifecycle Status
- Performance optimization
- Additional feature support
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...