这是我的 2023 假期实践之一,正如其名,这个项目是一个用于深度学习的调试工具,而项目的目标是让深度学习的最终部署阶段的调试变得可视化,方便向其它人展示当前的研发进度。
我理想中的深度学习项目部署应该是将一整套流程都打通才算部署完毕,但在实际操作的时候,算法工程师往往不会制作 GUI,而会制作 GUI 的应用工程师则往往无法和算法工程师进行有效的沟通。因此在这个工具中,我尝试基于 NCNN 实现了以下的深度学习算法,并使用 Qt 将它们显示到了界面上,以期待减少这两类工程师的沟通成本:
- 图像分类
- 目标检测、姿态检测、实例分割
- 人脸检测、人脸对齐、人脸识别
- 语音识别
除开这些基本的深度学习算法实现,我还制作了一系列可复用的页面用于显示这些算法的执行结果:
- 分类测试页面
- 检测测试页面
- 人脸测试页面
- 语音测试页面
这些页面上实现了一些常用的 GUI 工具和开发辅助工具,包括图片显示、视频播放、音频录制等等,同时项目的代码采用模块化设计,方便使用者随时扣(bai)走(piao)其中的实现。
- 把本项目先构建起来
- 把本项目原有的演示 demo 跑起来
- 根据自己的项目修改内部的代码,让你自己的项目能在此上跑起来
- 又或者参考或白嫖其中的实现,快速制作出自己的项目
我是在 Debian 11
操作系统下进行开发和测试的,因此我的构建流程可能只适用于 Debian
系操作系统。
首先查看 CMakeLists.txt
文件,你可以看到我链接了 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Multimedia Qt5::Charts OpenCV4 NCNN 等库。
其中 Qt 和 OpenCV4 可以直接通过 apt 进行安装,而 NCNN 则较为麻烦,因为目前仅有少量的发行版仓库内放置了 NCNN。如果你和我一样使用 Debian
系操作系统,那么你可以将 Deepin
下的 NCNN 给直接拿过来用。而如果你期望使用新版的 NCNN,或者你正在根据你自己的项目调整 NCNN,那么你可以直接将 Deepin
那边的 debian
文件夹复制到你的 NCNN 根目录下即可。(打包就不用详细讲了吧=。=,先安装构建依赖、dpkg-dev、fakeroot,然后执行 dpkg-buildpackage -b -us 即可)
项目中的文档(包括本文)全部采用 CC BY-ND 4.0
协议发布,即转载和分享需要标记出处和作者但禁止修改,允许商业用途的转载和分享。
而由于源码中使用了部分 GPL-3.0
的代码和库,包括 deepin-ocr 下的图片显示控件和 Qt 自带的 QtCharts
控件等等,因此这个项目的源码将全部采用 GPL-3.0-or-later
开源。
此外由于深度学习模型存在复杂的版权问题,因此本项目不提供源码中引用的模型,由使用者自行制作或者下载。