数据库设计心得
本小组的项目为人脸情绪识别, 是通过输入的文件产生情绪曲线图,对于数据库设计方面我们经过了多次讨论并且和老师反复确认了,结论是本项目在数据库的设计方面不是特别方便。
原因在于本项目的核心是基于神经网络训练的情绪识别,重点在于人脸的提取和训练的算法,没有太多的数据要提取和采集,也没有对每次生成的曲线图进行保存的必要(当然也是可以的)。
当然硬要完成数据库的设计,我们也思考了一些方向也和老师征求了意见:
(1)第一种思路是设计一个用户登录模块,对于每个用户的注册信息以及每次使用本软件产生的文件路径保存在数据库中,不太好的地方是这一部分的数据库设计和代码结合需要花费一定的时间,并且也不是项目的重点,可以留在项目的基本功能比如情绪识别的准确度较高等实现了之后再把需求加上再做比较好。
(2)第二种思路是将用于训练的数据集中的数据更加规范的储存在数据库中,也就是每一张图片对应的各个具体的情绪维度信息,而不是具体到在数据集中用于提取信息的矩阵。同时对于用户每次使用软件生成的情绪维度信息用另一个表储存,老师给的意见是这样的,因为还有很多的数据集可以改变情绪信息形式存储在数据库中,看起来更加直观,不好的地方在于原先在数据库中的情绪信息时比较完善的,虽然是不太易懂的情绪矩阵,但是所有信息基本都可以在矩阵中提取出来,分析信息改变为易懂形式储存就会丢失一部分信息,所以也是没有太大必要的。
(3)第三种思路是将用于训练的数据集中的图片的路径和他们各自对应的情绪矩阵信息一起储存在数据库中,因为在数据集中一堆图片和他们对应的一个情绪矩阵信息文档是分开储存的,通过这种方式,就可以使用数据库快速的找到每张图片对应的各自信息,这样也可以立即实现本项目使用数据库的条件,虽然也是比较简单,没有对数据库中的数据进行修改等操作,只是利用现成的东西建了一个表然后存入了数据,虽然用了python连接数据库。总之这种方法也没有什么必要,既然可以通过程序实现数据库中提取各个图片和他们对应的信息矩阵,为什么不用程序直接从文件夹中提取呢,设计数据库还需要耗费一定的空间和时间(因为多了一个从数据库中找路径的过程)。
最后我们还是使用了第三种思路,在小班讨论上老师也默认了,还是因为项目重在情绪识别的准确性,对于算法的选择和理解更加重要。我在小组内也只是一起讨论,具体的代码实现是由潘龙来完成,所以一些细节问题我也不是太了解,以上就是我的数据库设计心得。