精华内容
下载资源
问答
  • 特征增强
    千次阅读
    2020-11-28 19:27:59

    前言

    前段时间看到这个SFEM模块,首先这个模块的出处是一篇论文,关于人流密度监测的,我不是做这个的,我就不详细介绍了详细的原理我也不会会特别详细的介绍如果有兴趣可以去看这两篇文章:[Crowd_Counting]-DSSINet-ICCV2019 - 知乎 https://zhuanlan.zhihu.com/p/87990860
    一文理解条件随机场CRF - 知乎 https://zhuanlan.zhihu.com/p/70067113
    那么我们讲什么?当然是他干嘛用的了。

    干什么?

    先看一张图:
    在这里插入图片描述
    这就是SFEM模块的出处,首先可以看到他像什么?如果熟悉计算机视觉的就会感觉这幅图特别像一个东西:特征金字塔,对!可以看到他就是不同大小的特征图,但是区别于特征金字塔的是,这个结构是输入的图片大小不一呈2倍关系,那么D是什么呢就是下采样,所以I1是I2的2倍,然后i1的conv2-2是它下采样的结果,这样它的大小就等于i2的conv1-2,所以就是两个相同大小的特征图经过SFEM模块。那么这个操作像什么?没错特征融合。

    传统特征融合

    我们先不说他是怎么做的我们先说传统的特征融合是怎麽做的。首先特征融合是比较常见的,在计算机视觉中的特征金字塔中一般的做法就是首先通过反卷积让两张特征图大小相同。然后在通道维度上拼接,这种方式简单粗暴就好像排队,后来的人站到队伍后面成为新的队伍。这种做法简单粗暴,但是效果却不一定好,因为你想虽然可以通过卷积融合通道信息。但是正常图片的通道信息的排列方式肯定不是这样排列的,而且融合的两个特征图之间信息实际上是对等的,区别就在于感受野所以这种排列式的融合方式相当于有两张特征图,也是特别好。

    为什么要特征融合

    这里有两点:一、是感受野,再经过卷积操作时,特征图会随着卷积的加深而变小。而在这个变小的过程中,每个像素点就结合了原来特征图的多个特征点的信息。也就是我们说的感受野的变大。所以说不同大小的特征图的感受野是不同的。而我们要做到检测不同大小的目标,就是要将不同大小的感受野融合。其次,CNN不同深度的层包含的信息不同,浅层的feature包含更多结构化的信息,而深层的feature包含更多语义的信息,而我们想做的是让两者互补就可以得到检测效果。所以就要进行特征融合。

    SFEM模块出处

    SFEM模块产生于条件随机场CRF,这个东西挺复杂的不太好解释。但是,其中有一点很重要,就是他可以融合前一时刻的信息。这就是他可以做到更好的融合信息的原理。那么他是怎么做的呢。公式挺复杂的,但是实际上的做法却很简单。他是一个多次迭代的结果,方法是把一个特征图加上另外一个特征图经过1X1卷积的结果,然后多次重复这个操作就完成了特征信息的融合。

    做什么

    最后要说的就是他能做神魔了,其实前面说的很多了,就是特征融合,SFEM模块是很好的特征融合的替代方式。但是有一点要注意1X1卷积势必带来计算量的增加,虽然不多。但是也要考虑一下

    最后

    先写到这,后续有什么还会补充

    更多相关内容
  • 纹理特征增强模块能够通过融合低层的纹理信息提升高层语义的表达,从而加强对小尺寸人脸的检测能力;多阶段加权损失函数平衡网络的输出,充分发挥各个模块的增强作用。实验结果表明,该方法不仅在检测速度上可以达到...
  • 该算法将不同层及不同尺度的特征图以轻量级的方式相融合,下采样层生成新的特征图,通过引入感受野模块,提高网络的特征提取能力,增强特征的表征能力和鲁棒性.和传统SSD算法相比,本文算法在精度上有明显提升,同时...
  • 经过数十年的发展语音识别取得了长足进步,但各种语音识别...在此基础上,分析了稀疏编码与语音特征增强的基本问题和研究现状,提出了稀疏编码在语音特征增强方面的需要解决的问题,为从事鲁棒语音识别的研究者提供参考.
  • 特征工程入门与实践----特征增强

    千次阅读 2019-10-04 13:55:14
    特征增强是对数据的进一步修改,我们开始清洗和增强数据。主要涉及的操作有 识别数据中的缺失值 删除有害数据 输入缺失值 对数据进行归一化/标准化 1. 识别数据中的缺失值       &...

            特征增强是对数据的进一步修改,我们开始清洗和增强数据。主要涉及的操作有

    • 识别数据中的缺失值
    • 删除有害数据
    • 输入缺失值
    • 对数据进行归一化/标准化
    1. 识别数据中的缺失值

            特征增强的第一种方法是识别数据的缺失值,可以让我们更好的明白如何使用真是世界中的数据。通常,数据因为一些原因,导致数据缺失,不完整。我们需要做的就是识别出数据中的缺失值。并对缺失值进行处理。本文使用皮马印第安人糖尿病预测数据集。这个数据集包含768行数据点,9列特征。预测21岁以上的女性皮马印第安人5年内是否会患糖尿病。数据每列的含义如下:
    (1)怀孕次数
    (2)口服葡萄糖耐量实验中的2小时血浆葡萄糖浓度
    (3)舒张压
    (4)三头肌皮褶厚度
    (5)2小时血清胰岛素浓度
    (6)体重指数
    (7)糖尿病家族函数
    (8)年龄
    (9)类变量(0或1,代表有无糖尿病)
            首先我们先来了解一下数据

    # 导入探索性数据分析所需的包
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    %matplotlib inline
    plt.style.use('fivethirtyeight')
    
    # 添加标题
    pima_column_names = ['times_pregnant', 'plasma_glucose_concentration', 'diastolic_blood_pressure', 'triceps_thickness',
                        'serum_insulin', 'bmi', 'pedigree_function', 'age', 'onset_diabetes']
    pima = pd.read_csv('./data/pima.data', names=pima_column_names)
    pima.head()
    

    数据

    # 计算一下空准确率
    pima['onset_diabetes'].value_counts(normalize=True)
    

    结果

    # 对plasma_glucose_concentration列绘制两类的直方图
    col = 'plasma_glucose_concentration'
    plt.hist(pima[pima['onset_diabetes'] == 0][col], 10, alpha=0.5, label='non-diabetes')   # 不患糖尿病
    plt.hist(pima[pima['onset_diabetes'] == 1][col], 10, alpha=0.5, label='diabetes')  # 患糖尿病
    plt.legend(loc='upper right')
    plt.xlabel(col)
    plt.ylabel('Frequency')
    plt.title('Histogram of {}'.format(col))
    plt.show()
    

    患病与不患病的血糖浓度频率直方图

    # 线性相关矩阵量化变量间的关系
    # 数据相关矩阵的热力图
    sns.heatmap(pima.corr())
    

    数据相关热力图
            从上面的分析中,我们首先可以得到患者和常人的血糖浓度是有很大的差异的。并且血糖浓度与患者是否患病的相关性很大。下面我们来分析一下数据是否存在缺失值。

    # 查看数据中是否存在缺失值
    pima.isnull().sum()
    

    结果
            从上面的结果我们可以看到并没有缺失值,我们在看一下关于数据的基本描述性统计。

    # 查看数据的基本描述性统计
    pima.describe()
    

    结果
            我们可以看到BMI指标的最小值是0.这是有悖于医学常识的。这有可能是缺失或不存在的点都用0填充了。从数据中可以看到,有好几列都是0.但是onset——diabetes中的0代表没有糖尿病,人也可以怀孕0次。所以这两列没有问题,其他的列的缺失值用0填充了。

    • plasma_glucose_concentration
    • diastolic_blood_pressure
    • triceps_thickness
    • serum_insulin
    • bmi
    2. 处理数据中的缺失值

            首先,对存在缺失值的列,使用None代替0。然后在查看是否存在缺失值。

    # 直接对所有列操作
    columns = ['serum_insulin', 'bmi', 'plasma_glucose_concentration', 'diastolic_blood_pressure', 'triceps_thickness']
    for col in columns:
        pima[col].replace([0], [None], inplace=True)
    
    # 查看缺失值情况
    pima.isnull().sum()
    

    结果

    (1)删除有害的行

            我们首先删除有害的行,然后对删除前后的数据做一个分析,最后应用机器学习算法评估一下当前数据的性能。
    删除存在缺失值的数据

    # 删除存在缺失的行
    pima_dropped = pima.dropna()
    # 检查删除了多少行
    num_rows_lost = round(100*(pima.shape[0] - pima_dropped.shape[0]) / float(pima.shape[0]))
    print("retained {}% of rows".format(num_rows_lost))
    

    retained 49% of rows
    数据分析

    # 继续对数据做一下探索性分析
    # 未删除数据的空准确率
    pima['onset_diabetes'].value_counts(normalize=True)
    

    0 0.651042
    1 0.348958
    Name: onset_diabetes, dtype: float64

    # 删除数据后的空准确率
    pima_dropped['onset_diabetes'].value_counts(normalize=True)
    

    0 0.668367
    1 0.331633
    Name: onset_diabetes, dtype: float64

            从空准确率来看,前后的True和False并无太大的变化。接下来比较一下删除前后的个属性均值。

    # 未删除数据的均值
    pima.mean()
    

    结果

    # 删除数据后的均值
    pima_dropped.mean()
    

    结果

    # 使用条形图进行可视化
    # 均值变化百分比条形图
    ax = ((pima_dropped.mean() - pima.mean()) / pima.mean()).plot(kind='bar', title='% change in average column values')
    ax.set_ylabel('% change')
    

    均值变化条形图
            我们可以看到,怀孕次数的均值在删除缺失值后下降了14%,糖尿病血系功能也上升了11%。都变化的比较大。删除行会严重影响数据的形状,所以我们应该保留尽可能多的数据。在我们进行其他操作前,我们使用一个机器学习算法验证一下当前数据情况的模型性能。
    评估性能

    # 导入机器学习
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.model_selection import GridSearchCV
    
    # 删除标签数据
    X_dropped = pima_dropped.drop('onset_diabetes', axis=1)  # 特征
    print("leanrning from {} rows".format(X_dropped.shape[0]))
    y_dropped = pima_dropped['onset_diabetes']   # 标签
    
    # KNN的模型参数
    knn_params = {'n_neighbors': [1, 2, 3, 4, 5, 6, 7]}
    
    # KNN模型
    knn = KNeighborsClassifier()
    
    # 使用网格搜索优化
    grid = GridSearchCV(knn, knn_params)
    grid.fit(X_dropped, y_dropped)
    
    # 输出结果
    print(grid.best_score_, grid.best_params_)
    

    结果:0.7448979591836735 {‘n_neighbors’: 7}

    (2)填充缺失值

            首先,我们检查一下缺失值的情况。然后使用sklearn模块的方法填充缺失值,最后在检查缺失值情况,用机器学期方法验证一下模型的性能。
    检查缺失值:

    # 在此查看缺失值情况
    pima.isnull().sum()
    

    结果
    填充缺失值:

    # 使用scikit-learn预处理类的Imputer模块
    from sklearn.preprocessing import Imputer
    
    # 实例化对象
    imputer = Imputer(strategy='mean')
    # 创建新对象
    pima_imputed = imputer.fit_transform(pima)
    # 将得到的ndarray类型转化为DataFrame
    pima_imputed = pd.DataFrame(pima_imputed, columns=pima_column_names)
    pima_imputed.head()
    

    填充后的数据
    检查缺失值情况并评估性能:

    # 判断是否有缺失值
    pima_imputed.isnull().sum()
    

    结果

    # 尝试一下填充一些别的值,查看对KNN模型的影响
    # 用0填充
    pima_zero = pima.fillna(0)  
    X_zero = pima_zero.drop('onset_diabetes', axis=1)
    y_zero = pima_zero['onset_diabetes']
    
    # knn模型参数
    knn_params = {'n_neighbors': [1, 2, 3, 4, 5, 6, 7]}
    # 网格搜索
    grid = GridSearchCV(knn, knn_params)
    grid.fit(X_zero, y_zero)
    
    # 输出
    print(grid.best_score_, grid.best_params_)
    

    结果:0.7330729166666666 {‘n_neighbors’: 6}

    3. 标准化和归一化

            我们现在要做的是进一步增强机器学习流水线,进行一下探索性数据分析。

    impute = Imputer(strategy='mean')
    # 填充所有的缺失值
    pima_imputed_mean = pd.DataFrame(impute.fit_transform(pima), columns=pima_column_names)
    # 画直方图
    pima_imputed_mean.hist(figsize=(15, 15))
    

    部分结果
            从这分析中可以发现,某些特征数据的尺度不同。有一些机器学习模型受数据尺度的影响很大。因此,我们可以使用某种归一化/标准化操作。
    **归一化:**将行和列对齐并转化为一致的规则。将所有定量列转化为同一个静态范围中的值。
    **标准化:**通过确保所有行和列在机器学习中得到平等对待,让数据的处理保持一致。

    (1)z分数标准化

            z分数标准化利用了统计学最简单的z分数思想。将特征重新缩放,均值为0、标准差为1。通过缩放特征、统一化均值和方差,可以让机器学习模型达到最优化。公式为
    z = x − μ σ z=\frac{x-\mu }{\sigma } z=σxμ
    其中 μ \mu μ为均值, σ \sigma σ为标准差。

    # 取此列均值
    mu = pima['plasma_glucose_concentration'].mean()
    # 取此列标准差
    sigma = pima['plasma_glucose_concentration'].std()
    # 对每个值计算z分数
    print(((pima['plasma_glucose_concentration'] - mu) / sigma).head())
    

    标准化后的数据

    # 使用内置的z分数归一化
    from sklearn.preprocessing import StandardScaler
    
    # 用z分数标准化
    scaler = StandardScaler()
    
    glucose_z_score_standardized = scaler.fit_transform(pima[['plasma_glucose_concentration']])
    # 直方图
    ax = pd.Series(glucose_z_score_standardized.reshape(-1,)).hist()
    ax.set_title('Distribution of plasma_glucose_concentration after Z Score Scaling')
    

    标准化后的数据直方图

    # 将z分数标准化插入到机器学习流水线上
    knn_params = {'imputer__strategy': ['mean', 'median'], 'classify__n_neighbors': [1, 2, 3, 4, 5, 6, 7]}
    
    mean_impute_standardize = Pipeline([('imputer', Imputer()), ('standardize', StandardScaler()), ('classify', knn)])
    
    X = pima.drop('onset_diabetes', axis=1)
    y = pima['onset_diabetes']
    
    grid = GridSearchCV(mean_impute_standardize, knn_params)
    grid.fit(X, y)
    
    print(grid.best_score_, grid.best_params_)
    

    结果:0.7421875 {‘classify__n_neighbors’: 7, ‘imputer__strategy’: ‘median’}

    (2)min-max标准化

    m = x − x m i n x m a x − x m i n m=\frac{x-x_{min} }{x_{max}-x_{min}} m=xmaxxminxxmin
            其中, x m i n x_{min} xmin为该列最小值, x m a x x_{max} xmax为该列最大值。
    标准化

    # 导入sklearn模块
    from sklearn.preprocessing import MinMaxScaler
    
    # 实例化
    min_max = MinMaxScaler()
    
    # min-max标准化
    pima_min_maxed = pd.DataFrame(min_max.fit_transform(pima_imputed), columns=pima_column_names)
    
    # 得到描述性统计
    pima_min_maxed.describe()
    

    标准化后的数据
    评估性能

    knn_params = {'imputer__strategy': ['mean', 'median'], 'classify__n_neighbors': [1, 2, 3, 4, 5, 6, 6]}
    
    mean_impute_standardize = Pipeline([('imputer', Imputer()), ('standardize', MinMaxScaler()), ('classify', knn)])
    
    X = pima.drop('onset_diabetes', axis=1)
    y = pima['onset_diabetes']
    
    grid = GridSearchCV(mean_impute_standardize, knn_params)
    grid.fit(X, y)
    
    print(grid.best_score_, grid.best_params_)
    

    结果:0.74609375 {‘classify__n_neighbors’: 4, ‘imputer__strategy’: ‘mean’}

    (3)行归一化

            行归一化是针对行进行操作的,保证每行有单位范数,也就是每行的向量长度相同。
    ∥ x ∥ = ( x 1 2 + x 2 2 + . . . + x n 2 ) \left \| x \right \|=\sqrt{(x_{1}^{2}+x_{2}^{2}+...+x_{n}^{2})} x=(x12+x22+...+xn2)
    归一化

    # 引入行归一化
    from sklearn.preprocessing import Normalizer
    
    # 实例化
    normalize = Normalizer()
    
    pima_normalized = pd.DataFrame(normalize.fit_transform(pima_imputed), columns=pima_column_names)
    
    # 行归一化后矩阵的平均范数
    np.sqrt((pima_normalized**2).sum(axis=1)).mean()
    

    结果:1.0
    评估性能

    knn_params = {'imputer__strategy': ['mean', 'median'], 'classify__n_neighbors': [1, 2, 3, 4, 5, 6, 6]}
    
    mean_impute_standardize = Pipeline([('imputer', Imputer()), ('normalize', Normalizer()), ('classify', knn)])
    
    X = pima.drop('onset_diabetes', axis=1)
    y = pima['onset_diabetes']
    
    grid = GridSearchCV(mean_impute_standardize, knn_params)
    grid.fit(X, y)
    
    print(grid.best_score_, grid.best_params_)
    

    结果:0.6822916666666666 {‘classify__n_neighbors’: 6, ‘imputer__strategy’: ‘mean’}
            从本章的学习中,我们处理了数据中的缺失值,并使用标准化/归一化的方法继续处理数据。然后我们评估了性能。得到的结果是使用均值填充数据,然后用min-max标准化处理出具。得到0.7461的准确率。注意,虽然这个数据比删除存在缺失值的数据准确率没有高很多。但是这是使用全部数据训练的结果。更具有一般化。泛化性能将更好。

    注:本文的内容与图片来源于《特征工程入门与实践》。如有您也想学习相关知识,建议买一本来看。
    个人博客.
    联系方式:2391855138(加好友请备注)

    展开全文
  • 针对这个问题,提出了小波变换特征增强的约束独立分量分析的齿轮箱故障特征提取方法。通过对测量信号小波分解,有针对性地选择某子频段小波系数重构,有利于提高信噪比,增强信号的统计独立性和非高斯性,从而增强约束...
  • 稳健高效通用SAR图像稀疏特征增强算法
  • 针对由动态范围,光照条件,图像捕获设备等因素获得的低亮度图像,提出了一种基于亮度评估技术的特征增强衍生图融合算法来实现亮度较暗图像的对比度调整和特征增强.首先,利用亮度评估技术对低亮度图像的亮度进行...
  • 传统配电装置弱电信号特征增强系统信号接收能力较差,增强效果不明显,线路连接较复杂。针对上述问题,设计了一种基于矢量控制的配电装置弱电信号特征增强系统。主要分为硬件设计和软件设计两个部分,系统硬件设计...
  • 经过数十年的发展语音识别取得了长足进步,但各种语音识别...在此基础上,分析了稀疏编码与语音特征增强的基本问题和研究现状,提出了稀疏编码在语音特征增强方面的需要解决的问题,为从事鲁棒语音识别的研究者提供参考
  • 为了解决这些问题,我们提出了一种轻量级的特征增强卷积神经网络,能够实时对低空飞行目标进行高精度检测,从而提供制导信息以抑制"黑飞"无人机。该网络由三个模块组成。采用轻量、稳定的特征提取模块来减少计算量...

    论文下载:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9574645

    Abstract

           无人机(UAV)被称为"黑飞"的非法飞行对公共安全构成重大威胁,现有低空目标检测算法在平衡检测精度和速度方面存在困难。此外,它们的精度也不够高,尤其是对于复杂环境中的小目标。为了解决这些问题,我们提出了一种轻量级的特征增强卷积神经网络,能够实时对低空飞行目标进行高精度检测,从而提供制导信息以抑制"黑飞"无人机。该网络由三个模块组成。采用轻量、稳定的特征提取模块来减少计算量并且稳定地提取更多的底层特征,增强的特征处理模块显著提高了模型的特征提取能力,精确检测模块集成了低级和高级特征,以提高复杂环境下的多尺度检测精度,尤其是小目标。对于由飞行物体组成的数据集,该方法的检测速度FPS为147,mAP为90.97%,表明该方法具有低空目标检测的潜力。此外,基于MS COCO的评估结果表明,该方法也适用于通用的的目标检测。

    key words:无人机、深度学习、轻量级网络、目标检测

    1. Introduction

           无人机(UAV)由于其在改善国防[1]和方便民用方面的独特能力,已广泛应用于各种工业、消费和军事应用,对整个社会产生了重大影响。然而,现有立法尚未完善无人机相关法律,黑飞现象频繁发生,侵犯了个人隐私和公共安全,甚至国家安全[2]。鉴于无人机(尤其是小型无人机)数量的不断增加,在复杂或弱光环境中对其进行有效监控变得越来越困难。此外,在鸟类和风筝等大量低空干扰物体的情况下,保证无人机的准确检测仍然具有挑战性。因此,为了保护公共财产,提供有效的空中交通管制信息,抑制黑飞现象,有必要开发能够在各种环境条件下对无人机进行高精度实时检测的方法。

           近年来,人们开发了多种探测低空飞行物体的方法. 然而,现有的目标检测算法无法保证在黑暗和复杂环境中检测多尺度目标,尤其是小目标。目前,现有的方法在没有足够提取特征的低海拔、弱光照情况下检测体积小的目标时有很大的困难。此外,低空目标检测算法应准确、快速地检测,这对于准确识别未经授权的无人驾驶车辆和允许相关部门快速响应至关重要。因此,低空目标检测算法必须实时准确地检测目标的各种类型和位置。

           为了解决这些问题,我们提出了一种基于多尺度特征融合的端到端轻量级检测网络体系结构,用于检测低空飞行的小目标,称为LSL-Net,基Yolov4-tiny。该网络提高了复杂环境下的目标检测性能,尤其是对于小目标;此外,它需要更少的检测时间。

           该方法由三个简单但重要的模块组成,包括一个轻量级且稳定的特征提取模块(LSM)、一个增强的特征处理模块(EFM)和一个精确检测模块(ADM)。LSM减少了图像的大小,增强了与底层特征相关的信息,而EFM通过插入一种新的注意力机制和空间金字塔池化网络(SPP-Net)实现了更强大的特征提取。该算法在采用轻量级网络块(LNB)提取特征信息后,特别针对小目标进行了尺度识别,从而更准确地检测小目标。该模型由这些简单而有效的模块组成,很好地平衡了检测速度和精度,我们的实验结果表明,该模型在检测低空目标方面具有良好的性能。

           本研究的贡献归纳如下:

           <1>、我们提出了一种端到端的多尺度轻量级目标检测网络LSL-Net网络,它在检测精度和速度之间提供了良好的平衡,由三个模块组成,包括LSM、EFM和ADM。LSM提取稳定的低层信息并减少总体计算量,而EFM提取更有效的信息以执行更精确的检测,ADM对不同尺度的低空目标,尤其是小目标,实现了更高的精度。

           <2>、采用跨阶段部分网络(CSPNet)和注意力机制等技术来提高检测精度。对于尺寸为416×416像素的输入图像,我们的模型实现了90.97%的mAP和147FPS的检测速度。对比实验表明,与基准方法相比,mAP的提升比单独使用YOLOv4-tiny高6.71%。此外,无人机目标的检测精度与之前的方法相比提高了1.79%。,这表明在低海拔环境下可以更准确地检测到小目标。

           <3>、实验结果表明LSL-Net在平衡检测精度和速度方面表现出优异的性能。根据在低空数据集上的实验结果,在输入尺寸为416×416像素的情况下,正向推理速度比SSD快三倍以上。所提出的方法展示了在不同天气条件下执行准确实时检测和抑制无人机黑飞的能力。

           本研究的剩余部分如下,第2节总结了相关工作,第3节详细介绍了所提的LSL-Net,第4节介绍比较了所提网络和各种广泛使用的模型的实验结果。最后,第5节给出了一些结论。

    2. Related works

    2.1 Traditional object-detection algorithms

           近年来,人们对目标检测进行了广泛的研究,可分为传统的检测算法和基于深度学习的检测方法,并对其进行了广泛的研究。大多数传统检测算法通过AdaBoost[8]、方向梯度直方图(HOG)[9]算法和支持向量机(SVMs)[10]的组合实现特征提取和目标类别检测。Nagahashi等[11] 提出了参数化AdaBoost,通过修改参数实现了更快的训练收敛。但其检测速度不够快,在复杂场景中的多类目标检测精度无法保证。Wang等人[12]在提取亮度、方向和区域对比度特征后,使用AdaBoost检测无人机。Omid-Zohoor等人[13]利用HOG算法的光照不变性来增强他们提出的方法的检测能力。这两种方法提高了检测精度;然而,由于计算复杂度过高,它们的实时性能较差,并且它们检测小目标的能力尚未得到验证。Liu等人[14]分析了小运动物体的运动特征和局部特征,以基于随机森林方法更好地检测小型无人机。Li等人[15]设计了一种基于SVM的检测器,通过提取三种不同的特征来增强其检测小目标的能力。然而,提取的特征类型绝大多数依赖于设计者的经验,由于数据集的大小限制,模型性能仍有改进的余地。Bazi等人[16]利用最先进的SVM来确保有限数量训练图像的识别精度。然而,该模型在恶劣环境下的识别能力仍有待测试。总的来说,这些传统算法的泛化和鲁棒性在很大程度上不能满足工业要求。这些方法需要大数据集才能实现高精度,因此计算复杂度高导致实时性差。因此,此类方法在低空环境中实现准确实时检测的能力有限。

    2.2 基于深度学习的目标检测算法

           随着深度学习的发展,克服了过度依赖设计师经验的特征提取限制,基于卷积神经网络(CNNs)的自适应特征提取算法已经获得了预期的成功。在这些算法中,已经开发出了单阶段和两阶段版本。两阶段的方法,比如连续改进R-CNN系列[18–21],首先生成候选区域,然后执行目标检测。尽管其检测精度较高,但成本较高的计算显著降低了其实时性能。SSD[22]和YOLO[23–26]等单阶段算法通过回归直接预测目标位置和类别,因此它们的结构更加简洁,并展示了实时检测能力。然而,与两阶段方法相比,它们的检测准确率仍然较低。例如,CenterNet[27]和全卷积一阶段目标检测器(FCOS)[28]的检测精度高于SSD和YOLO。然而,它们的检测速度仍然不足以满足实时检测的要求。Li等人[29]提出了两种无人机识别算法。他们首先追求高检测精度,并将识别的无人机图像(由SSD检测)发送给AlexNet[30]进行微调。尽管如此,它们的实时性能无法在多变的低空环境中得到保证。另一种方法是在使用SSD获取无人机的位置后,使用k近邻算法进行分类。该方法以低精度为代价确保实时性能,尤其是对于小目标。为了显著提高小目标的检测精度,[31]中的反卷积single shot检测器(DSSD)增加了基于SSD的反卷积和预测模块。[32]中重新定义的特征金字塔网络全卷积one-shot目标检测器通过优化特征金字塔网络(FPN)结构,提取了更丰富的特征。然而,与之前的方法相比,检测速度显著降低。Fan等人[33]将全连接层和反卷积层添加到SSD中,并在低分辨率图像上执行无人机检测。[34]中的FII-CenterNet通过引入有关图像前景的位置和尺寸的信息,提高了检测精度。这些模型旨在保证检测精度和速度,而不考虑在复杂环境中检测小物体的能力。Ma等人[35]通过优化YOLOv3的ResNet块,提高了无人机的检测稳定性。Cui等人[36]采用k-means聚类[37]对YOLOv3的anchors进行细化,以提高无人机检测任务的准确性。虽然与SSDs相比,检测速度有所提高,但实时性不足以有效地检测低空无人机。Wei等人[38]通过缩小尺度和拼接特征,提高了YOLOv3的检测速度。然而,该模型的小目标识别能力仍然不足。

           总之,传统的低空目标检测方法无法在复杂环境下自适应提取或保证准确的识别。然而,使用深度学习的目标检测算法可以自适应地提取特征。基于深度学习的方法的检测结果通常优于传统方法;然而,要平衡检测速度和准确性仍然很困难。此外,自动化系统在低海拔地区探测小物体的准确性应该得到提高,以满足不断发展的工业需求。为了解决这些问题,我们提出了一种低空小目标检测模型,该模型使用了轻量特征增强的CNN LSL-Net,实现了检测精度和速度之间的完美折衷,并提高了在恶劣环境下,尤其是对小目标的检测精度。该网络基于由群卷积和CSPNet[39]组成的轻型主干网,以平衡检测精度和计算负载。实验结果表明,该模型能有效地检测出低空下小型飞行物体的运动。因此,该方法可以实现复杂低空环境下无人机的高精度实时检测。

    3. Proposed network framework

           我们在YOLOv4-tiny的支持下,开发了一种新的端到端自适应特征信息提取和轻量级检测网络,实现了低空飞行目标的高精度实时检测。网络由三个模块组成,包括LSM、EFM和ADM。LSM和EFM构成网络的主干。LSM减少了计算量,提高了检测速度,EFM通过一个注意力模块充分提取特征,提高了检测精度,而ADM允许高精度多尺度检测,增强了系统检测小物体的能力。

    3.1 Lightweight and stable featureextraction module

           图像的低层特征总是被降级到当特征图显著减少时它们必须被忽略的程度。为了防止图像下采样过程中低层的特征信息丢失,设计了LSM,通过多分支方法进行更好的特征提取,并减小输入图像的大小。其结构如图1所示。

           在该模块中,输入图像通过stride为2的3×3的卷积减小,同时提取图像特征。然后利用多分支网络获得不同的感受野。1×1卷积用于减少参数和整合信息。最后,我们将这些信息拼接起来,为后续的特征提取步骤做准备。为了分析LSM和传统方法的计算量,使用每秒浮点运算(FLOPs)来计算计算复杂度,其可以表示为:

    其中S表示卷积和,M_{n}^{2}是输出特征的大小,K_{n}^{2}是卷积核大小,C_{n-1}^{}C_{n}^{}分别表示输入通道和输出通道的数目。因此,YOLOv4-TINY中使用的传统卷积的FLOPs由下式给出:

    LSM的FLOPs如下:

    与传统的低层特征提取方法相比,LSM的计算复杂度几乎降低了两倍,这表明LSM提高了系统的特征表示能力,在不增加计算量的情况下实现了稳定的下采样。考虑到低空采集的数据集中的小目标,以及检测的精度和速度等多个因素,我们通过数据处理获得了固定大小的图像(如416×416)。通过在EFM之前将输入数据发送到LSM,我们可以在不引入额外计算的情况下增强网络的特征提取能力。

    3.2 EFM

           特征提取网络模型结构是获得良好检测结果的关键因素。已经提出了许多网络模型,如ResNet[40]和ResNext[41],它们可以在不同的场景中实现高精度或实时检测。

           然而,在目前的工作背景下,涉及的物理环境和法律框架是复杂的,对有效检测提出了相当大的挑战。为了实现后续的高精度目标检测,对模型特征提取能力的要求更加严格。根据所考虑场景的特点,提出了一种受CSPNet启发的EFM,如图2所示。EFM主要由三个CSP模块和一个注意力模块组成。每个CSP块都实现了充分的特征提取,并通过最大池化减少了特征图的大小。此外,注意力模块重新调整特征信息,为CSP-SPP的强大特征提取做准备。

           CSP-1和CSP-2层的结构如图3所示。经过3 × 3卷积后,输出通道被分成两组。为了在检测精度和速度之间取得良好的折衷,将一组未处理的特征图与另一组通过各种卷积直接处理的特征图拼接起来。

           通过引入注意力机制,增加重要信息的权重,减少不重要信息的权重,提高计算机视觉模型的检测能力。由于各个通道对应不同的响应,在最终的CSP-Net前增加如图4所示的通道注意力机制,对通道间的语义信息进行编码,以提高检测精度。

           我们首先使用average-和max-pooling生成两个不同的空间上下文描述。然后,我们将这些特征图拼接起来,整合这些池化操作所提取的不同信息。该模块采用残差块增强性能,其中1×1卷积减小输入的特征维度,3×3卷积增强不同通道的特征表达能力。H和W分别代表特征图的高度和宽度,C和r分别代表通道和比例。为了使注意力模块的性能最大化,我们设C=256, r=16。最后,对不同通道的权值进行重新分配,为CSP-SPP算法准备数据。

           CSP-SPP的设计旨在大大提高所提模型的特征提取能力。该网络仍被分成两组,如图5所示。Path A不进行任何图像处理,而Path B使用SPP-Net和多样的卷积来进行更全面的特征提取。最终,我们将这两条路径拼接在一起,获得不同信息的融合。

           为了减少计算负荷,在数据输入到SPP-Net之前,使用1×1卷积来降低特征维数。如图6所示,SPP-Net对不同的感受野进行特征提取,我们的结果表明,该网络元能够有效地提高检测精度。

    3.3 Accurate detection module

           目标检测网络通常有两部分结构,包括特征提取和目标检测。LSM和EFM首次被用于实现轻量级和高效的特征提取。ADM是一种多尺度检测模块,旨在提高检测精度。考虑到许多低空目标物体都很小,ADM被添加为检测小型飞行物体的标尺,尤其是与Yolov4 tiny相比。此外,轻量网络块(LNB)在每个尺度的最终检测之前呈现,如图7所示。该块有效地提高了模型的检测性能,所需计算量的增加相对较小。

           为了使模型能够进行更准确的检测,我们采用k-means聚类来重新定义anchor的大小,这可以使anchors编码更具代表性的先验信息,并在回归后进行更准确的预测。图8中显示了初始中心和边界框大小的示例。

           然后,我们迭代集群中心,如下所示:

           在这个公式中,IoU表示真值框和预测框的重叠程度。box和centroid分别表示边界框的大小和每个簇的中心。

           如表1所示,使用了三种不同尺寸的特征图,包括13×13、26×26和52×52的图。大的anchor boxes(155×128)、(196×237)和(320×321)用于感受野大小为13×13和64×64的特征图中,用于检测大目标。中等大小的anchor boxes(55×126)、(82×86)和(98×186)应用于具有16×16感受野的26×26特征图,以检测中等体积的目标。在具有8×8感受野的最大52×52特征图中,使用小anchor boxes(13×26)、(33×48)和(56×64)来检测小目标。

    LSL-Net使用回归来优化检测问题,损失函数包含三个部分,它们可以表示为:

     其中,loss_{1}^{}loss_{2}^{}loss_{3}^{}分别是置信度、分类和边界框回归损失函数。置信度损失函数表示如下:

    其中S_{}^{2}是输入图像网格编号的值,B是一个网格中边界框的数量,I_{ij}^{obj}指示对象是否出现在第i个网格的第h个边界框中。如果网格中有对象,其值为1;否则I_{ij}^{obj}= 0C_{i}^{j}\hat{C}_{i}^{j}分别是ground truth和预测框的置信度得分,而\lambda _{nobj}^{}是一个权重参数。

    分类损失函数如下所示:

    在这个公式中,p_{i}^{j}\left ( c \right )\hat{p}_{i}^{j}\left ( c \right )分别是属于第i个网格的第j个边界框的预测概率和真值概率。

     其中b和b_{}^{gt}分别表示边界框和ground truth的中心点,\rho _{}^{2}\left ( b,b_{}^{gt} \right )是边界框和ground truth的两个中心点之间的欧氏距离,c表示包含它们的最小闭合面积的对角线距离,\alpha是一个折衷参数,\beta反映了长宽比的一致性。计算\alpha\beta的公式如下:

     其中w和h分别表示边界框的宽度和高度,并且w_{}^{gt}h_{}^{gt}表示ground truth的宽度和高度。

     3.4 LSL-Net overview

           我们提出了一种称为LSL-Net的目标检测网络,由LSM、EFM和ADM组成,如图9所示。该模型仅进行一次正向计算,以生成足够的anchor boxes,类似于YOLO算法。在评估每个类别的置信度后,使用非最大值抑制(NMS)确定最终结果。该方法使用了各种有效的图像增强技术,并固定了不同大小图像的分辨率。首先,图像被LSM(图1)稳定地下采样,在不引入额外计算的情况下提高了特征提取性能。然后,EFM(图2)使用组卷积、CSPNet(图3)、注意力机制(图4)和CSP-SPP(图5)构建具有强大特征提取能力的平行堆叠相同拓扑。LSM和EFM实现了高质量图像特征的下采样和提取。在检测模块中,ADM中添加了检测尺度,尤其是小目标的检测尺度。此外,采用了LNB(图7)和k-means聚类(图8)来实现高精度的实时检测。

     5. Conclusions

           我们提出用LSL-Net实时对低空飞行目标进行高精度探测,为抑制无人机的黑飞提供信息引导。该模型包括三个简单有效的模块,包括LSM、EFM和ADM。LSM减少了图像输入大小和低层特征信息的损失。EFM通过使用注意力机制和CSPNet提高了模型的特征提取能力,ADM提高了检测精度,尤其是对于小目标。我们还构建了一个包含多类多尺度目标的低空飞行目标数据集,以评估该网络的性能。在一项实验中,LSL-Net在NVIDIA GTX1080Ti上实现了90.97%的mAP和147FPS的检测速度(比YOLOv4-tiny高6.71%,比YOLOv4快98 FPS)。大量实验结果表明,LSL-Net具有良好的鲁棒性和良好的泛化能力,能够有效地进行不同天气条件下的检测,满足反无人机任务对低空飞行目标检测的要求。此外,在MS COCO上的实验表明,LSL-Net也适用于其他复杂场景中的目标检测。在未来,我们将设计一个可适用于嵌入式移动终端等设备的提升模型,并进一步丰富数据集,在更复杂的背景中添加对象类别,使其更具代表性。

    展开全文
  • 提取绿色特征,可改变增强颜色变为提取绿色和蓝色
  • 对SSD的金字塔特征层中的浅层网络设计浅层特征增强模块,以提高浅层网络对小目标物体的特征提取能力; 设计深层特征融合模块,替换SSD金字塔特征层中的深层网络,提高深层网络的特征提取能力; 将提取的图像特征与...

    论文阅读笔记

    摘要

    1. 对SSD的金字塔特征层中的浅层网络设计浅层特征增强模块,以提高浅层网络对小目标物体的特征提取能力;
    2. 设计深层特征融合模块,替换SSD金字塔特征层中的深层网络,提高深层网络的特征提取能力;
    3. 将提取的图像特征与不同纵横比的候选框进行匹配以执行不同尺度遥感图像目标检测与定位。

    0. 引言

    1. 反卷积单发检测网络算法(DSSD)(DSSD: Deconvolutional single shot detector)
    2. 多尺度单发射击检测增强算法(ESSD)(An enhanced SSD with feature fusion and visual reasoning for object detection)
    3. 多尺度单发射击检测特征融合算法(FFSSD)(13)
    4. 文献Improved SSD algorithm and its performance analysis of small target detection in remote sensing images基于SSD算法并参考DenseNet网络(title: Densely connected convolutional networks)和特征金字塔(FPN)网络提出改进SSD算法并对遥感图像进行检测,该算法一定程度上提高了遥感图像目标检测的精度,但难以满足实时应用的需求;
    5. 文献Fast airplane detection incorporating multi-layer features offully convolutional Networks,全卷积网络多层特征融合的飞机快速检测End-to-end airplane detection using transfer learning in remote sensing images基于SSD算法提出了基于多尺度卷积神经网络的飞机目标检测算法,提高了遥感图像中的多尺度飞机目标的检测精度,但检测速度大幅降低,同时该方法对小目标的检测精度较差。

    提出了一种特征增强的SSD算法(FESSD),

    1. 设计浅层特征增强模块(SFE),通过多分支卷积操作充分提取浅层网络特征,增强浅层网络对遥感图像小目标的特征提取能力;
    2. 设计深层特征增强模块(DFE),利用双路径网络提取高深层网络对遥感图像目标的特征提取能力;
    3. 设计新的损失函数,提高网络检测性能。

    1. 特征增强SSD算法(FESSD)

    1.1 SSD算法

    浅层网络:Conv4_3, FC7;
    深层网络:Conv8_2, Conv9_2, Conv10_2, Conv11_2;

    在这里插入图片描述

    1.2 FESSD算法

    1. 参考多分支卷积Inception(title: Going deeper with convolutions)操作和残差网络ResNet(tiltle: Deep residual learning for image recognition)的思想设计浅层特征增强模块(SFE)对Conv4_3FC7层进行特征增强操作;
    2. 参考Dual Path Network(title: Dual path networks)的思想,设计深层特征增强模块(DFE)替换原始SSD算法中的Conv8_2Conv9_2Conv10_2Conv11_2,并命名为DFE_8DFE_9DFE_10
    3. 将上述得到的不同尺度的特征送入检测网络,与不同纵横比的候选框进行匹配以适应不同尺度大小的遥感图像目标,并通过NMS操作进行优化处理
      在这里插入图片描述

    两处改进模块SFE和DFE:

    1. SFE:基于多分支卷积操作的思想,使用 1 × 1 , 3 × 3 1 \times 1, 3 \times 3 1×1,3×3的卷积使得网络学习到更多的非线性关系的同时结合残差网络和空洞卷积使网络捕获更多的特征信息,拓宽特征的感受野,此外将 k × k k \times k k×k卷积分解为 k × 1 k \times 1 k×1 1 × k 1 \times k 1×k,在保证感受野大小不变的同时使用分组卷积操作,节省该模块消耗的时间,另一分支的不同之处在于将 k × 1 k \times 1 k×1 1 × k 1 \times k 1×k卷积反向组合,将得到的特征结果进行Concate特征融合操作并与残差分支的 1 × 1 1 \times 1 1×1卷积结果进行Add特征融合操作。
    2. DFE:基于Dual Path Network的思想,并结合残差网络ResNet和密集网络DenseNet对特征提取的特点,不仅深化了整个网络,而且具有从浅层到深层的隐式的特征融合,使得深层网络的特征信息更加丰富,同时使用分组卷积加快模块特征处理效率。

    1.3 候选框选择与损失函数

    为实现对遥感图像中不同尺度的目标进行检测,设计不同纵横比的候选框进行匹配以适应不同尺度大小的遥感图像目标,假设选取 m m m个层的卷积特征用于目标,则第 i i i层的特征图候选框尺寸为
    S i = S m i n + S m a x − S m i n m − 1 ( i − 1 ) i ∈ [ 1 , m ] S_i = S_{min} + \frac {S_{max} - S_{min}}{m-1}(i-1) \quad \quad \quad i \in [1, m] Si=Smin+m1SmaxSmin(i1)i[1,m]
    式中, S m i n S_{min} Smin S m a x S_{max} Smax分别取值为 0.2 0.2 0.2 0.95 0.95 0.95,表示浅层和深层的候选框与特征图的尺度系数,候选框的宽和高的比取值为 a r ∈ { 1 , 2 , 3 , 1 / 2 , 1 / 3 } a_r \in \{ 1, 2, 3, 1/2, 1/3 \} ar{1,2,3,1/2,1/3},则候选框的宽度为 w i = S i ⋅ a r w_i = S_i \cdot \sqrt{a_r} wi=Siar ,候选框的高为 h i = S i / a r h_i = S_i / \sqrt{a_r} hi=Si/ar ,候选框的中心坐标为 ( i + 0.5 ∣ f k ∣ , j + 0.5 ∣ f k ∣ ) (\frac {i+0.5}{|f_k|}, \frac {j+0.5}{|f_k|}) (fki+0.5,fkj+0.5) i , j ∈ [ 0 , ∣ f k ∣ ] i, j \in [0, |f_k|] i,j[0,fk],其中 ∣ f k ∣ |f_k| fk表示第 k k k个特征的尺寸。

    此外,针对模型训练过程中遥感图像正、负样本划分不平衡导致模型退化的问题,本文在SSD算法损失函数的基础上结合聚焦分类损失函数对模型进行优化训练,表示为
    L ( x , c , p , l , g ) = 1 N [ L f 1 ( x , c , p ) + a L l o c ( x , l , g ) ] L(x, c, p, l, g) = \frac {1}{N} [L_{f1}(x, c, p) + aL_{loc}(x, l, g)] L(x,c,p,l,g)=N1[Lf1(x,c,p)+aLloc(x,l,g)]
    式中, N N N表示与真实框相匹配的候选框的个数, x x x为输入图像, c c c为目标类别, p p p为预测类别概率, l l l为候选框, g g g代表真实的标签框, a a a为两者的权重, L f 1 ( x , c , p ) L_{f1}(x, c, p) Lf1(x,c,p) L l o c ( x , l , g ) L_{loc}(x, l, g) Lloc(x,l,g)分别为聚焦分类损失和边框回归损失。其中, L l o c ( x , l , g ) L_{loc}(x, l, g) Lloc(x,l,g)借鉴了Faster R-CNN的位置回归函数,表示为
    L l o c ( x , l , g ) = ∑ i ∈ P o s N ∑ m ∈ c x , c y , w , h x i j k s m o o t h L 1 ( l i m − g j m ) L_{loc}(x, l, g) = \sum \limits ^{N} _{i \in Pos} \sum \limits _{m \in {c_x, c_y, w, h}} x^{k}_{ij} smooth_{L_1}(l^m _i - g ^m _j) Lloc(x,l,g)=iPosNmcx,cy,w,hxijksmoothL1(limgjm)
    式中, x i j k x^{k}_{ij} xijk代表针对类别 k k k,第 i i i个候选框与第 j j j个真实框的结果是否保持一致,若一致则取值为1,否则取值为0. l i m l ^m _i lim表示候选框的值, g j m g ^m _j gjm为真实框的值。

    L f 1 ( x , c , p ) L_{f1}(x, c, p) Lf1(x,c,p)结合聚焦分类损失函数采用交叉熵计算损失,表示为
    L f 1 ( x , c , p ) = − ∑ i ∈ P o s N x i j k p l o g ( c i k ) − ∑ i ∈ n e g ( 1 − p ) l o g ( c j 0 ) L_{f1}(x, c, p) = - \sum \limits ^N _{i \in Pos} x^k _{ij} p log(c ^k _i) - \sum \limits _{i \in neg}(1-p)log(c ^0 _j) Lf1(x,c,p)=iPosNxijkplog(cik)ineg(1p)log(cj0)
    式中, c j 0 c ^0 _j cj0代表正确且类别为背景预测框的概率, c i k c ^k _i cik为利用Softmax函数计算的概率值。

    展开全文
  • YOLOv4(1)-数据增强和特征增强

    千次阅读 2020-05-22 19:34:30
    前者是指不会显著影响模型测试速度和模型复杂度的技巧,主要就是数据增强操作,对应的Bag of specials就是会稍微增加模型复杂度和速度的技巧,但是如果不大幅增加复杂度且精度有明显提升,那也是不错的技巧。...
  • 摘要:为了提高对复杂场景下多尺度遥感目标的检测精度,提出了基于多尺度单发射击检测(SSD)的特征增强目标检测算法.首先对SSD的金字塔特征层中的浅层网络设计浅层
  • 特征增强的平滑区域篡改检测算法
  • 针对这些不足,提出基于局部多特征的低分辨率图像纹理增强技术。使用仿射变换方法查看近似平面单应性变化,结合RANSAC算法,匹配低分辨率图像纹理局部多特征点。提取低分辨率图像低频和高频信息,采用插值算法逐点...
  • 基于组合自适应滤波方法的行星齿轮箱故障特征增强
  • 基于虚拟现实技术的计算机三维仿生图像特征增强策略.pdf
  • 在连续框架下利用拓扑特征增强的体数据可视化
  • 作者采用独立分量分析(IndependentComponentAnalysis)方法对心理作业诱发的脑电信号进行了分析研究表明,ICA能有效地从多路头皮脑电中分离出脑电信号的基本节律成分通过对脑电独立源谱特征和ICA混合矩阵分析,可得到...
  • 网络游戏-一种双向长短时记忆递归神经网络的特征增强方法及系统.zip
  • Featureaugmentationforimbalancedclassificationwithconditionalmixture WGANs 翻译
  • 缺失值识别
  • 本文简要回顾了多尺度物体检测算法的一些工作,然后提出了一种基于多尺度特征图的特征增强和融合方法,提高了MS COCO上小物体的检测精度。 一、介绍 目标检测是计算机视觉领域的核心问题之一。它旨在找到图像中...
  • 文本特征处理&数据增强1. 文本特征处理1.1 什么是n-gram特征1.2 文本长度规范及其作用2. 文本数据增强2.1 什么是回译数据增强法... 这些特征处理工作能够有效的将重要的文本特征加入模型训练中, 增强模型评估指标.
  • 针对水下涵洞降质图像存在裂缝被非均匀悬浮颗粒遮挡的问题,提出了一种基于增强色调特征的涵洞裂缝缺陷分割算法。该算法增强对色彩高敏感的色调特征,并以此为基础对图像进行粗分割。针对涵洞壁凹陷等干扰图像分割结果...
  • 本文通过一系列的对照试验,检验在小型猫狗数据集上基于预训练模型,数据增强、卷积基参与训练以及ImageDataGenerator(preprocessing_function=preprocess_input)所带来的改善。结论是主要的改善来自于preprocess_...
  • 采用基于快速视网膜特征改进的算法提取文字特征点,实现基于文字特征增强现实系统。实验结果表明:所提算法能较准确地提取图像文字特征点,减弱了纹理对精度的影响,适用于对文本图像的识别注册。基于此方法实现的增强...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 231,614
精华内容 92,645
关键字:

特征增强