• 毕设——基于人脸表情的桌面交互精灵设计(分享一下成果,附上人脸表情的数据集和自己训练出来yolov5模型以及基于PYQT5运行yolov5的交互界面)


    一、前言

    这篇博客其实很早之前就是准备写的,但是这都过去两个月了,才终于抽出时间来写(其实是一直拖延到现在)。整理一下毕业设计吧,也算是对于我的大学生涯(学生生涯)画上一个句号吧。

    二、说说论文

    十分遗憾,当初没有选择深造,可能这是最后一篇认认真真写的论文了,估计以后也鲜有机会产出学术成果。毕竟我觉得我的本科论文算是“学术垃圾”了(指的没有核心技术,都是东拼西凑,失去了自我研究的满足感),为了降重真是想方设法,毫无底线,不说也罢!
    即便如此,我也还是花了不少心思去准备,即使我的指导老师除了开题询问了我的题目以后,再也没有管过我。包括开题报告、中期报告、最终论文和评优大摘要撰写,都不曾叫我更改和提供指导。换句话来说就是我的开题报告、中期报告和最后论文提交我都是一遍过,哈哈哈。
    也多亏在头一年积累了毕业论文撰写经验加上我室友的指导老师给他们提供的指导意见,再自行比对自己的论文做出修改。直到最后的答辩,全是一个人走过来的,一把辛酸泪(其实很爽,很撇脱!)
    尤其是最后答辩那天下午,虽然我是下午的倒数第二个,但是我很早就去观摩其它同学答辩,而且等我答辩完,老师还夸我答辩的时候台风很好,声音洪亮,演讲清晰,应该是那天下午唯一被表扬的。
    即使我的设计确实没啥可以多说,也算是首尾呼应。大学参加的第一次比赛也是第一次答辩是学院组织的比赛,评委老师也是包括我答辩那天的三位老师和几位其他老师,比赛内容大概是物联网创意设计,就是大概说明一下有关物联网相关的创意设计,天马行空有创意加上简单说明一下技术方向就行。当时也是才接触这些不久,也没啥实质性的创意,然后就自己胡乱想了一个,凭借三寸不烂之舌杀进决赛。最后答辩完,评委老师第一话就是,说的很好,很自信,声音洪亮,除了创意不太好之外!最后也只拿了个三等奖。
    反正挺感慨的,大学四年,过的真快呀!
    在这里插入图片描述

    三、说说设计本身

    首先我准备这个毕业设计的时候,想法真的是老多了,我要用上高性能的板子,用上我大学所学到的技术,还要再学一下自己画PCD,设计电路,画控制板,要有图像识别,又要有语音交互,还能进行人机互动!巴拉巴拉,想了一大堆,结果最终的结就是,满地鸡毛,似乎都涉及到了,但是又全是阉割版的阉割版,不看入目。
    我本来是想着后面分好几篇,讲讲论文怎么写,哪里去找资料,怎么去降重,然后分享一下PCB的学习和控制设计,还有这么去部署模型到jetson上面,怎么使用tersorRT进行加速,怎么样用pyqt自己设计个界面,又设计了哪些有趣的交互,结果不堪入目,懒得丢人了。
    论文一拖再拖,拖到了最后一个月,最后花了四天写论文,三天降重,然后完成了我的论文。也是找了不少资料,才最终勉勉强强完成,我这个水平也就不分享我的论文写作了,不忍直视。 其次学画PCB,不说了,我后面一定好好学。至于交互,也没想到什么好方案,也就弄了个根据识别结果播放音乐,配上语言识别模块吗,进行简单的特定对话。然后是页面设计PYQT5学了几天,发现自己做太花时间了,还是参考了别人的设计进行了修改。至于模型部署,模型加速,嗯,自己也没弄的太明白,也不做太多解释了。 反正就是,后悔晚矣!

    四、pyqt5运行yolov5分享和人脸表情数据集分享(获取方式放在文末)

    自行修改了别人的pyqt5开源程序,加了一些功能按键。然后网上找了一些可以找的开源数据集,有很多比较好的数据集都要花钱和申请都没搞到, 找到的一些数据集质量都不是很好,所以我都是自己在各大图片网站进行寻找,一张张筛选,再加上自行拍摄的数据集,才勉强凑了每类500多张的数据集。反正找数据集和标注花的时间最多,用了一两周,痛苦呀!

    4.1 pyqt5界面和模型说明

    首先在A_code_model目录下游以下三个文件,第一个就是整个pyqt5工程文件,只要配置好了YOLO环境,打开就可以直接运行main.py就可以出现以下界面。
    只要配置好了yolov6.1的环境就可以直接运行v3.1和v6.1的模型,可以通过模型选择就行模型切换,其它几个参数也可以进行参数配置。
    在这里插入图片描述
    在这里插入图片描述

    电脑上的运行效果
    在这里插入图片描述

    部署到jetson nano上的部署效果。
    注意
    部署到nano上整个工程需要进行一定的修改,这里就不多说明了,也不贴我的文件,因为我部署上去也有一定的问题。第一个就是运行图片识别是没问题的,但是运行实时检测就直接程序卡死,通过报错和排查得知,大概是进程那一块的问题,没有解决!
    其次是模型优化的问题,我进行了tersoeRT模型优化,但是相关的部署代码我没有对这个pyqt文件进行修改,所有这里运行的还是未经优化的pt模型,所以在检测时会很卡顿。可以自行进行修改。
    在这里插入图片描述

    4.2 数据集说明

    主要包括自制数据集和网络数据集,网络数据集就是能够在网上找的一些开源数据集,不过图片都很老,有的是灰度图,还有的就是数据集太模糊的,质量太差。所以我只是用了极少数的一些图片。更多的是自制数据集,主要也是来自网上,不过都是我一张张进行筛选的,质量也相对比较好,不过还有很大的一部分来自我的自己拍摄,多为我的同学很本人,没有得到朋友们的授权,加上本人不好意思,所以我把自行拍摄的都删去了,所以可能有的类别只有一两百张(有的表情网上真的不好找,哭唧唧)。所以如果直接训练的话,可能效果会不好,所以可以自行进行收集。
    愿大家玩的愉快。
    在这里插入图片描述
    在这里插入图片描述

    总结

    说了很多废话,主要是有些感慨。
    以前学嵌入式总以为是玩各种板子,做一些好玩的东西,便已经足够,但是不然,直到找工作了才感受到了社会的毒打,看似大学做了很多事,花了很多时间,拿了一些奖,但是却没有真正脚踏实地的去深深专研一些技术,基础知识也不牢靠,导致现在吃了很多亏,也没去到真正梦想的大厂,没有拿到满意薪酬。
    但是,终归是自己的过错,所以接下来更要好好学习。现阶段还是往linux开发发展,尤其工作是和网络打交道很多,所有要恶补这方面的知识。
    所以像这种比赛和玩开发板会很少,但是,我是真的对这种DIY小玩意很感兴趣,所以这方面的学习和实践不会落下,虽然偏向嵌入式软件开发,但是这些硬件的东西也会玩下去。
    最后贴一下我的毕业论文致谢的最后一段话:
    四年一瞬,聚散有时。牢记为祖国加油,为民族争气,为中华之崛起而读书,祈愿疫情退散,祈愿国家富强,祈愿世界和平。
    学无止境,共勉!

    资料获取

    整个文件比较大,我就放到百度网盘了。
    网盘链接
    提取码:6666

  • 相关阅读:
    【大模型】自动化问答生成:使用GPT-3.5将文档转化为问答对
    select 的使用
    【零基础学QT】第五章 串口模块,小实验控制单片机LED灯
    深度补偿模型sparse-to-dense测试
    # LoongArch 内存模型与栅障
    Java操作Influxdb2.x
    【uniapp小程序】配置tabbar底部导航栏
    森林消防隔膜泵的应用与前景——恒峰智慧科技
    YUM退役了?DNF本地源配置
    汽车诊断仪算法保护芯片——LKT4305-GM
  • 原文地址:https://blog.csdn.net/GUA8122HOU/article/details/126168609