我们的项目中需要将视频流传入神经网络,并将神经网络处理之后的特征存入mysql数据库中,在查阅资料后,我发现可以使用如下方法:
首先在数据库中建表:
create table TESTBLOB(framenum int not null, feature blob not null);
其中framenum代表帧号,features代表256维的特征向量,使用mysql中的Blob类型
假如我们得到一个特征向量 feature
入库:将它转化为raw data bytes,并存入数据库
bytes_feature = feature.tostring()
cursor.execute('insert into TESTBLOB values(%s,%s)',([1,bytes_feature]))
从库中读:
cursor.execute('select features from TESTBLOB where framenum = %s',([1]))
values = cursor.fetchall()
接下来将读出的值转为np.array形式
feature = np.frombuffer(values[0][0],dtype=np.float32)
即可重新得到类行为np.array的256维的特征向量
在这里要注意入库时数据的类型,我们的特征向量都是np.float32类型,在使用np.frombuffer()函数时一定要注意声明数据类型(dtype=)。这样才能正确的转换。
---------------------
作者:mazzZZHE
来源:CSDN
原文:https://blog.csdn.net/qq_34352603/article/details/81039082
版权声明:本文为博主原创文章,转载请附上博文链接!