CreateMLでできることまとめ

# はじめに

CreateMLを使って誰でもAIを作って使えるようになりましょう！

自作AIをアプリに搭載する、と言えたらめっちゃかっこいいです。

# CreateMLとは

CreateMLとは、macで簡単にAIモデルを作成できるソフトです。

https://developer.apple.com/jp/machine-learning/create-ml/

どんなことができるかというと、以下のようなメニューがあります。

![スクリーンショット 2024-11-29 9.47.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823873/c90df18e-d36b-ec02-ea6e-72574b2e894d.png)

1.	画像分類（Image Classification）
2.	マルチラベル画像分類（Multi-Label Image Classification）
3.	物体検出（Object Detection）
4.	スタイル転送（Style Transfer）
5.	手のポーズ分類（Hand Pose Classification）
6.	アクション分類（Action Classification）
7.	手のアクション分類（Hand Action Classification）
8.	活動分類（Activity Classification）
9.	音分類（Sound Classification）
10.	テキスト分類（Text Classification）
11.	単語タグ付け（Word Tagging）
12.	表データ分類（Tabular Classification）
13.	表データ回帰（Tabular Regression）
14.	推薦（Recommendation）
15.	物体追跡（Object Tracking）

今回はこの中で特に扱いやすいものを取り上げます。

# 画像分類

**この画像に写っているのはゾウかキリンか？** みたいな分類をすることができます。

### 必要なデータセット

以下のようにラベル付けされた画像データセットが必要です。

```
dataset/
├── label1/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
├── label2/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
├── label3/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
...
```

ここで`label`が分類したいもの（ゾウ、キリンなど）、`image`が実際の画像です。

![スクリーンショット 2024-11-29 10.02.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823873/8d79393f-2db7-01e0-6fd9-3dc2ed9db711.png)

このようにデータを取り込んだら、`Train`ボタンを押すだけでトレーニングが完了します。

![スクリーンショット 2024-11-29 10.04.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823873/23023890-84b5-f307-616b-858653b1d5c7.png)

必要なら同じ形式のテストデータ、バリデーションデータも追加できます。

# 画像認識

この画像に含まれる複数のオブジェクトを認識し、それぞれの位置を特定することができます。

### 必要なデータセット

以下のようにラベル付けされた画像データセットが必要です。各画像には、認識したいオブジェクトの位置情報（バウンディングボックス）が含まれている必要があります。

```
dataset/
├── label1/
│   ├── image1.jpg
│   ├── image1.json
│   ├── image2.jpg
│   ├── image2.json
│   ├── ...
├── label2/
│   ├── image1.jpg
│   ├── image1.json
│   ├── image2.jpg
│   ├── image2.json
│   ├── ...
├── label3/
│   ├── image1.jpg
│   ├── image1.json
│   ├── image2.jpg
│   ├── image2.json
│   ├── ...
...
```

ここでlabelが認識したいオブジェクトの種類（例：車、人、動物など）、imageが実際の画像、jsonが各オブジェクトの位置情報を含むアノテーションファイルです。

### データセットの入手方法
Roboflow Universeというサイトがおすすめです。

https://universe.roboflow.com/

ここでは**CreateMLで使える形式でデータセットをダウンロード**できます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823873/0391c141-c316-9eed-4455-9b7d6ee487f0.png)

画像真ん中の**CreateML JSON**からダウンロードすることで、そのまま使えるデータセットが入手できます。神。

このようにデータを取り込んだら、Trainボタンを押すだけでトレーニングが完了します。

必要なら同じ形式のテストデータ、バリデーションデータも追加できます。

# ジェスチャー認識

手や体の動きなど、ジェスチャーを認識して分類することができます。

### 必要なデータセット

以下のようにラベル付けされたジェスチャー画像データセットが必要です。

```
dataset/
├── gesture1/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
├── gesture2/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
├── gesture3/
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── ...
...
```

ここでgestureが認識したいジェスチャーの種類（例：サムズアップ、ピースサインなど）、imageが実際のジェスチャー画像です。

このようにデータを取り込んだら、Trainボタンを押すだけでトレーニングが完了します。

必要なら同じ形式のテストデータ、バリデーションデータも追加できます。

# 音声分類

音声データを分類して、例えば異なる音声コマンドや環境音を識別することができます。

### 必要なデータセット

以下のようにラベル付けされた音声データセットが必要です。

```
dataset/
├── label1/
│   ├── audio1.wav
│   ├── audio2.wav
│   ├── ...
├── label2/
│   ├── audio1.wav
│   ├── audio2.wav
│   ├── ...
├── label3/
│   ├── audio1.wav
│   ├── audio2.wav
│   ├── ...
...
```

ここでlabelが分類したい音声の種類（例：犬の鳴き声、車の音声、音声コマンドなど）、audioが実際の音声ファイルです。

このようにデータを取り込んだら、Trainボタンを押すだけでトレーニングが完了します。

必要なら同じ形式のテストデータ、バリデーションデータも追加できます。

# まとめ

CreateMLを使うと簡単にAIが作れる上、それをSwiftで使うこともとても簡単です！ぜひみなさん使いましょう！