data2391/shadow-matchv1
GitHub: data2391/shadow-matchv1
基于 ArcFace 与 Playwright 的全本地化 OSINT 人脸识别元搜索引擎,无需任何外部 API 即可通过一张照片自动识别目标身份。
Stars: 0 | Forks: 0
```
_____ _ _ __ __ _ _ _
/ ____| | | | | \/ | | | | | | |
| (___ | |__ __ _ __| | _____ | \ / | __ _| |_ ___| |__ | |
\___ \| '_ \ / _` |/ _` |/ _ \ \ | |\/| |/ _` | __/ __| '_ \ | |
____) | | | | (_| | (_| | (_) | | | | | (_| | || (__| | | | |_|
|_____/|_| |_|\__,_|\__,_|\___/ |_| |_|\__,_|\__\___|_| |_| (_)
v1 — by Data2391
```
**OSINT 人脸识别引擎**




## 简介
SHADOW-MATCH 是一个 100% 本地化的 OSINT 人脸识别元搜索引擎。
它结合了前沿的计算机视觉技术(**InsightFace ArcFace**)与军事级别的网络抓取技术(**Playwright + 绕过 Yandex 反机器人防护**),仅需一张照片即可自动识别目标。
**没有付费 API。没有云端依赖。不留痕迹。你的硬件,你做主。**
## 快速开始
```
# 安装依赖
pip install -r requirements.txt
playwight install chromium
# CLI 模式 — 单张图片
python main.py --image target.jpg
# CLI 模式 — 批处理目录 (buffalo_s = 更轻量)
python main.py -d ./targets --model buffalo_s
# Furtif 模式 — 零磁盘痕迹
python main.py --image target.jpg -S
# Web Dashboard (http://localhost:8080)
python main.py --web
```
## 架构
```
shadow-matchv1/
|
+-- README.md # Fiche technique + Licence Apache 2.0
+-- main.py # Point d'entree : lance CLI ou serveur Web
+-- requirements.txt # Dependances Python
|
+-- core/ # LE CERVEAU (Moteurs IA et OSINT)
| +-- __init__.py
| +-- face_engine.py # Coeur biometrique : ArcFace/AdaFace, embeddings 512D
| +-- yandex_scraper.py # Blindage anti-bot : Playwright + bypass FileChooser
| +-- multi_engine.py # Plan B : Google Lens, Bing Visual Search en fallback
| +-- face_cropper.py # Alignement et recadrage chirurgical des visages
| +-- preprocessor.py # Amelioration image (CLAHE, Denoising) pour photos floues
| +-- cleanup.py # Nettoyeur : efface les traces apres le scan
|
+-- cli/ # LE TERMINAL (Interface Ligne de Commande)
| +-- __init__.py
| +-- interface.py # Splash screen Rich, couleurs, tableaux de resultats
|
+-- web/ # LE DASHBOARD (Interface Graphique)
+-- __init__.py
+-- server.py # Backend FastAPI + WebSocket live feed
+-- static/ # Assets CSS/JS externes (optionnel)
+-- templates/
+-- dashboard.html # Interface cyberpunk : drag & drop, laser scan, galerie
```
## 工作原理 — 4 个阶段
### 阶段 1 — 生物特征提取 (InsightFace ArcFace)
该工具并非直接比较像素。**ResNet50** 神经网络会将目标人脸映射为 **512 维的数学向量**(embedding)。无论是佩戴眼镜、年龄增长还是侧面轮廓:其特征印记几乎保持不变。如果图像质量较差,**AdaFace** 将接管处理。
### 阶段 2 — 绕过反机器人防护 (Yandex)
Yandex 是唯一没有限制其人脸搜索算法的搜索引擎。为了绕过其 **Cloudflare** 防护,Playwright 会拦截 OS 的 `FileChooser` API,以模拟人类上传文件的行为。**无法被检测。**
### 阶段 3 — 视觉提取 (Hack V10)
Yandex 将结果隐藏在加密的 JSON 变量中。解决方案是:**读取屏幕**。机器人会识别显示的图像,过滤掉 Logo,模拟人类右键单击以复制源 URL,并滚动页面以强制加载**最多 50 个结果**。
### 阶段 4 — ArcFace 过滤
获取到的 50 张图像将在本地与原始特征印记进行比对。如果**余弦距离**低于阈值(默认为 `0.45`),则确认匹配成功,并将结果导出为 JSON 以及进行展示。
## CLI 选项
| 选项 | 描述 |
|---|---|
| `-i / --image` | 要扫描的目标图像 |
| `-d / --dir` | 批量模式:扫描整个文件夹 |
| `-o / --output` | JSON 结果的导出文件夹 |
| `-t / --threshold` | ArcFace 容差(默认:`0.45`,越低越严格) |
| `-S / --stealth` | 隐蔽模式:BytesIO 管道,零磁盘写入 |
| `-m / --model` | AI 模型:`buffalo_l`(高精度)或 `buffalo_s`(速度快) |
| `--web` | 在 `http://localhost:8080` 启动 Web 控制面板 |
**终极示例:**
```
python main.py -i suspect.png -o Enquete01 -t 0.45 -S
```
## 核心功能
| 功能 | 详情 |
|---|---|
| **验证码处理** | 自动检测 Yandex 验证码,通过 UI 通知或暂停 CLI |
| **隐蔽模式 (-S)** | BytesIO 管道 —— 零图像写入磁盘 |
| **自动清理** | 启动时自动删除超过 2 小时的上传文件 |
| **引擎回退** | 如果 Yandex 结果少于 3 个,则自动切换到 Google Lens,然后是 Bing |
| **实时推送** | Playwright --> WebSocket --> 实时 Dashboard |
| **ArcFace 阈值** | 默认 `0.45` —— 可通过 `--threshold` 或 Web 界面进行配置 |
| **多模型** | `buffalo_l`(最高精度)/ `buffalo_s`(快速批量处理,对 CPU 友好) |
## 许可证
在 **Apache 2.0 许可证**下分发。
可自由使用、自由修改、自由进行商业集成。
使用的责任完全由用户自行承担。
在任何重新分发时,请保留原始的版权声明。
由 Data2391 编写 — OSINT 人脸识别引擎 — Apache 2.0
标签:ArcFace, BSD, ESC4, InsightFace, OSINT, Playwright, Python, Web仪表盘, Yandex, 人工智能, 人脸识别, 反反爬虫, 实时处理, 情报收集, 批量处理, 数据挖掘, 无后门, 暗网侦查, 本地部署, 深度学习, 漏洞研究, 特征提取, 特征检测, 用户模式Hook绕过, 目标定位, 目标追踪, 社交媒体监控, 离线运行, 绕过反机器人, 网络安全, 网络安全, 计算机视觉, 身份识别, 逆向工具, 隐私保护, 隐私保护, 零痕迹, 面部识别