MogFace人脸检测模型-WebUI从零开始:CentOS/Ubuntu系统下服务启动全流程
MogFace人脸检测模型-WebUI从零开始CentOS/Ubuntu系统下服务启动全流程1. 引言为什么你需要一个强大的人脸检测服务想象一下你手头有一堆活动照片需要快速找出所有出现的人脸或者你正在开发一个智能门禁系统需要准确识别进出人员。传统方法要么精度不够要么部署复杂让人望而却步。今天我要带你从零开始在CentOS或Ubuntu服务器上部署一个基于MogFace模型的人脸检测Web服务。这个服务有多厉害它能准确识别图片或视频中的每一张脸哪怕是侧脸、戴着口罩、或者在光线不好的环境下都能精准框出来。更棒的是它提供了清晰的Web界面和API接口无论你是技术小白还是资深开发者都能轻松上手。这篇文章我会手把手教你完成整个部署过程从环境准备到服务启动再到实际使用。跟着步骤走半小时内你就能拥有一个专业级的人脸检测服务。2. 环境准备与项目获取在开始之前我们需要确保服务器环境就绪并把项目代码拿到手。2.1 系统要求检查首先确认你的服务器满足以下基本要求。别担心要求并不高大多数云服务器都能轻松满足。项目最低要求推荐配置操作系统CentOS 7 或 Ubuntu 18.04CentOS 8 / Ubuntu 20.04内存2 GB4 GB 或以上CPU2 核4 核或以上Python3.83.9磁盘空间至少 5 GB 可用空间10 GB 以上打开你的终端用下面这个命令快速检查一下Python版本python3 --version如果显示的是Python 3.8.x或更高版本那就没问题。如果没有安装Python3可以参考你所用系统的官方文档进行安装这里就不展开了。2.2 获取项目代码所有需要的代码和模型都已经打包成一个完整的项目。我们通过Git来获取它。安装Git如果还没装的话Ubuntu/Debian系统sudo apt update sudo apt install -y gitCentOS/RHEL系统sudo yum install -y git克隆项目到本地 我建议把项目放在用户主目录下方便管理。cd ~ git clone https://gitee.com/csdn-ai/cv_resnet101_face-detection_cvpr22papermogface.git这个命令会把项目下载到~/cv_resnet101_face-detection_cvpr22papermogface目录下。进入项目目录cd cv_resnet101_face-detection_cvpr22papermogface从现在开始我们的所有操作都在这个目录下进行。3. 一键部署与启动服务项目最大的优点就是“开箱即用”。我们提供了一个自动化脚本能帮你处理绝大部分依赖和环境配置。3.1 运行部署脚本在项目根目录下执行以下命令./scripts/setup.sh这个脚本会自动完成以下几件大事安装系统依赖比如必要的编译工具。创建Python虚拟环境在venv目录下创建一个独立的Python环境避免污染系统环境。安装Python依赖包包括PyTorch、OpenCV、Gradio用于Web界面等所有必需的库。下载预训练模型自动下载MogFace模型文件你不需要手动去找。整个过程可能需要5到15分钟具体时间取决于你的网络速度和服务器性能。泡杯茶稍等片刻。提示如果脚本运行中因为网络问题中断可以重新运行它脚本会尝试继续未完成的部分。3.2 启动人脸检测服务部署脚本运行成功后启动服务就非常简单了。同样在项目根目录下运行./scripts/start_service.sh这个命令会同时启动两个服务Web界面服务运行在7860端口。这是一个图形化操作界面适合直接上传图片查看结果。API接口服务运行在8080端口。这是一个供程序调用的接口方便你集成到自己的应用中。看到类似下面的输出就说明服务启动成功了[INFO] Starting Face Detection WebUI service... [INFO] WebUI service started on port 7860. [INFO] Starting Face Detection API service... [INFO] API service started on port 8080. [INFO] All services are up and running!3.3 验证服务是否正常运行启动后我们快速验证一下服务是否在正常工作。检查进程./scripts/service_ctl.sh status这个命令会列出正在运行的服务及其状态你应该能看到webui和api两个服务都是RUNNING。测试API健康检查可选 如果你的服务器允许从外部访问或者你在服务器本机上可以运行curl http://localhost:8080/health如果返回{status: ok, ...}这样的JSON信息说明API服务运转良好。4. 访问与使用Web界面服务启动后最直观的方式就是通过浏览器访问Web界面来使用了。4.1 如何访问Web界面你需要知道服务器的IP地址。如果你在本地电脑上部署直接在浏览器访问http://localhost:7860。如果你在远程云服务器上部署访问http://你的服务器公网IP地址:7860。例如你的服务器IP是123.123.123.123那么访问地址就是http://123.123.123.123:7860。重要安全组/防火墙设置如果无法访问很可能是服务器的安全组云服务器或防火墙本地服务器屏蔽了7860端口。云服务器如阿里云、腾讯云登录云控制台找到你的服务器实例在“安全组”规则中添加入方向规则允许TCP协议的7860端口。本地服务器使用firewalldsudo firewall-cmd --add-port7860/tcp --permanent sudo firewall-cmd --reload4.2 使用Web界面进行人脸检测打开网页后你会看到一个简洁明了的界面。我们来看看怎么用。第一步上传图片点击页面中央的“上传图片”区域或者直接把图片文件拖进去。支持JPG、PNG等常见格式。第二步调整参数可选页面上有几个简单的选项可以调整置信度阈值可以理解为“严格程度”。值越高只有非常确定是人脸的区域才会被框出来。默认0.5是个不错的起点。显示关键点勾选后会在检测到的人脸上标记出5个关键点左右眼、鼻尖、左右嘴角。边界框颜色可以换个喜欢的颜色来框人脸。第三步开始检测点击大大的“ 开始检测”按钮。稍等一两秒结果就会显示在右侧。第四步查看与保存结果右侧会展示被框出人脸的图片。下方还会以文字形式告诉你检测到了几个人脸以及每个人脸的“置信度”即模型有多确信这是人脸。你可以右键保存结果图片或者复制下方的JSON数据用于其他程序。4.3 理解检测结果这里需要理解两个核心输出边界框 (Bounding Box)[x1, y1, x2, y2]这组数字定义了人脸在图片中的矩形位置。(x1, y1)是矩形左上角的坐标(x2, y2)是右下角的坐标。置信度 (Confidence)一个0到1之间的小数。 0.9几乎可以肯定是人脸。0.7 - 0.9很有可能是人脸。0.5 - 0.7可能是人脸需要结合场景判断。 0.5不确定通常会被过滤掉如果你阈值设为0.5的话。5. 通过API接口集成使用对于开发者来说通过API调用将检测功能集成到自己的系统中才是更常用的方式。5.1 API基础调用API服务运行在8080端口。基础的健康检查接口可以随时用来测试服务状态curl http://localhost:8080/health核心的检测接口是/detect支持两种方式上传图片方式一直接上传图片文件最常用curl -X POST -F image/path/to/your/photo.jpg http://localhost:8080/detect将/path/to/your/photo.jpg替换成你服务器上图片的实际路径。方式二使用Base64编码的图片数据如果你需要在JSON中传递图片可以使用Base64。curl -X POST -H Content-Type: application/json -d {image_base64:你的Base64字符串} http://localhost:8080/detect5.2 解读API返回结果调用成功后你会收到一个JSON格式的响应。我们来详细看看里面的内容{ success: true, data: { faces: [ { bbox: [210, 150, 380, 420], landmarks: [ [240, 200], [340, 200], [290, 280], [250, 350], [330, 350] ], confidence: 0.97 } ], num_faces: 1, inference_time_ms: 42.5 } }success: 请求是否成功。data.faces: 一个列表包含所有检测到的人脸信息。bbox: 人脸框坐标[左上角x, 左上角y, 右下角x, 右下角y]。landmarks: 5个关键点坐标顺序是[左眼 右眼 鼻尖 左嘴角 右嘴角]。confidence: 该人脸检测的置信度。data.num_faces: 检测到的人脸总数。data.inference_time_ms: 本次检测所花费的时间毫秒可以用来评估性能。5.3 使用Python调用API示例在实际项目中你很可能用Python来调用这个服务。下面是一个完整的示例import requests import cv2 import json # 1. 定义API地址根据实际情况修改IP api_url http://localhost:8080/detect # 2. 准备图片 image_path group_photo.jpg # 3. 发送POST请求 try: with open(image_path, rb) as img_file: files {image: img_file} response requests.post(api_url, filesfiles) # 4. 处理响应 if response.status_code 200: result response.json() if result.get(success): data result[data] print(f✅ 检测成功共发现 {data[num_faces]} 张人脸。) print(f 处理耗时{data[inference_time_ms]:.2f} 毫秒) # 遍历每一张检测到的人脸 for i, face in enumerate(data[faces]): bbox face[bbox] conf face[confidence] print(f 人脸 {i1}: 位置 {bbox}, 置信度 {conf:.1%}) # 你可以在这里添加自己的逻辑比如保存坐标、画图等 # ... else: print(❌ 检测失败, result.get(message, 未知错误)) else: print(f❌ 请求失败状态码{response.status_code}) except requests.exceptions.ConnectionError: print(❌ 无法连接到API服务请检查服务是否启动以及地址端口是否正确。) except FileNotFoundError: print(f❌ 图片文件未找到{image_path}) except Exception as e: print(f❌ 发生未知错误{e})这段代码做了几件事读取图片、发送到我们的检测服务、解析返回的JSON结果、并打印出易懂的信息。你可以以此为基础将人脸检测功能嵌入到你的照片管理、安防监控等任何系统中。6. 服务管理与故障排查服务跑起来之后日常管理和遇到问题怎么解决呢项目提供了便捷的管理脚本。6.1 常用的服务管理命令所有管理操作都可以通过项目根目录下的service_ctl.sh脚本完成。命令作用示例查看状态检查WebUI和API服务是否在运行./scripts/service_ctl.sh status重启服务重启所有服务修改配置后常用./scripts/service_ctl.sh restart停止服务停止所有服务./scripts/service_ctl.sh stop查看日志查看服务的输出日志用于排查问题./scripts/service_ctl.sh logs webui实时监控日志实时滚动显示日志类似tail -f./scripts/service_ctl.sh logs webui-follow6.2 常见问题与解决方法这里列出几个你可能会遇到的问题和解决思路问题一Web页面无法访问http://IP:7860打不开检查服务状态运行./scripts/service_ctl.sh status确认服务是RUNNING。检查防火墙确保服务器防火墙和云服务商安全组都放行了7860端口。检查IP地址确认你访问的IP地址是正确的服务器公网IP。问题二检测不到人脸确认图片内容先确保图片里确实有清晰的人脸。调整置信度阈值在Web界面将“置信度阈值”调低比如调到0.3以检测更模糊或更小的人脸。检查图片质量人脸在图片中的比例不宜过小建议大于10%图片不要太模糊或光线过暗。问题三API调用返回错误检查端口API端口是8080不是Web界面的7860。检查图片格式确保上传的图片是支持的格式JPG, PNG等。查看日志运行./scripts/service_ctl.sh logs api查看API服务的详细错误信息。问题四如何检测视频目前的服务版本主要针对静态图片优化。如果你想检测视频一个实用的方法是使用工具如FFmpeg将视频按帧拆分成多张图片。使用我们提供的“批量检测”功能如果WebUI支持或者写一个循环调用API接口来处理每一帧图片。将处理后的图片序列再合成视频。7. 总结走到这里恭喜你你已经成功在CentOS/Ubuntu服务器上部署并运行了一个功能强大、使用便捷的MogFace人脸检测Web服务。我们来快速回顾一下今天的成果环境准备确认了系统要求获取了项目代码。一键部署通过自动化脚本完成了环境配置和模型下载。服务启动一键启动了提供Web界面和API接口的完整服务。学会使用掌握了通过浏览器上传图片进行检测也学会了如何通过编程调用API接口。管理运维知道了如何查看服务状态、重启服务以及排查常见问题。这个基于MogFace模型的服务以其高精度和稳定性非常适合部署在服务器端为你的各种应用如智能相册、门禁考勤、互动娱乐等提供可靠的人脸检测能力。无论是通过直观的Web界面进行单次测试还是通过API集成到自动化流程中它都能胜任。希望这篇从零开始的指南能帮助你顺利启航。接下来就尽情探索如何将这项能力应用到你的实际项目中去吧获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。