【课程作业经验】基于Mindspore实现MTCNN

本文详述了一位初学者基于Mindspore框架实现MTCNN(多任务级联卷积网络)的过程,包括数据集下载、训练环境配置、模型训练和遇到的问题。项目最终完成了PNet、RNet、ONet的搭建、训练和测试,但移动端部署未完成。文章还分享了Mindspore与Pytorch在API和训练流程上的差异,以及解决内存溢出和速度优化的经验。
摘要由CSDN通过智能技术生成

介绍

本项目的来源是我选修的北航与华为合作的《AI开源计算系统前沿技术》课程大作业。课程请到华为的各位专家介绍了华为目前的AI软硬件体系,并讲解了许多人工智能领域的知识。

我的大作业选题是用轻量级的网络模型backbone,实现手机端人脸检测算法,并使用MindSpore Lite在端侧推理部署。比较遗憾的是整体项目开发进度慢于预期,加上移动端目标检测APP的源码中使用了JNI等我不熟悉的接口,最后没有实现移动端的部署,仅实现了人脸检测+关键点检测神经网络的搭建、训练和测试。

前期调研之后,我决定基于MindSpore框架实现论文《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》中的人脸识别和关键点检测网络MTCNN。该网络的结构并不复杂,包括PNet、RNet、ONet这三个结构相似的网络。由于我对Python和机器学习都是初学者,项目过程中遇到了不少问题。解决过程中有了一些经验心得,斗胆在此做些分享。

本项目中的MTCNN部分代码基于夜雨飘零1的Github项目和华为MindSpore官方文档撰写,包括数据集生成、网络结构定义、网络训练、模型测试的代码。

本项目的Gitee地址

0 训练环境

笔记本训练环境:

  • CPU:i7-11800H
  • GPU:RTX 3070
  • Windows10:
    • CUDA11.6+cudnn8.x
    • MindSpore1.7.0-CPU
    • Pytorch1.11.0
  • Ubuntu22.04:
    • CUDA11.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值