我要将草图面(绘图照片)与彩色照片相匹配.因此,对于研究,我想找出将草图绘制与颜色面匹配的挑战.现在我已经发现了
我想知道(技术术语)有什么其他的挑战和提供什么OPEN CV和JAVA CV方法和算法来克服挑战?
以下是草图和已知匹配它们的照片的一些示例:

opencv image image-processing feature-extraction face-detection
我正在使用PCA和SVM进行人脸识别.我的训练集有400个图像阵列,我已经在其上执行了PCA并将数据映射到本征空间.现在进行测试我只有一个图像,其主要组件我需要提取以匹配先前提取的功能.但是我使用的任何PCA算法甚至内置命令(princomp)都会出现尺寸错误.因为PCA需要形成本征空间并将数据投影到这个空间,我如何形成单个图像的本征空间?
我正在使用MATLAB 2014a来提取BRISK和FREAK描述符.我找不到任何将位串大小减小到128或256的选项,它们都生成为512位.我认为FREAK不允许这种算法,但BRISK应该允许.有谁知道我是否可以减少BRISK描述符的维度?如果是,我该怎么办?
谢谢
我正在编写一个ML模块(python)来预测stackoverflow问题(标签+正文)的标签.我的语料库有大约500万个问题,每个问题都有标题,正文和标签.我正在将这个3:2分成训练和测试.我受到维度诅咒的困扰.
NGRAM协会:对每个单字组和两字在标题和正文每个问题,我保持相关标签的列表.存入redis.这导致大约一百万个独特的unigrams和两千万个独特的双桅轮,每个都有相应的标签频率列表.防爆.
"continuous integration": {"ci":42, "jenkins":15, "windows":1, "django":1, ....}
Run Code Online (Sandbox Code Playgroud)注意:这里有两个问题:a)并非所有的unigrams和bigrams都很重要,b)并非所有与ngram相关的标签都很重要,尽管这并不意味着频率为1的标签都是等效的或者可以随意删除.与给定ngram相关联的标签数量很容易达到成千上万 - 其中大多数不相关且无关紧要.
tfidf:为了帮助选择要保留的ngram,我计算了每个unigram和bigram的整个语料库的tfidf分数,并将相应的idf值与相关标签一起存储.防爆.
"continuous integration": {"ci":42, "jenkins":15, ...., "__idf__":7.2123}
Run Code Online (Sandbox Code Playgroud)
documentxfeature tfidf分数存储在sparse.csr_matrix中,我不知道如何才能利用它.(它由fit_transform()生成)
一旦功能集减少,我计划使用它的方式如下:
关于如何改进这个有什么建议吗?分类器可以派上用场吗?
我有一台16核,16GB的RAM机器.redis-server(我将移动到另一台机器)存储在RAM中,大约为10GB.上面提到的所有任务(除了tfidf)都是使用ipython集群并行完成的.
python machine-learning feature-extraction tf-idf scikit-learn
我正在使用skimage.feature的local_binary_pattern和统一模式,如下所示:
>>> from skimage.feature import local_binary_pattern
>>> lbp_image=local_binary_pattern(some_grayscale_image,8,2,method='uniform')
>>> histogram=scipy.stats.itemfreq(lbp_image)
>>> print histogram
[[ 0.00000000e+00 1.57210000e+04]
[ 1.00000000e+00 1.86520000e+04]
[ 2.00000000e+00 2.38530000e+04]
[ 3.00000000e+00 3.23200000e+04]
[ 4.00000000e+00 3.93960000e+04]
[ 5.00000000e+00 3.13570000e+04]
[ 6.00000000e+00 2.19800000e+04]
[ 7.00000000e+00 2.46530000e+04]
[ 8.00000000e+00 2.76230000e+04]
[ 9.00000000e+00 4.88030000e+04]]
Run Code Online (Sandbox Code Playgroud)
当我在附近拍摄8个像素时,预计会获得59个不同的LBP码(因为统一的方法),但它只给了我9个不同的LBP码.更一般地,总是返回P + 1个标签(其中P是邻居的数量).
这是另一种统一的方法,还是我误解了什么?
我正在寻找对人体加速度计数据进行特征提取以用于活动识别的方法。我的数据的采样率为100Hz。
我已经从各种来源研究了FFT是一种很适合使用的方法。我具有滑动窗口格式的数据,每个窗口的长度为256。我正在使用Python通过NumPy库执行此操作。我用来应用FFt的代码是:
import numpy as np
def fft_transform (window_data):
fft_data = []
fft_freq = []
power_spec = []
for window in window_data:
fft_window = np.fft.fft(window)
fft_data.append(fft_window)
freq = np.fft.fftfreq(np.array(window).shape[-1], d=0.01)
fft_freq.append(freq )
fft_ps = np.abs(fft_window)**2
power_spec.append(fft_ps)
return fft_data, fft_freq, power_spec
Run Code Online (Sandbox Code Playgroud)
这样给出的输出如下所示:
fft_data
array([ 2.92394828e+01 +0.00000000e+00j,
-6.00104665e-01 -7.57915977e+00j,
-1.02677676e+01 -1.55806119e+00j,
-7.17273995e-01 -6.64043705e+00j,
3.45758079e+01 +3.60869421e+01j,
etc..
Run Code Online (Sandbox Code Playgroud)
freq_data
array([ 0. , 0.390625, 0.78125 , 1.171875, 1.5625 , etc...
Run Code Online (Sandbox Code Playgroud)
功率谱
array([ 8.54947354e+02, 5.78037884e+01, 1.07854606e+02,
4.46098863e+01, 2.49775388e+03, etc...
Run Code Online (Sandbox Code Playgroud)
我还使用此代码绘制了结果-其中fst_ps是power_spectrum的第一个数组/窗口,而fst_freq是fft_freq数据的第一个窗口/数组。
import matplotlib.pyplot as plt
fig = …Run Code Online (Sandbox Code Playgroud) 我需要从数据集中为回归任务选择一些特征。但是数值来自不同的范围。
from sklearn.datasets import load_boston
from sklearn.feature_selection import SelectKBest, f_regression
X, y = load_boston(return_X_y=True)
X_new = SelectKBest(f_regression, k=2).fit_transform(X, y)
Run Code Online (Sandbox Code Playgroud)
为了提高回归模型的性能,我是否需要在SelectKBest方法之前对 X 进行归一化?
我正在尝试学习图像特征检测技术。
我已经设法检测到水平线(不间断/连续),但是我无法检测图像中的所有虚线/断线。
这是我的测试图像,您可以看到有虚线和一些文本/框等。
到目前为止,我使用了以下代码,仅检测到一条虚线。
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
ORB 在图像边缘附近找不到关键点,我不明白为什么。SIFT 和 SURF 似乎更糟糕,我预计情况恰恰相反。
如果我理解正确,那么 SIFT/SURF 在测试点周围分别使用 16x16 和 20x20 方块,因此我希望它们不会找到距离边缘 8 和 10 像素的关键点。FAST/ORB 在测试点周围使用直径为 7 的圆,因此我希望它能找到更接近边缘的关键点,也许接近 4 个像素(尽管我认为相关的算法,BRIEF,用于描述关键点使用更大的窗口)所以这会删除一些关键点)。
一个实验让我的预测变得毫无意义。在我的实验中,距边缘的最小距离随着方块的大小和间距而变化,但例子是
谁能解释为什么?
我使用的代码如下。我画了一个正方形网格并应用了高斯模糊。我预计算法会锁定角落,但他们发现了正方形的中心和一些伪影。
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) 我正在使用的库
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
python ×5
opencv ×3
matlab ×2
python-3.x ×2
data-science ×1
fft ×1
freak ×1
image ×1
keypoint ×1
matlab-cvst ×1
pca ×1
pixellib ×1
scikit-image ×1
scikit-learn ×1
tf-idf ×1