标签: feature-extraction

从单个单词中提取特征

通常人们想通过使用词袋方法从文本中获取特征,计算单词并计算不同的度量,例如 tf-idf 值,如下所示: 如何在分类中包含单词作为数字特征

但是我的问题不同,我想从单个单词中提取一个特征向量。例如,我想知道土豆和炸薯条在向量空间中彼此靠近,因为它们都是由土豆制成的。我想知道牛奶和奶油也很接近,热和温暖,石头和硬等等。

这个问题叫什么?只看海量文档就可以了解单词的相似性和特征吗?

我不会用英文实现,所以我不能使用数据库。

nlp machine-learning feature-extraction

5
推荐指数
1
解决办法
1940
查看次数

手势/姿势识别的特征提取方法

我目前正在开发一个手语识别应用程序,我想使用隐马尔可夫模型作为分类阶段,这意味着我将对手势/姿势进行分类以获得相关的字母或单词。

我目前已经完成了检测手部的第一阶段。目前,我可以获得许多可用于机器学习阶段的参数(特征),例如:

  • 手的凸包
  • 凸面缺陷
  • 手的质心
  • 边界旋转的椭圆/矩形(例如获得旋转所需的任何角度)
  • 手的轮廓
  • 时刻(我不确定这些到底是什么)

这些都可以通过 openCv 来完成。

我的问题:一旦我拥有所有这些功能,我该如何执行“特征提取”阶段?即如果机器学习算法,在这种情况下 HMM 需要一组概率,我如何使用上述信息?

我的一个想法是创建一个特殊的数据结构,其中包含唯一标识每个手势的信息,但我如何将其提供给机器学习技术?(在本例中为隐马尔可夫模型)

任何人都可以指导我在这个特定阶段至少应该搜索什么,或者指导我展示我真正遇到的困难是什么?

opencv machine-learning gesture-recognition feature-extraction hidden-markov-models

5
推荐指数
1
解决办法
2556
查看次数

在MATLAB中使用SVM实现HOG功能

我想基于使用SVM的HOG功能进行分类.

据我所知,HOG特征是每个单元格中所有直方图的组合(即它成为一个聚合直方图).

我在本页面中使用MATLAB代码为Dalal-Triggs变体提取HOG功能.

例如,我有大小为384 x 512的灰度图像,然后我以9个方向和8的单元格大小提取HOG特征.通过这样做,我得到48 x 64 x 36个特征.

如何将其作为直方图并将其用于SVM分类器?

因为,例如,我将有7类图像,我想要进行训练(总图像将是700用于训练),然后根据训练阶段生成的模型对新数据进行分类.

我读到对于多类,我们可以用ONE vs ALL训练我们的SVM,这意味着我必须为我的7个类训练7个分类器.

因此,对于第一列火车,我会认为第一类被标记为+1,而重新等级将为0.而第二列火车,我将认为第二类被标记为+1并且重新上课将是0.等等..

例如,我有颜色类别:红色,绿色,蓝色,黄色,白色,黑色和粉红色.

所以对于第一次训练,我只制作了2个红色而不是红色的二进制文件.

对于第二次训练,我将标签设为绿色而不是绿色..是不是就这样?

训练SVM的语法是:

          SVMStruct = svmtrain(Training,Group)
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我将有7个SVMStruct ..

分类/测试的语法

          Group = svmclassify(SVMStruct,Sample)
Run Code Online (Sandbox Code Playgroud)

如何在这里声明7个SVMStruct?

是对的吗??还是有另外一个概念或合成器我必须要知道?

对于培训,我将拥有48 x 64 x 36的功能,我如何在SVM中训练这些功能?因为正如我所读到的,它们只有1xN的特征矩阵.

请帮我...

matlab classification svm feature-extraction matlab-cvst

5
推荐指数
1
解决办法
1万
查看次数

使用 scala 从 FilePath 中提取文件夹名称和文件名

我有从目录读取的文件流,文件树的形式如下:

/repository/resources/2016-03-04/file.csv
/repository/resources/2016-03-04/file2.csv
/repository/resources/2016-03-05/file3.csv
/repository/resources/2016-03-05/file4.csv
Run Code Online (Sandbox Code Playgroud)

请,我需要帮助使用 scala 提取日期文件夹的名称和表单中的 .csv 文件:

2016-03-03 file.csv
2016-03-04 file2.csv
2016-03-05 file3.csv
2016-03-05 file4.csv
Run Code Online (Sandbox Code Playgroud)

scala text-extraction feature-extraction

5
推荐指数
1
解决办法
7393
查看次数

在 Scikit-Learn 特征提取中合并 CountVectorizer

我是 scikit-learn 的新手,需要一些帮助来完成我一直在做的事情。

我正在尝试使用多项式朴素贝叶斯分类对两种类型的文档(例如 A 型和 B 型)进行分类。为了获取这些文档的术语计数,我在 sklearn.feature_extraction.text 中使用 CountVectorizer 类。

问题在于,两种类型的文档需要不同的正则表达式来提取标记(CountVectorization 的 token_pattern 参数)。我似乎找不到一种方法来首先加载类型 A 的训练文档,然后加载类型 B 的训练文档。是否可以执行以下操作:

vecA = CountVectorizer(token_pattern="[a-zA-Z]+", ...)
vecA.fit(list_of_type_A_document_content)
...
vecB = CountVectorizer(token_pattern="[a-zA-Z0-9]+", ...)
vecB.fit(list_of_type_B_document_content)
...
# Somehow merge the two vectorizers results and get the final sparse matrix
Run Code Online (Sandbox Code Playgroud)

