arxanshxh2309/sentinex-ai-security-scanner-v2

GitHub: arxanshxh2309/sentinex-ai-security-scanner-v2

基于 YOLOv8 和 Bayesian 威胁评分的 AI 安检扫描器,用于在行李和 X 射线图像中检测武器与违禁品。

Stars: 0 | Forks: 0

# Sentinex AI Security Scanner v2 使用 YOLOv8、FastAPI 和 Bayesian 威胁评分实现的 AI 辅助行李与 X 射线威胁检测。 ## 功能 - 用于武器和违禁品检测的 YOLOv8 训练 pipeline。 - 用于下载 Knife(刀)、Handgun(手枪)、Dagger(匕首)、Scissors(剪刀)和 Sword(剑)的 Google Open Images V7 下载器。 - 使用 CLAHE 对比度增强的可选 X 射线预处理。 - 带有 `POST /scan` 的 FastAPI 服务。 - 带有快速生产路径和可选 PyMC 采样的 Bayesian 威胁评估。 - 支持 ONNX、TensorRT 和 TorchScript 导出。 - 用于 GPU 训练的 Google Colab notebook。 ## 仓库布局 ``` Sentinex_Max_Training.ipynb Google Colab notebook api/main.py FastAPI scanner service datasets/download_datasets.py Open Images downloader datasets/preprocess.py X-ray preprocessing datasets/process_xray_dataset.py Dataset splitting mcmc/bayesian_model.py Threat probability estimation training/train_yolo.py Main YOLO training script training/evaluate.py Evaluation and benchmarks training/export_model.py Model export training/tune_hyperparams.py Hyperparameter tuning ``` ## 快速开始 ``` python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt ``` 下载训练数据集: ``` python datasets/download_datasets.py --source openimages ``` 训练: ``` python training/train_yolo.py --model x --epochs 300 ``` 评估: ``` python training/evaluate.py ``` 导出: ``` python training/export_model.py ``` ## 运行 API 默认情况下,API 会查找: ``` runs/sentinex/max_train/weights/best.pt ``` 启动服务器: ``` uvicorn api.main:app --reload ``` 扫描图片: ``` curl -X POST http://localhost:8000/scan -F "file=@your_image.jpg" ``` 有用的环境变量记录在 `.env.example` 中: ``` SENTINEX_MODEL=runs/sentinex/max_train/weights/best.pt SENTINEX_CONF=0.15 SENTINEX_IOU=0.45 SENTINEX_IMGSZ=640 SENTINEX_TTA=false SENTINEX_MCMC_SAMPLES=0 ``` `SENTINEX_CONF=0.15` 倾向于召回率,这通常更适合安检扫描。如果误报过于频繁,请提高该值。启用 `SENTINEX_TTA=true` 会进行较慢但通常更敏感的推理。 ## Docker ``` docker build -t sentinex-ai-security-scanner . docker run --rm -p 8000:8000 -e SENTINEX_MODEL=/models/best.pt -v "${PWD}/runs/sentinex/max_train/weights:/models" sentinex-ai-security-scanner ``` ## 测试 ``` python -m unittest discover -s tests ``` ## 提高检测成功率 为了获得更高的召回率和更好的实际性能: - 在真实的行李/X 射线图像上进行训练,而不仅仅是自然的 Open Images 照片。 - 添加困难负样本:钥匙、工具、电子产品、电缆、笔和折叠金属物体。 - 保留来自不同扫描仪或图像源的独立测试集。 - 在每次运行后跟踪每个类别的 precision、recall、mAP50 和混淆矩阵。 - 对于筛查工作流,从较低的推理置信度(`0.10` 到 `0.20`)开始。 - 当延迟可接受时,对高风险扫描使用 test-time augmentation。 - 首先检查假阴性,然后添加针对性样本并重新训练。 ## GitHub 说明 大型生成的 artifact 已被特意忽略: - 下载的数据集 - `runs/` - 训练权重 (`*.pt`, `*.onnx`, `*.engine`, `*.torchscript`) - Python 缓存 请通过发布、云 bucket 或 model registry 单独上传模型权重,而不是直接将它们提交到代码仓库中。 ## 许可证 本项目的代码采用 MIT 许可证授权 — 详情请参阅 [LICENSE](LICENSE.md) 文件。 注意:本项目依赖于 Ultralytics YOLOv8,后者采用 **AGPL-3.0** 许可证。该依赖项带有其自己的 copyleft 条款,与本仓库的 MIT 许可证分开。如果您使用或分发带有 YOLOv8 的本项目,请查看 Ultralytics 的许可义务。
标签:AV绕过, CNCF毕业项目, FastAPI, YOLOv8, 人工智能, 安全检查, 用户模式Hook绕过, 目标检测, 计算机视觉, 请求拦截, 贝叶斯推断, 逆向工具