豆瓣滑块验证码检测器(v1.0.0)
基于 sharp 图像处理库实现的滑块验证码缺口精确识别工具。
功能特性
- ✅ 自动检测图片中的滑块缺口位置
- ✅ 支持多滑块检测(一张图片中检测多个滑块)
- ✅ 多策略候选区域搜索与自适应评分体系
- ✅ 自动在图片上绘制蓝色边框标注检测结果
- ✅ 支持基于 ground-truth 的准确率评估
安装依赖
npm install
使用方法
运行检测(默认数据集)
npm run detect
该命令会:
- 验证算法准确性(使用
images/douban-target中的红框标注图片) - 处理
images/douban目录中的所有图片 - 将检测结果(带蓝色边框)输出到
images/output目录
自定义目录
npm run detect -- --pic-dir=images/custom
--pic-dir为README所在目录的相对路径,检测结果仍然输出到images/output。
目录结构
images/
├── douban/ # 豆瓣滑块真实截图(待检测)
├── douban-target/ # 红框标注图片(用于验证算法准确性)
├── slider/ # 滑块形状模板图片
├── target/ # 滑块标注图片
└── output/ # 检测结果输出目录(蓝色框标注)
检测算法
核心思路
- 多阈值暗/亮检测:从增强对比度后的图像中提取亮/暗连通域
- Sobel 边缘候选:基于边缘图的形态学操作补充候选框
- 颜色量化与 LAB 色差扫描:强化低对比度场景下的候选覆盖
- 候选融合:利用 IoU 去重并按颜色一致性、内部边缘密度、梯度平滑度打分
- 自学习滑块扩展:在首个高置信度框的基础上,使用模板匹配寻找第二个滑块
开发
编译
npm run build
调试
核心逻辑已经拆分为模块化的检测管线:
src/detection/candidate-search.ts:多策略候选区域查找与评分src/utils/image.ts:图像形态学、边缘工具函数src/detector.ts:检测器主体、框体精炼与多滑块协同策略src/cli.ts:命令行入口,负责加载 ground-truth 与批量处理src/validator.ts:IoU/容差匹配与统计分析
技术栈
- TypeScript
- Sharp (图像处理)
- Node.js
版本历史
- v1.0.0:引入模块化检测管线、CLI 工具、ground-truth 验证与多策略候选融合。
优化方向
- 提高对低对比度图片的检测能力
- 优化形态学操作参数
- 增加边缘检测辅助判断
- 支持更多滑块形状变体
Description
发布日期:2025-10-25
Latest
Languages
TypeScript
100%