python feature-extraction scikit-learn

5
推荐指数
1
解决办法
3736
查看次数

如何从纸张中提取这6个符号(签名)(opencv)

我有一个图像:

一个图像

我正在尝试一一提取这些迹象。我尝试过findContours(),但得到了很多内部轮廓。有什么办法可以做到这一点吗?

opencv feature-extraction contour

5
推荐指数
1
解决办法
2241
查看次数

如何在 pyspark 中进行均值(目标)编码

我需要对数据集中的所有分类列进行均值(目标)编码。为了简化这个问题,假设我的数据集中有 2 列,第一列是标签列,第二列是分类列。

例如

label | cate1   
  0   |  abc    
  1   |  abc    
  0   |  def    
  0   |  def    
  1   |  ghi
Run Code Online (Sandbox Code Playgroud)

因此根据均值编码策略:https://towardsdatascience.com/why-you-should-try-mean-encoding-17057262cd0

输出应该是这样的

label | cate1    
  0   |  0.5   
  1   |  0.5    
  0   |  0.0    
  0   |  0.0    
  1   |  1.0
Run Code Online (Sandbox Code Playgroud)

我尝试用 Koalas 来解决这个问题,但失败了。这是我尝试过的:

for col_name in convert_cols:


    cat_mean_dict = dict()
    # get category name <-> count dictionary
    cur_col_cate_count_ = ks_df[col_name].value_counts().to_dict()
    print(cur_col_cate_count_)

    # calculate all different categories positive result count and mean value
    start_time = time.time()
    for key …
Run Code Online (Sandbox Code Playgroud)

python encoding feature-extraction pyspark

5
推荐指数
1
解决办法
3285
查看次数

使用 OpenCV 仅检测图像中的虚线(虚线)

我正在尝试学习图像特征检测技术。

我已经设法检测到水平线(不间断/连续),但是我无法检测图像中的所有虚线/断线。

这是我的测试图像,您可以看到有虚线和一些文本/框等。

我的测试图片

到目前为止,我使用了以下代码,仅检测到一条虚线。

import cv2
import numpy as np

img=cv2.imread('test.jpg')
img=functions.image_resize(img,1000,1000) #function from a script to resize image to fit my screen
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgEdges=cv2.Canny(imgGray,100,250)
imgLines= cv2.HoughLinesP(imgEdges,2,np.pi/100,60, minLineLength = 10, maxLineGap = 100)
for x1,y1,x2,y2 in imgLines[0]:
    cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imshow('Final Image with dotted Lines detected',img) 
Run Code Online (Sandbox Code Playgroud)

我的输出图像如下。正如你所看到的,我只能检测到最后一条虚线。我已经尝试过参数 rho、theta、min/max 线,但没有运气。

任何意见是极大的赞赏 :)

我的输出图像

python opencv image-processing feature-extraction python-3.x

5
推荐指数
1
解决办法
9198
查看次数

为什么 FAST/ORB 不擅长寻找图像边缘附近的关键点

ORB 在图像边缘附近找不到关键点,我不明白为什么。SIFT 和 SURF 似乎更糟糕,我预计情况恰恰相反。

如果我理解正确,那么 SIFT/SURF 在测试点周围分别使用 16x16 和 20x20 方块,因此我希望它们不会找到距离边缘 8 和 10 像素的关键点。FAST/ORB 在测试点周围使用直径为 7 的圆,因此我希望它能找到更接近边缘的关键点,也许接近 4 个像素(尽管我认为相关的算法,BRIEF,用于描述关键点使用更大的窗口)所以这会删除一些关键点)。

一个实验让我的预测变得毫无意义。在我的实验中,距边缘的最小距离随着方块的大小和间距而变化,但例子是

  • SIFT .. 5 像素
  • 冲浪.. 15 像素
  • ORB .. 39 像素

谁能解释为什么?

我使用的代码如下。我画了一个正方形网格并应用了高斯模糊。我预计算法会锁定角落,但他们发现了正方形的中心和一些伪影。

import numpy as np
import cv2

size = 501; border = 51; step = 10
image = np.zeros( (size,size), np.uint8 )
# fill with disjoint squares
def drawsquare(img,i,j):
    restsize = step//5
    cv2.rectangle(img,(i-restsize,j-restsize),(i+restsize,j+restsize),255,-1)
for i in range(0,size,step):
    for j in range(0,size,step):
        drawsquare(image,i,j)
# blank out the …
Run Code Online (Sandbox Code Playgroud)

python opencv feature-extraction keypoint

5
推荐指数
1
解决办法
2114
查看次数

PixelLib 无法正确检测对象

我正在使用的库

import pixellib
from pixellib.instance import instance_segmentation
import cv2
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

剧本:

segment_image = instance_segmentation()
segment_image.load_model('mask_rcnn_coco.h5')
segmask, output = segment_image.segmentImage("images\example2.jpeg", show_bboxes = True)
cv2.imwrite("exampleoutput.jpeg", output)
print(output.shape)
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不能突出显示图像的不同部分。

这是我的输出:

这是我的输出

我研究了其他人如何使用 Pixellib,它与他们的完美配合。

我期待的输出:

我期待的输出

image-processing feature-extraction image-segmentation data-science pixellib

5
推荐指数
1
解决办法
765
查看次数