欲しいバッグが色で探せるサイトを作りましたよ。
はいはい、kihiroです。
そんなこんなで、見た目は先日のとほぼ同じなんですが、別のサービスを作りました。
今回は、「バッグを色で選べる」って趣旨のサイトです。
これは、身近に、そういうニーズを持った人がいたことが始まりとなってオリマス。
「あー、バッグとか、欲しい色でだーっと並べて、ずーっと眺めてたいワー」みたいな話。
楽天の商品画像から適当にサンプルの点を抽出し、その色を調べるという方法で判定しています。
画像の色分析とか、大変なのかナーと思っていたら、そうでもなかった。
PHPには、imagecoloratとかいう、そのままじゃーん的な便利な関数がございまして。
でも、アレですわ。
むかしむかしにアルゴリズムの勉強とかして、国家資格も取りましたけど。
プログラミング自体は好きくないんですが、PHPは、(多少だが、)タノシイね。
なんつーか、HTMLの適当なところにガシガシ入れていけるし、サーバーにあげてそのまま実行できちゃうトコロも悪くない。
まぁ、本来はサーバーのうえでテストみたいなことすんな的な話もあるんでしょうが。
別にたいしたスクリプトでもないんで、どーでもいいでしょう。
それと、WEBでやることなら、自分のやりたいことに少しは繋がっているというトコロがあるんでしょうな。
プログラミングの本を買ってきて、分かったような分からないようなゲームとかを、本を見ながらそのまま入力して実行させても、プログラミングの勉強になんぞなりません、わな。
いや、なる人もいるんでしょうが、個人的には、ならなかった。
という話。
つまりは、プログラミングを学ぶなら、自分が作りたいものがあって、そこから泥縄式に学ぶのがオススメです。
ある程度の基本を、ざっと学んだら、ね。
てな感じですが、今回のサイトの色の判定については、ハッキリ言って、さほどうまく行ってません。
RGBで色の遠い近いを判断すると、人間の感覚とはかなり違うのらしく。
なので、最初はHSVとかいう色空間を使ってみました。
RGBからHSVに変換をしてから、色の近さを計算して、どの色に近いかを判断するという感じの手順です。
しかし、これもまたイマイチだったので、最終的にはLABという色空間を使いました。
LABへの変換は、ワンクッションある感じで、計算量としては多くなるみたいでしたが。
参考にしたのは、この辺とかこの辺。
ただ、ホントにいくつかの点を見ているだけなので、それなりの計算量で何とかなっているようです。
しかし、バッグはだいたいココらへんに写ってるだろう、っつー感じで適当に抽出したサンプルから判断しています。
ので、サンプルにした点の色がバッグの色でない場合も結構あって、そうなると全然ダメダメな結果になってしまいます。
実際、バッグが真ん中にバーン!と写っているのが多いのですが、モデルさんがバッグを持って写っているようなのも、それなりにあるワケでありまして。
そうなると、「このバッグは白っしょ」と判定しているものでも、ただ背景が白いだけみたいなものもあります。
まぁ、そこいらはご愛嬌。
また、色空間を均等に分割するような分け方をしているワケではないので、マギレがヒドい部分もあるみたいデス。
オレンジに黄色が混じってて、黄色が黄緑と混じってる、みたいな感じで。
けど、まぁ、大体でイイでしょ。
そもそも、どのくらいのニーズがあるかも不明なので、とりあえず公開することとしました。
より手を加えるとすれば、まずは色の判定についてチューニングすることになるでしょう。
あとは、画像からバッグの位置を認識するロジックを入れる、なんてーのもアリかもしれません。
いま流行りのディープラーニングなんぞを使っちゃったりなんかしちゃったりして、さ。
ディープラーニングは、学習部分は遅いけど、判定自体は、それほど重くはないだろうと思うので、いいかも。
知らんけど。
テキトー言ってるけど。
たぶん、そう。
⇒ 欲しいアイテムが色で探せる「コノイロ・ネット」(konoiro.net):バッグ