前提・実現したいこと
ここに質問の内容を詳しく書いてください。
pythonを用いて、画像のhog特徴量を求める作業を行なっています。
その際、出力されるhog特徴量ベクトルの要素数が膨大(1601208)であるため、主成分分析(pca)を用いて1000程度の要素数への圧縮を試みているのですが、hog特徴ベクトルにそのままpcaを行うことができません。
どのようにすれば良いのでしょうか?
(hogおよびpcaに対する理解が十分ではないため、理解に誤りがあればご教授いただけると幸いです)
発生している問題・エラーメッセージ
ValueError: n_components=1000 must be between 0 and min(n_samples, n_features)=1 with svd_solver='full'
該当のソースコード
python
1import cv2 2from skimage.feature import hog 3from sklearn.decomposition import PCA 4 5read_file = "image/corporate_address/001_01.png" 6 7#グレースケールで画像読み込み 8image = cv2.imread(read_file, cv2.IMREAD_GRAYSCALE) 9 10#hog特徴量を計算、ベクトルを取得 11fd = hog(image, orientations=9, pixels_per_cell=(6, 6),cells_per_block=(6, 6), visualize=False) 12 13#ベクトルをreshape?(よく理解できていません) 14fd = fd.reshape(-1, 1) 15 16#pcaを行いたい 17pca = PCA(n_components=1000, svd_solver='full') 18pca.fit(fd) 19
試したこと
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
というエラーが発生したため、特徴量ベクトルにreshapeを実行
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。