精华内容
下载资源
问答
  • 音频特征提取

    千次阅读 2018-03-22 00:02:44
    特征提取(Feature Exaction)对于音频信号,按时间分辨率、按局部or全局的观念、持续时间长短,或者爱怎么怎么讲,特征可分为长期(long-term)、中期(mid-term)、短期(short-term),也可以叫短时特征。...

    特征提取(Feature Exaction)

    对于音频信号,按时间分辨率、按局部or全局的观念、持续时间长短,或者爱怎么讲怎么讲,特征可分为长期(long-term)、中期(mid-term)、短期(short-term),也可以叫短时特征。

    短时能量、功率是有点瞬时功率的概念,但又没有那么“瞬时”。大概是按帧在做计算。

    短时功率在计算的时候,把每一帧的能量还要处理该帧的长度,量纲上等于[Watt]。

    短时过零率(short-term zero corss rate,st-ZCR),大概是从时域上描述信号频率吧,也是按帧计算。
    短时能量:
    1. function E = get_st_energy( x,fs,wlen_time,step_time,win_type,energy_unit )  
    2. %function zcr = get_st_energy( x,fs,wlen_time,step_time,win_type,energy_unit )  
    3. %   获取短时能量(没有除以帧长,所以不是计算的功率)。  
    4. %   输入参数  
    5. %           x:语音信号 --> 单声道  
    6. %           fs:采样速率  
    7. %           wlen_time:窗口时间(s)  
    8. %           step_time:步进时间(s)  
    9. %           win_type:'hamming','hanning',...,默认'hamming'  
    10. %           energy_unit:'dB',以归一化的能量显示 (单位:dB)。否则是线性刻度。  
    11. %   返回参数  
    12. %           E:短时能量(横坐标是帧序号)  
    13. % 版本说明:计算短时能量。  
    14. % 如果分帧时,不能整除,则抛弃最后一帧,不予以计算  
    15. % 时间:2016年10月31日21:21:23  
    16.   
    17. wlen = round(wlen_time * fs);  
    18. nstep = round(step_time * fs);  
    19.   
    20. if nargin < 5  
    21.     win = hamming(wlen);  
    22. elseif nargin == 5  
    23.     if strcmp(win_type, 'hamming')  
    24.         win = hamming(wlen);  
    25.     elseif strcmp(win_type, 'hanning')  
    26.         win = hanning(wlen);  
    27.     else  
    28.         win = hamming(wlen);  
    29.     end  
    30. else  
    31.     win = hamming(wlen);  
    32. end    
    33. nFrames = floor((length(x) - wlen)/nstep) + 1; % 总帧数  
    34. E = [];  
    35.   
    36. for k = 1:nFrames  
    37.     idx = (k-1) * nstep + (1:wlen);  
    38.     x_sub = x(idx) .* win;  
    39.     E(k) = sum(x_sub.^2);   
    40. end  
    41.   
    42. % 是否需要化成dB  
    43. if nargin == 6  
    44.     if strcmp(energy_unit, 'dB')   
    45.         E = 10*log10(E/max(E)+eps);  
    46.     end  
    47. end  
    48. end  
    49. 短时过零率:
      1. function zcr = get_st_zcr( x,fs,wlen_time,step_time,win_type )  
      2. %function zcr = get_st_zcr(x,fs,wlen_time,step_time,win_type )  
      3. %   获取短时过零率。  
      4. %   输入参数  
      5. %           x:语音信号 --> 单声道  
      6. %           fs:采样速率  
      7. %           wlen_time:窗口时间(s)  
      8. %           step_time:步进时间(s)  
      9. %           win_type:'hamming','hanning',...,默认'hamming'  
      10. %   返回参数  
      11. %           zcr:短时过零率(横坐标是帧序号)  
      12. % 版本说明:计算短时过零率。  
      13. % 如果分帧时,不能整除,则抛弃最后一帧,不予以计算  
      14. % 时间:2016年10月31日21:08:22  
      15.   
      16. if(min(size(x))>1) % 如果不是单声道  
      17.     % ...  
      18. end  
      19.   
      20. wlen = round(wlen_time * fs);  
      21. nstep = round(step_time * fs);  
      22.   
      23. if nargin < 5  
      24.     win = hamming(wlen);  
      25. elseif narmin == 5  
      26.     if strcmp(win_type, 'hamming')  
      27.         win = hamming(wlen);  
      28.     elseif strcmp(win_type, 'hanning')  
      29.         win = hanning(wlen);  
      30.     else  
      31.         win = hamming(wlen);  
      32.     end  
      33. else  
      34.     win = hamming(wlen);  
      35. end  
      36.   
      37.   
      38. nFrames = floor((length(x) - wlen)/nstep) + 1; % 总帧数  
      39. zcr = [];  
      40.   
      41. for k = 1:nFrames  
      42.     idx = (k-1) * nstep + (1:wlen);  
      43.     x_sub = x(idx) .* win;  
      44.     x_sub1 = x_sub(1:end-1);  
      45.     x_sub2 = x_sub(2:end);  
      46.     zcr(k) = sum(abs(sign(x_sub1) - sign(x_sub2))) / 2 / length(x_sub1);   
      47. end  
      48.   
      49. end  
    展开全文
  • 之前找图像处理算法工作的面试题贴出来,大家可以大概看一下,尽量查漏补缺。面试官问的还是比较全的,一些细节问题都问到了。还有一点就是数据结构与算法很重要,有时间可以刷刷牛客网,或者力扣。自我介绍说说自己...

    之前找图像处理算法工作的面试题贴出来,大家可以大概看一下,尽量查漏补缺。面试官问的还是比较全的,一些细节问题都问到了。还有一点就是数据结构与算法很重要,有时间可以刷刷牛客网,或者力扣。

    1. 自我介绍
    2. 说说自己的几个项目
    3. 图像特征金字塔的作用?怎么实现的?

    答:为了解决多尺度检测的问题,引入了FPN网络。先将图像下采样,然后再上采样做特征图融合,融合过程中用不同尺度的特征图进行预测。

    4.Fast-rcnn的区域候选框是怎么得到的?

    答:通过selective search得到的,先基于图像分割得到小尺度区域,再一次次合并成大尺寸。

    5.不标定的情况下怎么区分一张遮挡的图像和不遮挡的图像?

    6.Yolo的路由层作用是什么?

    ①融合特征②开辟一个新的检测分支

    7.如果做分类的话应该怎么来做,不检测,只分类?

    答:使用基础的骨干网络做特征提取,然后加上分类头进行分类

    8.AP和mAP的区别?

    答:Ap是准确率和召回率曲线下方的面积,map是各类ap值得平均值

    9.输入多尺度的图像怎么给图像做到统一输出

    10、BCNN项目中使用的数据集是多大的,每类多少张数据

    11、使用的什么框架

    12、pytorch中的gether函数的作用

    13、yolo中使用的数据增强有哪几种

    14、目标框的常见的损失的几个变形?

    ①IOU当检测目标越接近真实目标时,则IOU越接近1,则loss越小。这样模型就可以通过不断降低loss来使得模型得出更好的预测结果。缺点:当两框不想交时,可能需要多次迭代才有交集,可能出现loss不变的情况。当三个框重合度差不多,相交面积一样时加入中心点距离更加合理。

    ②GIOU损失在iou损失的基础上增加了,| A - U | / |A|的惩罚项,解决了两框不想交loss恒等于1的情况。两框越远loss越大。

    ③DIOU,直接采用两框中心点间的距离作为惩罚,loss下降更快

    ④CIOU,在DIOU基础上增加长宽比惩罚

    15、怎么在我原有的结果上提升准确率

    ①提高数据质量,数据扩充,数据增强(mixup training)。②改变网络结构③改变优化器,改变学习率④知识蒸馏?

    16、如果有10000张汽车图片,一百万张人脸,怎么把这个数据集train起来,类别不平衡问题?

    答:任务类别不均衡可以通过生成新的图像来训练,将少的类别裁剪然后拼接

    18、为什么特征图要继承上一层特征图?为了使特征图更加平滑(具体忘了问题是啥)

    19、模型实时检测的帧率计算?

    可以参考视频:https://www.bilibili.com/video/av837947458/(大神简直让我膜拜)

    17、你有什么想问的问题?

    笔试题:

    C语言基础(指针、类型所占字节数,进制之间的转化)、图像处理基础、编程基础、数学基础(排列组合相关,线性代数)

    其中图像处理基础有:1、哪几种滤波器是平滑的2、哪些不是边缘检测3、如果图像处理中有字符串出现裂缝,应该用什么操作?开运算,闭运算4、

    编程题:

    请用两种方法输出菲波那切数列,并说明两种方法优劣?

    简答题:

    1. 手动计算卷积的过程,并写出卷积后的结果,要求卷积输出和输入尺寸相等
    2. 简述深度学习成功的案例,以及深度学习和传统方法相比有哪些优势
    3. 说明为什么要结合准确率和召回率来分析?
    展开全文
  • 一维卷积神经网络在处理序列问题的作用在计算机视觉中我们经常使用卷积神经网络,由于其能够自动提取图像特征,并且可以高效的处理数据。对于序列处理问题,我们可以将序列看成一维空间,也就是我们前面说的数据维度...

    65021a2a3957640c8a1e5486ee41eaeb.png

    一维卷积神经网络

    在处理序列问题的作用

    在计算机视觉中我们经常使用卷积神经网络,由于其能够自动提取图像特征,并且可以高效的处理数据。对于序列处理问题,我们可以将序列看成一维空间,也就是我们前面说的数据维度:向量(1D张量)。

    主要的作用:在某些序列问题上,其效果跟RNN一样,而且计算代价更小; - 在音频生成和机器翻译领域取得了巨大成功; - 对于文本分类和时间序列预测等简单任务,小型的一维卷积神经网络可以替代 RNN,速度更快。

    一维卷积的形式

    参考二维卷积,对于图片中局部的区域进行变换,能够获得提取该区域的特征。对于一维卷积也可这样的理解,提取局部一维序列的特征。

    在深入的理解一下,例如对于文本的学习,在某个句子中的词,使得一维卷积能够学习到一个具体的表达模式,该模式可能在其他的位置上被识别。具体, - 比如下图中的长度为5的卷积窗口, - 在进行卷积的时候,能够学习长度不大于5的单词 - 这样能够在输入句子中任何位置识别到这些单词 - 字符级的一维卷积神经网络能够学会单词构词法

    b1c6d8ae95e3488798ab9425ca60f90e.png

    序列数据的一维池化

    可以类比二维卷积神经的池化运算,从输入的一维序列中提取一段数据,然后对其进行计算最大值(最大化池化)或平均值(平均值池化),这个其实就一维采样。

    利用一维卷积神经网络构建IMDB模型

    Keras 中的一维卷积神经网络是 Conv1D 层 keras.layers.Conv1D( filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

    输入尺寸

    • 3D 张量 ,尺寸为 (batch_size, steps, input_dim)

    输出尺寸

    • 3D 张量,尺寸为 (batch_size, new_steps, filters)
    # 数据准备
    
    from keras.datasets import imdb
    from keras.preprocessing import sequence
    
    max_features = 10000
    max_len = 500
    
    print('Loading data...')
    (x_train,y_train),(x_test,y_test) = imdb.load_data(num_words=max_features)
    print(len(x_train),'train sequences')
    print(len(x_test),'test sequences')
    
    # 截断成一个相同长度的序列
    print('Pad sequences (samples x time)')
    x_train = sequence.pad_sequences(x_train,maxlen=max_len)
    x_test = sequence.pad_sequences(x_test,maxlen = max_len)
    print("x_train shape:",x_train.shape)
    print("x_test shape:",x_test.shape)
    Using TensorFlow backend.
    
    
    Loading data...
    25000 train sequences
    25000 test sequences
    Pad sequences (samples x time)
    x_train shape: (25000, 500)
    x_test shape: (25000, 500)

    模型的建立

    • Conv1D 层和 MaxPooling1D层的堆叠,
    • 最后是一个全局池化层或 Flatten 层,将三维输出转换为二维输出,
    • 模型中添加一个或多个 Dense 层,用于分类或回归。

    具体的coding 如下:

    from keras.models import Sequential
    from keras import layers
    from keras.optimizers import RMSprop
    
    model = Sequential()
    model.add(layers.Embedding(max_features,128,input_length = max_len))
    model.add(layers.Conv1D(32,7,activation = 'relu'))
    model.add(layers.MaxPool1D(5))
    model.add(layers.Conv1D(32,7,activation = 'relu'))
    model.add(layers.GlobalMaxPooling1D())
    model.add(layers.Dense(1))
    
    model.summary()
    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    embedding_2 (Embedding)      (None, 500, 128)          1280000   
    _________________________________________________________________
    conv1d_3 (Conv1D)            (None, 494, 32)           28704     
    _________________________________________________________________
    max_pooling1d_2 (MaxPooling1 (None, 98, 32)            0         
    _________________________________________________________________
    conv1d_4 (Conv1D)            (None, 92, 32)            7200      
    _________________________________________________________________
    global_max_pooling1d_2 (Glob (None, 32)                0         
    _________________________________________________________________
    dense_2 (Dense)              (None, 1)                 33        
    =================================================================
    Total params: 1,315,937
    Trainable params: 1,315,937
    Non-trainable params: 0
    _________________________________________________________________
    model.compile(optimizer=RMSprop(lr = 1e-4),
                 loss = 'binary_crossentropy',
                 metrics = ['acc'])
    
    history = model.fit(x_train,y_train,
                       epochs=10,
                       batch_size=128,
                       validation_split=0.2)
    WARNING:tensorflow:From D:Anaconda3envstfgpulibsite-packagestensorflowpythonopsmath_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
    Instructions for updating:
    Use tf.cast instead.
    WARNING:tensorflow:From D:Anaconda3envstfgpulibsite-packagestensorflowpythonopsmath_grad.py:102: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
    Instructions for updating:
    Deprecated in favor of operator or tf.math.divide.
    Train on 20000 samples, validate on 5000 samples
    Epoch 1/10
    20000/20000 [==============================] - 6s 276us/step - loss: 0.7679 - acc: 0.5200 - val_loss: 0.6864 - val_acc: 0.5700
    Epoch 2/10
    20000/20000 [==============================] - 2s 89us/step - loss: 0.6682 - acc: 0.6618 - val_loss: 0.6665 - val_acc: 0.6352
    Epoch 3/10
    20000/20000 [==============================] - 2s 90us/step - loss: 0.6258 - acc: 0.7547 - val_loss: 0.6145 - val_acc: 0.7174
    Epoch 4/10
    20000/20000 [==============================] - 2s 89us/step - loss: 0.5332 - acc: 0.8044 - val_loss: 0.4957 - val_acc: 0.8056
    Epoch 5/10
    20000/20000 [==============================] - 2s 88us/step - loss: 0.4122 - acc: 0.8430 - val_loss: 0.4312 - val_acc: 0.8338
    Epoch 6/10
    20000/20000 [==============================] - 2s 88us/step - loss: 0.3445 - acc: 0.8679 - val_loss: 0.4125 - val_acc: 0.8442
    Epoch 7/10
    20000/20000 [==============================] - 2s 89us/step - loss: 0.3053 - acc: 0.8723 - val_loss: 0.3937 - val_acc: 0.8370
    Epoch 8/10
    20000/20000 [==============================] - 2s 88us/step - loss: 0.2730 - acc: 0.8618 - val_loss: 0.4081 - val_acc: 0.8222
    Epoch 9/10
    20000/20000 [==============================] - 2s 89us/step - loss: 0.2480 - acc: 0.8425 - val_loss: 0.4634 - val_acc: 0.7872
    Epoch 10/10
    20000/20000 [==============================] - 2s 88us/step - loss: 0.2252 - acc: 0.8300 - val_loss: 0.4411 - val_acc: 0.7730
    #绘制相关的图
    import matplotlib.pyplot as plt 
    
    acc = history.history['acc'] 
    val_acc = history.history['val_acc'] 
    loss = history.history['loss'] 
    val_loss = history.history['val_loss'] 
    
    epochs = range(1, len(acc) + 1) 
    
    plt.plot(epochs, acc, 'bo', label='Training acc') 
    plt.plot(epochs, val_acc, 'b', label='Validation acc') 
    plt.title('Training and validation accuracy') 
    plt.legend() 
    
    plt.figure() 
    
    plt.plot(epochs, loss, 'bo', label='Training loss') 
    plt.plot(epochs, val_loss, 'b', label='Validation loss') 
    plt.title('Training and validation loss') 
    plt.legend() 
    
    plt.show()

    03705ac036047f29b8fdbc7f97deafcd.png

    b64172f2b51ba65048a4610644b2437a.png

    结果对比

    如上图中给出了模型的训练结果和验证结果。验证精度略低于 LSTM ,但在 CPU 和 GPU 上的运行速度都要更快。


    分享关于人工智能,机器学习,深度学习以及计算机视觉的好文章,同时自己对于这个领域学习心得笔记。想要一起深入学习人工智能的小伙伴一起结伴学习吧!扫码上车!

    d7ddfaac571b6f62e447ad4d596ea629.png
    展开全文
  • 视频拷贝检测,关键帧的特征向量

    千次阅读 2013-05-11 13:25:50
    最近在做视频拷贝检测的程序,目前提取出了关键帧的特征向量,想请教一下特征匹配这怎么处理,纠结好久了,希望得到您的帮助,多谢了。 在网上看到,有人问这个问题 我以前了解过一份资料,讲的方案是 ...
    最近在做视频拷贝检测的程序,目前提取出了关键帧的特征向量,想请教一下特征匹配这怎么处理,纠结好久了,希望得到您的帮助,多谢了。


    在网上看到,有人问这个问题


    我以前了解过一份资料,讲的方案是

    抽取视频文件中的关键帧,再转为伪随机唯一字符串,当然,越短小越好。这样比对这个字符串就能解决问题。

    主要就是特征向量的转伪随机唯一字符串的问题。

    这个方案,不怕视频的大小,播放时间长短改变,可以判断出来。
    好像是 google's youtude 就是用的这个方案。


    wide288


    相关:

    http://blog.csdn.net/xiaowei_cqu/article/details/8846414

    展开全文
  • 问项目 谈谈你最熟的或者做的时间最长的项目 描述项目解决的问题 ...怎么提取特征的,提取特征的方法 提取了多少特征特征的维度,哪些特征比较好 对特征的评估方法是什么,怎么判断其好坏 用了什么模型 ...
  • 是谈论x1(t)的时间采样还是谈论在给定时间x1(t)的所有可能版本? 174 3.3.6 如何测量非高斯性? 177 3.3.7 如何计算一个随机变量的矩? 178 3.3.8 峰度是如何定义的? 178 3.3.9 负熵是如何定义的? 180 3.3.10...
  • 2017年中国高校大数据挑战赛___初试

    千次阅读 2017-07-30 21:03:18
    =学习了一小段时间python机器学习后终于感觉可以动手试试这个比赛,就把下载好的数据又翻出来,其实一开始无从下手就是不懂这数据怎么处理,现在发现还是挺简单的,最重要的阶段其实还是特征工程,选择好的特征然后...
  • 讲完声学模型的建立,现在我们就来讲讲它的输入和输出应该怎么处理. 第五讲 梅尔频率倒谱系数(MFCC) 在一个ASR系统中,第一步要做的就是特征提取.从前面的计算音系学部分可知,声音的音高等信息能体现一个人的...
  • 贝叶斯网络实践

    2020-04-30 10:34:00
    尤其关注分类的时间和效率怎么样 ,以及精度与logistic回归,SVM,岭回归可做一个比较。 即每个词出现的位置,即标注为1,未出现的词,即标注为0. 公式有时会有点差别,但是这是我们在自然语言中提取特征的...
  • 提取到的特征点,通过以下两种方案对特征点进行处理来做到校准人脸(表情同步) 普氏分析 因为图片中的人脸可能会有一定的倾斜,而且不同图片中人脸的神态表情朝向也不一样。 所以,我们需要把人脸进行调整。 PA...
  •  NTFS特征的压缩文件和EFS加密文件这个工具能处理吗?由于FAT32文件系统不支持NTFS特征的压缩文件和EFS加密文件,因此这个工具能在转换分区前将所有的NTFS特征的压缩文件和EFS加密文件与大于4GB的文件找出来,并...
  • Task03:食物声音识别之音频数据特征提取(2天) 学习多种音频数据特征 了解MFCC特征提取步骤 Task04:食物声音识别之深度学习模型搭建、训练、验证(2天) 基于CNN的模型搭建、训练与验证 了解CNN原理 Task05...
  • %人脸类别40则输出层神经元数目40 提取特征维数为39.则网络输入层的神经元数目就是39 %隐含层神经元数位输入层和输出层神经元之和的一半分类效果较好 % 创建一个新的前向神经网络  net_1=newff,[50,40],{'...
  • 面向对象基本特征:封装、继承、多态 访问控制符:private、default、protected、public 数据类型:基本类型、引用类型 控制流程:for、while、switch 等 序列化 异常处理(有点难度) 泛型(有点难度) 怎么学? ...
  • 光流也可以利用深度学习的模型来做,把左右两图用同样的模型来提取特征,经过计算就能得出一个深度的信息。 但是这个方式的计算量非常大。 物体追踪(Object Tracking): 这也是无人驾驶中一个比较重要的技术...
  • 其中有些内容整理自互联网,如有侵权,请联系,我将及时处理。 个人微信公众号 dotzhang:一名不羁的学僧,我的世界不只有学术。一条迷途的咸鱼,正在游向属于它的天地! 赞助和支持 这些内容都是我花了不少...
  • asp.net知识库

    2015-06-18 08:45:45
    一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP...
  • 机器学习中特征工程,如何进行数据分析嘞? - 知乎 几个相关系数:Pearson、Spearman、pointbiserialr、kendalltau - 程序园 Kaggle: 房价预测 - 代码天地 如何在 Kaggle 首战中进入前 10% | Wille python进行机器...
  • 软件工程教程

    2012-07-06 23:10:29
    用例只描述参与者和系统在交互过程中做些什么,并不描述怎么做。 用例图 关联关系 用例图 泛化关系 用例图 泛化关系 用例图 用例图 用例图 用例用于什么情况? 不知道什么情况不用用例 如果没有用到用例,...
  • arcgis工具

    2012-10-22 22:37:31
    arcgis工具总结 1. 要素的剪切与延伸 实用工具 TASK 任务栏 Extend/Trim feature 剪切所得内容与你画线的方向有关。 2. 自动捕捉跟踪工具 ... 捕捉设置中有3个选项, vertex edge end 分别是节点、终点、和边,选择...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

时间怎么处理特征提取