标签: feature-extraction

用Javascript进行特征提取

我想知道是否有任何开源或免费库用于使用Javascript进行图像特征提取?我正在开发一个应用程序,我需要使用像SIFT这样的算法.在JS中实现起来很困难,我在JS中找不到一个好的SIFT实现.我想在JS中实现一个特征提取库,如果不存在的话.请任何人帮助我找到一个好的解决方案或指导我从头开始编写一个.

谢谢,克山.

javascript image-processing feature-extraction computer-vision sift

8
推荐指数
1
解决办法
3341
查看次数

OpenCV HOG功能数据布局?

我正在使用OpenCV的Directogram Gradients(HOG)的CPU版本.我使用32x32图像,4x4单元格,4x4块,块之间没有重叠,以及15个方向箱.OpenCV HOGDescriptor给了我一个长度为960的一维特征向量.这是有道理的,因为(32*32像素)*(15个方向)/(4*4个单元格)= 960.

但是,我不确定这些960号码是如何在内存中布局的.我的猜测就是这样:

vector<float> descriptorsValues =
[15 bins for cell 0, 0] 
[15 bins for cell 0, 1]
...
[15 bins for cell 0, 7]
....
[15 bins for cell 7, 0] 
[15 bins for cell 7, 1]
...
[15 bins for cell 7, 7]
Run Code Online (Sandbox Code Playgroud)

当然,这是一个2D问题扁平化为1D,所以实际上看起来像这样:

[cell 0, 0] [cell 0, 1] ... [cell 7, 0] ... [cell 7, 7]
Run Code Online (Sandbox Code Playgroud)

那么,我对数据布局有正确的想法吗?或者是别的什么?


这是我的示例代码:

using namespace cv;

//32x32 image, 4x4 blocks, 4x4 cells, 4x4 …
Run Code Online (Sandbox Code Playgroud)

c++ opencv histogram feature-extraction computer-vision

8
推荐指数
1
解决办法
3710
查看次数

如何使用SIFT/SURF作为机器学习算法的功能?

我正在研究一个自动图像标注问题,我试图将标签与图像相关联.为此我试图用SIFT功能进行学习.但问题是所有的SIFT特征都是一组关键点,每个关键点都有一个二维数组,关键点的数量也很大.如何为我的学习算法提供它们,通常只接受一个-d功能?

opencv machine-learning image-processing feature-extraction sift

8
推荐指数
1
解决办法
6995
查看次数

编码风格的监督学习 - 特征选择(Scikit Learn)

我正在研究是否可以根据编码风格自动计算学生代码的得分.这包括避免重复代码,注释掉代码,变量命名错误等等.

我们正在尝试根据过去学期的作文分数(从1-3开始)学习,这很好地导致了有监督的学习.基本思想是我们从学生的提交中提取特征,并创建feature_vector,然后使用scikit-learn通过逻辑回归运行它.我们还尝试了各种各样的事情,包括在特征向量上运行PCA以减少维数.

我们的分类器只是猜测最频繁的类,即2分.我相信这是因为我们的功能无论如何都不能预测.有监督的学习算法是否还有其他可能的原因来猜测优势类?有什么方法可以防止这种情况吗?

我认为这是因为这些功能不具备预测性,有没有办法确定"好"的功能是什么?(好的,我的意思是可辨别的或预测性的).

注意:作为一项辅助实验,我们通过对已经评分的读者成绩分配测试了过去成绩的一致性.只有55%的人给出了相同的项目成分(1-3).这可能意味着这个数据集根本无法归类,因为人类甚至无法进行一致评分.关于其他想法的任何提示?或者事实上是否真的如此?

功能包括:重复代码行数,平均函数长度,1个字符变量数,包含注释掉代码的行数,最大行长度,未使用导入计数,未使用变量,未使用参数.还有一些...我们将所有功能可视化,并发现虽然平均值与分数相关,但变化非常大(不太有希望).

编辑:我们项目的范围:我们只是试图从一个特定项目(给出骨架代码)中学习.我们还不需要概括.

statistics machine-learning feature-extraction feature-selection supervised-learning

8
推荐指数
1
解决办法
499
查看次数

理想的HoG功能数量

因此,有很多选项可以提取HoG功能.使用不同的方向,每个单元的不同像素数和不同的块大小.

但是有标准或最佳配置吗?我有50x100大小的训练图像,我选择了8个方向.我正在从训练数据中提取特征以进行车辆分类.但我真的不知道什么是"最佳".

例如,我在这里有2个配置,有没有理由选择其中一个?就个人而言,我觉得第二个是更好的选择,但为什么呢?

在此输入图像描述

在此输入图像描述

classification image-processing feature-extraction training-data

8
推荐指数
1
解决办法
2692
查看次数

是否有任何探测器在GPU上实现并且是缩放/旋转不变的?

正如OpenCV 2.4.9.0中所知,这些特征检测器:SIFT, SURF, BRISK, FREAK, STAR, FAST, ORB.

所有这些都对CPU执行,但只FASTORBGPU上.http://docs.opencv.org/genindex.html

众所周知,有些是缩放/旋转不变的,但有些则不是:对于尺度不变特征提取,是否存在SURF和SIFT的快速替代方案?

这些是规模不变和旋转不变的:

  • 冲浪
  • 轻快
  • 怪物

但这些不是规模不变的,也不是旋转不变的:

  • 快速
  • ORB

是否有任何探测器在GPU上实现并且是缩放/旋转不变的?

或者将在GPU或OpenCL上的OpenCV 3.0中添加?

opencv feature-extraction computer-vision feature-detection orb

8
推荐指数
1
解决办法
5459
查看次数

OpenCV使用匹配分数查找正确的阈值以确定是否匹配图像

