🫠

CreateMLでマルチラベル分類をしようとしたら詰まった話

2024/05/16に公開

はじめに

趣味の開発でcreateMLを用いて多ラベル分類の検証を簡単に行おうとしていましたが、データを読み込む過程でハマってしまい3時間ほど時間を溶かしてしまいました。ググっても答えがパッと見当たらなかったので、備忘として残しておきます。

CreateMLによる機械学習(画像認識)のやり方は公式ドキュメントを参照して下さい。

前提条件

公式ドキュメントに準い、学習データのディレクトリ構成は以下とします。

train/
├── image1.jpg
├── image2.jpg
├── ...
└── annotations.json

問題

公式ドキュメントにおいては、多ラベル分類のアノテーションファイルの形式が以下のように示されていましたが、

annotations.json
[
    {
        "filename": "image1.jpg",
        "annotations": ["window_sill", "aloe", "pot"]
    },
    {
        "filename": "image2.jpg",
        "annotations": ["cactus", "pot", "person"]
    }
]

この形式でデータを読み込まそうとしても、以下のようにData Analysis stoppedと表示され、データが正常に読み込まれませんでした。

image.png

対応方法

正しくは、以下のようにfilenameimageに直すことで解決できました。

annotations.json
[
    {
        "image": "image1.jpg",
        "annotations": ["window_sill", "aloe", "pot"]
    },
    {
        "image": "image2.jpg",
        "annotations": ["cactus", "pot", "person"]
    }
]

以上のように変更すると、正常にデータを読み込むことができました。

image.png

まとめ

深層学習のモデル作成はpytorchやtensorflowでやるのが現状スタンダードだとは思いますが、GUIを用いたモデル作成はお手軽で楽しいのでぜひ一度は試してみてください。その時にデータがなぜか読み込まれない等の問題が発生した際にこの記事が参考になれば幸いです。

Discussion