我有一些带有形状的标签图像(圆形,矩形和空白).在使用中值模糊和Gabor滤镜处理图像后,我可以消除可变照明对图像的大部分影响,它们看起来像这样:
我曾尝试使用HOG,LDA,PCA和像素本身训练SVM,但我几乎无法达到40-60%的准确率.我真正想要做的是使用图像形状的信息.我向我推荐了傅里叶描述符,虽然我找到了一个关于使用NumPy和OpenCV对图像应用傅立叶变换的好教程,但我不确定如何从图像中提取傅立叶描述符然后识别那些是独特的不同形状.有没有人知道如何做到这一点,或者可以推荐一种替代技术来从这些图像中获取特征,以便SVM区分它们?
opencv fft image-processing scikit-learn fourier-descriptors
当我用Homebrew安装OpenCV 3.0时,它给了我以下指示将它链接到Python 2.7:
如果您需要Python来查找此仅keg公式的绑定,请运行:
echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-包/ opencv3.pth
虽然我可以在opencv3中找到python2.7站点包,但是没有生成python34站点包.有谁知道如何将我的OpenCV 3.0安装链接到Python 3?
我一直在使用Fitbit Python包来分析我的数据.当我查看我的运动数据时,它似乎运作得很好:
fitbit_stats = authd_client._COLLECTION_RESOURCE('activities', date='2015-09-16')
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试获取心率数据时,它会运行,但不会返回除0以外的任何内容:
fitbit_stats = authd_client._COLLECTION_RESOURCE('heart', date='2015-09-16')
print fitbit_stats
Run Code Online (Sandbox Code Playgroud)
{'heart':[],'average':[{'tracker':'Resting Heart Rate','heartRate':0},{'tracker':'Normal Heart Rate','heartRate':0},{ 'tracker':'发挥心率','heartRate':0}]}
有谁知道我为什么不在这里返回任何数据?
自从微软宣布开源 .Net 以来,我一直对 C# 和 Mono 很感兴趣。我想知道这个决定对 Mono 项目有多大影响?我假设现在这意味着微软不再试图关闭该项目(如果他们愿意的话)不会有任何潜在的危险?
我一直在测试PCA和LDA如何有效地分类我想要自动识别的3种不同类型的图像标签.在我的代码中,X是我的数据矩阵,其中每一行是图像中的像素,y是一维数组,表示每行的分类.
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.lda import LDA
pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)
plt.figure(figsize = (35, 20))
plt.scatter(X_r[:, 0], X_r[:, 1], c=y, s=200)
lda = LDA(n_components=2)
X_lda = lda.fit(X, y).transform(X)
plt.figure(figsize = (35, 20))
plt.scatter(X_lda[:, 0], X_lda[:, 1], c=y, s=200)
Run Code Online (Sandbox Code Playgroud)
使用LDA,我最终得到3个清晰可辨的聚类,它们之间只有轻微的重叠.现在,如果我有一个新图像我要分类,一旦我把它变成一维数组,我该如何预测它应该落入哪个集群,如果它离中心太远怎么能说这个分类是"不确定的" "?我也很好奇".transform(X)"函数在我适应它之后对我的数据做了什么.
python machine-learning pca scikit-learn linear-discriminant
我正在尝试使用Boost在Mac Yosemite上创建一个C++目录(使用Clang编译)(通过Macports安装Boost).这就是我的代码:
#include <boost/filesystem.hpp> // header at top of file
boost::filesystem::path path("/Users/u5305887/Desktop/ti"); // code in main function
boost::filesystem::create_directories( path );
Run Code Online (Sandbox Code Playgroud)
但是,当我编译它时,我收到以下错误:
架构x86_64的未定义符号:"boost :: filesystem :: detail :: create_directories(boost :: filesystem :: path const&,boost :: system :: error_code*)"
我一直在尝试谷歌这个错误,但我似乎找不到任何方法来解决它.我已经针对一些教程仔细检查了我的代码,无法看到我出错的地方.
我一直在努力训练一个神经网络来识别我有三种类型的标签(圆形,矩形和空白).我使用示例设置来识别这里提供的数字数据集,发现我得到了75%的正确预测率,几乎没有任何调整(假设我的图像有一定程度的预处理过滤器等).
我更感兴趣的是分类器部分(下面的代码).我不确定不同的卷积和图层选项是做什么的,以及我有什么选择来调整它们.有没有人对我可以用来尝试提高我的预测准确度及其含义的其他卷积或层有任何建议?对于含糊不清的道歉,这是我第一次触及NN并且正在努力解决这个问题.
nn = Classifier(
layers=[
Convolution('Rectifier', channels=12, kernel_shape=(3, 3), border_mode='full'),
Convolution('Rectifier', channels=8, kernel_shape=(3, 3), border_mode='valid'),
Layer('Rectifier', units=64),
Layer('Softmax')],
learning_rate=0.002,
valid_size=0.2,
n_stable=10,
verbose=True)
Run Code Online (Sandbox Code Playgroud)
python machine-learning neural-network scikit-learn scikit-image