プログラミングを中心に技術的な事柄を忘れないように書き残します。参考URL世界には同じような国旗が存在している世界には多くの国があり、いろいろな国旗がります。ご存知の通り国旗のデザインが非常に似通った国があります。次の例、2つの似た国旗ですがどの国のものかわかりますか?片方はスーダン、もう片方はクェートです。ほかにも似たような国旗の国はたくさんあります。わかりやすいのだとユニオンジャックが含まれる国旗でしょうか。国旗を機械学習の力でクラスタリングする似ている国旗をいろいろ集めてみたくなったので、機械学習の力をかりて国旗の画像データをクラスタリングしてみます。いうライブラリを使うとお手軽にできるのでこれを利用していきます。いうアルゴリズムを使用したいと思います。このアルゴリズムは以下のチートシートから選びました。国旗画像を集めるまずはともあれデータを収集しないといけません。Wikipedia)から国旗画像をダウンロードするなりして用意しておきます。私はpng形式の画像を用意しました。画像サイズはまちまちです。そもそも国旗には決められたサイズはなく、国旗によって縦横比も様々です。あとで無理やり整形するのでデータはそのままでOKです。14/上記のようなフォルダ構成を作っておきます。以下のフォルダに元画像をコピーします。以下に全部コピーしておきます。path)順にコードを解説していきます。国旗画像のサイズをそろえて保存する集めた画像はサイズがバラバラでそのままでは使えないので、同一サイズの画像データに変換します。サイズを200*100にしているのは大体2:1くらいの縦横比の国旗が多いからです。大きなサイズの画像だと処理に時間がかかったので、とりあえずこれくらいにしています。元画像はpngファイルだったのですが、データの次元数がうまくあわなかったので、一律jpgファイルに変換しています。以下に保存して、これをクラスタリングします。img_resize.save(f'./flag_convert/{path}.jpg')実際に変換された画像を見ればわかりますが、引き伸ばされたり縮小されたりで、縦横比が潰れていたりするものが多いです。いい感じに処理する方法もわからないので、これで妥協してますが、いい方法を知っている人がいれば教えてください。3))のデータになります。600))に変換します。-1).astype(np.float64)ここまででデータの準備は完了です。あとはライブラリで用意されている関数に流し込むだけです。学習(15種類のグループにクラスタリングする)今回使うアルゴリズム「k平均法」は、あらかじめいくつのデータにクラスタリングするか決めて置かなければなりません。今回は適当に15にしてます。指定しているのがそれです。学習結果のラベル学習が完了したら結果ラベルを受け取ります。同じラベルの画像は類似度が高いという判定です。中身はただの配列です。ラベルごとにフォルダ分け)最後に得られたラベルをもとに、似ている画像をフォルダにコピーしてまとめます。path)似ている国旗の判定結果15グループの国旗は次のようになりました。ユニオンジャック系イギリスの国旗ユニオンジャックを含む国旗たちはきれいに別れてました。代表的な国としては、オーストラリアやニュージーランドが挙げられます。フランス国旗(フランス領南方・南極地域)が混じっていますが、まあ確かに似ていると言えます。ユニオンジャック本体は別のグループに分かれる結果となりました。トリコロール的な三色縦割りの国旗(イタリア・フランスなど)のグループです。これもわかりやすいですね。白色が入っているとこのグループになるようです。トリコロールではない判定これも三色縦割りですが、上のグループとは別判定でした。赤系これは赤いので同じグループでしょうか。似ていないアメリカ国旗群アメリカ国旗が含まれるグループです。ユニオンジャックもここにありました。アメリカ国旗に似たものが含まれていますが、全体の印象としてはバラバラな感じです。国旗はあまり複雑な意匠が含まれていないことが多いので、このグループも確かにそういう意味では似ているといえそうです。全体的に青・緑系でまとまっています。ほとんどどの国の国旗なのかわかりません。日本の国旗を含むグループです。全体的に白の割合が多いようです。緑・白・青ファミマっぽい国旗は、シエラレオネです。3段の国旗これは縦に3段になっている国旗のグループです。赤黄色?色味的には近いものがありそうですが、あまり特徴的なグループではない気がします。今回ではこのグループが一番ぼんやりとしたグループでしょうか。なんとなく似ているが微妙なんとなく似ているような気もするグループです。白プラス横縞模様の国旗たちです。細いストライプほかのグループに比べて細い横縞が入っているといえる気がします。多くなったグループでした。緑系のいろいろですね。思いつきでやってみた割に、なんとなく形になっていてよかったです。パラメータや入力データを調整すれば、いい感じになるのかもしれません。お手軽に機械学習を試せますし、また何か思いついたら触ってみたいと思います。documentation以上。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.。