# AI开源课程项目 **Repository Path**: dsaxc/ai-open-source-course-project ## Basic Information - **Project Name**: AI开源课程项目 - **Description**: AI开源课程期末大作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2022-06-30 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于MindSpore的漫画脸实现 从PyTorch和PaddlePaddle将模型迁移到MindSpore,基本全部基于MindSpore算子实现。 手动完成了全部预训练参数的转换。 ## 作业要求: 使用MindSpore实现基于GAN网络模型的漫画脸,输入一张图片,输出一张漫画脸,可用作手机变装、二次元风格等应用场景。 ## 算法与数据集: 算法参考AdaLIN,并使用归一化方法,在反规范化时将编码器的均值方差(照片特征)与解码器的均值方差(卡通特征)相融合。在其基础上,于编码器之前和解码器之后各增加了2个hourglass模块,渐进地提升模型特征抽象和重建能力。首先检测图像中的人脸及关键点,根据人脸关键点旋转校正图像,并按统一标准裁剪,再将裁剪后的头像输入人像分割模型去除背景。 ## 项目文件结构: ``` ├── dataset └─── cartoon_face └─── nini.png └─── img └─── nini.png ├── model ├─── fcn_ms.py └─── photo2cartoon_ms.py ├── save_model ├─── cartoon.ckpt └─── fcn.ckpt ├── utils ├─── face_detect.py ├─── face_seg.py ├─── hrnet_ms.py └─── layers_ms.py ├── README.md └── main.py ``` dataset/img用于存放原始图片,dataset/cartoon_face用于存放基于原始图片的漫画脸结果。 ## 环境配置: 相关的系统与硬件配置如下: - Windows 10(本地)/ Ubuntu 18.04(远程) - CUDA 11.4 项目所需的主要依赖库如下: - python 3.7.8 - mindspore-cpu 1.7.0 - dlib 19.20.4 - face-alignment 1.3.5 - opencv-python 4.6.0.66 ## 实验流程: ### 图片预处理: 1. 人脸关键点检测,获得人脸的68个关键点坐标。 2. 人脸校正,通过68个人脸关键点的第37、46两个点(即眼角的两个点)的坐标结合仿射变换,将倾斜的人脸转正。 3. 人脸截取,根据68个关键点中最左边,最右边,最上边,最下边的四个点的坐标位置按一定比例框出一个正方形来截取出人脸。 4. 人脸分割,使用FCN或U2net语义分割模型将人脸截取出来。然后用原图与截取后的图像相乘就能去除掉背景。