答えて

2

あまりにも広い質問です。

一般的には、clustering mechanismのいずれかを使用できます。人気のあるk-means。クラスタリングのためにデータを準備するには、コレクションを配列Xに変換する必要があります。すべての行は1つの例(イメージ)であり、すべての列はフィーチャです。

主な質問 - あなたの機能は何か。あなたが達成しようとしていることを知らずに答えるのは難しいです。画像が小さく、同じサイズの画像であれば、すべてのピクセルをフィーチャとして簡単に持つことができます。メタデータがあり、それを使用してソートする場合は、メタデータ内のすべてのタグをフィーチャとして持つことができます。

画像間にいくつかのパターンを実際に見つける必要がある場合は、convolutional neural networkのような追加の処理レイヤーを適用する必要があります。これは本質的に画像の異なる部分から特徴を抽出することを可能にします。あなたはそれをフィルタとして考えることができます。これはすべてのイメージを8x8行列に変換し、配列Xのクラスタ化のために64個の異なる機能を持つ行として使用できます。

+0

私は各クラスターを同じオブジェクト/シーンの写真で構成したい、つまり私は部屋の写真を3枚撮りましたが、ちょっと違う位置から写真を撮った写真は少なかったです。写真は完全には同じではありませんが、非常に似ています。 – alex

+0

この場合、深い学習(convnet)の深みを掘り下げる前に、簡単なアプローチを試してみることをお勧めします。私は、すべての画像からピクセルのマップを抽出するだけです。特に、それらはすべて同じサイズです。写真を白黒に変換すると、複雑さを軽減できます。次に、scikit-learnからk-meansを適用しようとします。その影響を見るためにクラスタ数を変更してください。しかし、ほとんどの場合、意味のある結果を得るために何らかのconvnetを適用する必要があります。私は段階的に動くことを提案しています。 – omdv

+0

実際、私はマホタの図書館を見てみることをお勧めします。これは、あなたのケースではうまく適用できます。 Link - http://mahotas.readthedocs.io/en/latest/features.html – omdv

関連する問題