# face_landmarks面部检测 81 点形状预测模型_moonbit重构版 **Repository Path**: vcdplus/face_landmarks ## Basic Information - **Project Name**: face_landmarks面部检测 81 点形状预测模型_moonbit重构版 - **Description**: dlib 的 81 点形状预测模型:从 [此 GitHub 仓库](https://github.com/codeniko/shape_predictor_81_face_landmarks) - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-14 - **Last Updated**: 2025-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人脸关键点检测器 (Face Landmarks Detector) 这是一个使用 MoonBit 语言重构的实时人脸关键点检测和录制程序,原始版本基于 Python 的 OpenCV 和 dlib 库。 ## 项目特性 - **实时人脸检测**:使用 dlib 的正面人脸检测器 - **81点关键点检测**:精确检测人脸的81个关键特征点 - **实时视频处理**:支持摄像头实时捕获和处理 - **视频录制**:将处理结果保存为视频文件 - **类型安全**:利用 MoonBit 的强类型系统确保代码安全 - **模块化设计**:清晰的代码组织和模块分离 ## 项目结构 ``` face-landmarks-detector/ ├── moon.mod.json # 项目配置文件 ├── README.md # 项目说明文档 ├── src/ │ ├── main/ # 主程序模块 │ │ ├── main.mbt # 程序入口点 │ │ ├── python_integration.mbt # Python 集成层 │ │ └── moon.pkg.json # 主模块配置 │ ├── camera/ # 摄像头模块 │ │ ├── capture.mbt # 摄像头捕获功能 │ │ └── moon.pkg.json # 摄像头模块配置 │ ├── face/ # 人脸检测模块 │ │ ├── detector.mbt # 人脸检测和关键点预测 │ │ └── moon.pkg.json # 人脸模块配置 │ └── utils/ # 工具模块 │ ├── types.mbt # 基础类型定义 │ └── moon.pkg.json # 工具模块配置 └── target/ # 编译输出目录 ``` ## 技术栈 - **MoonBit**:主要编程语言,提供类型安全和函数式编程特性 - **Python 集成**:通过 MoonBit 的 Python 集成调用 OpenCV 和 dlib - **OpenCV**:计算机视觉库,用于图像处理和摄像头操作 - **dlib**:机器学习库,用于人脸检测和关键点预测 ## 依赖要求 ### MoonBit 环境 - MoonBit 编译器 - Python 集成包:`Kaida-Amethyst/python` ### Python 环境 - Python 3.7+ - OpenCV (`pip install opencv-python`) - dlib (`pip install dlib`) - NumPy (`pip install numpy`) ### 模型文件 - `shape_predictor_81_face_landmarks.dat` - 81点人脸关键点预测模型 ## 安装和使用 ### 1. 安装 MoonBit ```bash # 安装 MoonBit 编译器 curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash ``` ### 2. 安装 Python 依赖 ```bash pip install opencv-python dlib numpy ``` ### 3. 获取模型文件 下载 `shape_predictor_81_face_landmarks.dat` 文件并放置在项目根目录。 ### 4. 编译和运行 ```bash # 进入项目目录 cd face-landmarks-detector # 更新依赖 moon update # 编译项目 moon build # 运行程序 moon run main ``` ## 功能说明 ### 核心功能 1. **摄像头捕获**:实时从摄像头获取视频流 2. **人脸检测**:自动检测画面中的人脸区域 3. **关键点预测**:为每个检测到的人脸预测81个关键特征点 4. **可视化显示**:在关键点位置绘制绿色圆圈 5. **视频录制**:将处理后的视频保存为文件 ### 操作说明 - 程序启动后会自动打开摄像头 - 检测到人脸时会在关键点位置显示绿色圆圈 - 按 'q' 键退出程序 - 处理后的视频会保存为 `output.avi` 文件 ## 配置选项 可以在 `main.mbt` 中修改以下配置: ```moonbit fn default_config() -> AppConfig { { model_path: "shape_predictor_81_face_landmarks.dat", // 模型文件路径 output_file: "output.avi", // 输出视频文件名 width: 1280, // 视频宽度 height: 720, // 视频高度 fps: 30, // 帧率 device_id: 0, // 摄像头设备ID show_preview: true // 是否显示预览窗口 } } ``` ## 与原 Python 版本的对比 ### 优势 - **类型安全**:编译时错误检查,减少运行时错误 - **更好的错误处理**:使用 Result 类型替代异常处理 - **模块化设计**:清晰的代码组织和职责分离 - **函数式编程**:更清晰的数据流和逻辑表达 - **跨平台支持**:支持编译到 WebAssembly ### 保持的功能 - 完全兼容原有的人脸检测和关键点预测功能 - 相同的视频处理和录制能力 - 相同的用户交互体验 ## 开发说明 ### 模块说明 - **utils**:基础类型定义和错误处理 - **camera**:摄像头捕获和视频录制功能 - **face**:人脸检测和关键点预测功能 - **main**:主程序逻辑和 Python 集成 ### 扩展开发 项目采用模块化设计,可以轻松扩展新功能: - 添加新的图像处理算法 - 支持更多的人脸分析功能 - 集成其他计算机视觉库 ## 许可证 本项目采用 MIT 许可证,详见 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。 ## 联系方式 如有问题或建议,请通过 GitHub Issues 联系。