# vision-algo **Repository Path**: warrior-james/vision-algo ## Basic Information - **Project Name**: vision-algo - **Description**: 视觉算法服务,基于python语言算法开发的优势,写的一些识别接口,主要被我的智能识别平台调用,解决一些算法用java和opencv实现的准确性达不到商用标准 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-04 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 视觉算法服务 这是一个基于Python的算法服务,目前人脸识别和比对,支持上传两张人脸图片并计算它们的相似度,不依赖第三方厂商API。 ## 功能特点 - ✅ 支持上传两张人脸图片进行比对 - ✅ 使用开源的face_recognition库,自己实现人脸比对算法 - ✅ 实时计算并显示相似度百分比 - ✅ 美观的前端界面,支持图片预览 - ✅ 完善的错误处理和用户提示 ## 技术栈 - **后端**: Python Flask - **前端**: HTML5, CSS3, JavaScript - **核心库**: face_recognition, dlib, OpenCV 建议直接用docker启动,python-vision-algo.tar是打好的镜像 ## 快速开始 ### 1. 安装依赖 ```bash # 进入后端目录 cd backend # 安装依赖(使用国内镜像源) pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 2. 启动服务 ```bash # 进入后端目录 cd backend # 启动Flask服务 python app.py ``` 服务将在 `http://localhost:10283` 上运行。 ### 3. 访问前端页面 在浏览器中打开 `frontend/index.html` 文件,即可使用人脸识别和比对功能。 ## 使用说明 1. 在左侧上传第一张人脸图片 2. 在右侧上传第二张人脸图片 3. 点击"开始比对"按钮 4. 系统将显示比对结果,包括: - 是否为同一人 - 相似度百分比 - 相似度可视化进度条 ## 项目结构 ``` py-face-comparison/ ├── backend/ # 后端代码 │ ├── app.py # 主应用文件 │ ├── requirements.txt # 依赖文件 │ └── uploads/ # 临时上传目录 ├── frontend/ # 前端代码 │ └── index.html # 主页面 └── README.md # 项目说明 ``` ## 技术实现 ### 人脸比对算法 1. **人脸检测**:使用dlib库的HOG人脸检测器检测图片中的人脸 2. **特征提取**:使用dlib的预训练模型提取128维人脸特征向量 3. **相似度计算**: - 计算两个人脸特征向量之间的欧几里得距离 - 将距离转换为相似度百分比(0-100) - 距离越小,相似度越高 ### 性能优化 - 使用face_recognition库的优化实现,提高人脸检测和特征提取速度 - 临时文件自动清理,避免磁盘空间占用 - 错误处理机制,确保系统稳定性 ## 注意事项 1. 首次运行时,face_recognition库会下载预训练模型,请确保网络连接正常 2. 上传的图片应清晰包含人脸,避免模糊或遮挡 3. 建议使用正面人脸照片以获得最佳比对效果 4. 对于较大的图片,处理时间可能会稍长 5. models下的buffalo_l是InsightFace的预训练模型,因为gitee单个文件大小不能超过100m,这里给github地址,自己下载 https://github.com/deepinsight/insightface/releases/download/v0.7/buffalo_l.zip ![模型图片](docs/pics/models.jpg) ## 故障排查 ### 常见错误 1. **安装失败**:请确保安装了Visual Studio Build Tools(Windows)或gcc(Linux) 2. **图片中未检测到人脸**:请上传清晰的人脸照片 3. **内存不足**:对于较大的图片,可能需要更多内存 ### 解决方法 - 确保安装了所有必要的依赖 - 确保上传的图片符合要求 - 如遇其他问题,请查看后端控制台的详细错误信息 ## 致谢 - [face_recognition](https://github.com/ageitgey/face_recognition) - 开源人脸识别库 - [dlib](http://dlib.net/) - 机器学习库,提供人脸检测和特征提取 - [OpenCV](https://opencv.org/) - 计算机视觉库 - [Flask](https://flask.palletsprojects.com/) - Python Web框架 ## 许可证 本项目采用 MIT 许可证。