我目前正在使用各种功能提取器和各种匹配器进行识别程序.使用匹配器的分数,我想创建一个分数阈值,可以进一步确定它是正确匹配还是不正确匹配.

我试图理解来自各种匹配器的DMatch距离意义,距离值越小越好匹配吗?如果是,我很困惑,因为具有差异位置的相同图像返回比两个不同图像更大的值.

我运行了两个测试用例:

  1. 将一个图像与具有不同位置的相同图像进行比较等.
  2. 将一个图像与具有几个不同位置的完全不同的图像进行比较等.

这是我的测试结果:

-----------------------------------------------

Positive image average distance
Total test number: 70
Comparing with SIFT
     Use BF with Ratio Test: 874.071456255
     Use FLANN             : 516.737270464

Comparing with SURF
     Use BF with Ratio Test: 2.92960552163
     Use FLANN             : 1.47225751158

Comparing with ORB
     Use BF                : 12222.1428571
     Use BF with Ratio Test: 271.638643755

Comparing with BRISK
     Use BF                : 31928.4285714
     Use BF with Ratio Test: 1537.63658578

Maximum positive image distance
Comparing with SIFT
     Use BF with Ratio Test: 2717.88008881 …
Run Code Online (Sandbox Code Playgroud)

python opencv matcher feature-extraction threshold

8
推荐指数
1
解决办法
1489
查看次数

多个类别特征(列)上的特征哈希

我想将功能“流派”散列到6列中,并将功能“发布者”散列到另外六列中。我想要以下内容:

      Genre      Publisher  0    1    2    3    4    5      0    1    2    3    4    5 
0     Platform  Nintendo  0.0  2.0  2.0 -1.0  1.0  0.0    0.0  2.0  2.0 -1.0  1.0  0.0
1       Racing      Noir -1.0  0.0  0.0  0.0  0.0 -1.0   -1.0  0.0  0.0  0.0  0.0 -1.0
2       Sports     Laura -2.0  2.0  0.0 -2.0  0.0  0.0   -2.0  2.0  0.0 -2.0  0.0  0.0
3  Roleplaying      John -2.0  2.0  2.0  0.0  1.0  0.0   -2.0  2.0  2.0  0.0  1.0  0.0
4       Puzzle      John  0.0  1.0 …
Run Code Online (Sandbox Code Playgroud)

python feature-extraction dataframe pandas scikit-learn

8
推荐指数
1
解决办法
897
查看次数

Scikit-learn主成分分析(PCA)用于降维

我想对降维和数据集成进行主成分分析.

我有3个功能(变量)和5个样本,如下所示.我想通过转换它们(计算第一台PC)将它们集成到一维(1个特征)输出中.我想使用转换后的数据进行进一步的统计分析,因为我相信它显示了3个输入特征的"主要"特征.

我首先用python编写了一个测试代码,使用scikit-learn如下所示.简单的情况是3个特征的值都是等价的.换句话说,我将PCA用于三个相同的向量,[0,1,2,1,0].

import numpy as np
from sklearn.decomposition import PCA
pca = PCA(n_components=1)
samples = np.array([[0,0,0],[1,1,1],[2,2,2],[1,1,1],[0,0,0]])
pc1 = pca.fit_transform(samples)
print (pc1)
Run Code Online (Sandbox Code Playgroud)

产量

[[-1.38564065]
[ 0.34641016]
[ 2.07846097]
[ 0.34641016]
[-1.38564065]]
Run Code Online (Sandbox Code Playgroud)
  1. 降维后采用第一个PCA正确的数据集成方法?

1-2.例如,如果特征类似于[功率等级,速度等级],则功率与速度大致呈负相关,当它是2特征情况时.我想知道具有"高功率"和"高速"的样品.很容易确定[功率1,速度1]优于[功率2,速度2],但对于[功率4,速度2]与[功率3,速度3]的情况很难.因此,我想将PCA应用于二维"功率和速度"数据集,然后使用第一台PC,然后使用"第一台PC"的等级.这种方法仍然适用吗?

  1. 在这种情况下,我认为输出也应该是[0,1,2,1,0],它与输入相同.但输出为[-1.38564065,0.34641016,2.07846097,0.34641016,-1.38564065].代码有问题,还是正确的答案?

python feature-extraction pca scikit-learn

7
推荐指数
1
解决办法
873
查看次数

如何从FFT中提取特征?

我正在从以 200 Hz 采样的 X、Y 和 Z 加速度计传感器收集数据。3 个轴组合成一个称为“XYZ_Acc”的信号。我遵循了有关如何使用 scipy fftpack 库将时域信号转换为频域的教程。

我正在使用的代码如下:

from scipy.fftpack import fft

# get a 500ms slice from dataframe
sample500ms = df.loc[pd.to_datetime('2019-12-15 11:01:31.000'):pd.to_datetime('2019-12-15 11:01:31.495')]['XYZ_Acc']

f_s = 200              # sensor sampling frequency 200 Hz
T   = 0.005            # 5 milliseconds between successive observation T =1/f_s
N   = 100              # 100 samples in 0.5 seconds

f_values = np.linspace(0.0, f_s/2, N//2)
fft_values = fft(sample500ms)
fft_mag_values = 2.0/N * np.abs(fft_values[0:N//2])
Run Code Online (Sandbox Code Playgroud)

然后我绘制频率与幅度

fig_fft = plt.figure(figsize=(5,5))
ax = fig_fft.add_axes([0,0,1,1])
ax.plot(f_values,fft_mag_values)
Run Code Online (Sandbox Code Playgroud)

截屏: …

python fft feature-extraction scipy

7
推荐指数
1
解决办法
2270
查看次数