「Azureで画像認識を使いたいけど、用意されているAI Visionだと“自社の独自ラベル”までは判定してくれない…」——そんな壁にぶつかっていませんか?
そのときに使うのが Azure Custom Vision です。結論から言うと、Custom Vision は 自分で用意した画像にラベルを付けて学習させ、“自分専用の画像AIモデル”を作れるサービス。しかも機械学習の知識がなくても、ブラウザ上でノーコードで作れます。

自社製品の型番を写真で見分けたいんだけど、既製のAIだと全然当たらない…。かといって機械学習なんて分からないし、料金も心配…
この記事では、そんな人に向けて Custom Vision で何ができるのか、ノーコードでの使い方(プロジェクト作成→学習→公開)、料金の考え方、そして 学習したモデルをスマホやエッジ端末に組み込む方法(エクスポート) までを、順番に解説します。この記事を読めば、次のことが分かります。
- Custom Vision とは何か(Azure AI Visionとの違いも要点だけ)
- できること:画像分類 と 物体検出 の2モード
- 使い方:customvision.ai でプロジェクト作成→画像アップ→タグ付け→トレーニング→公開
- 料金:トレーニング時間・予測回数・画像ストレージの3つで決まる従量課金
- エクスポート:ONNX / TensorFlow / CoreML でオフライン・エッジ推論、iOS/Androidへ組込
【最初に重要な注意】Microsoft は Azure Custom Vision の提供終了(リタイア)を予告しています。既存ユーザーへのサポートは 2028年9月25日まで継続されますが、新規で作るなら代替の検討が推奨されています(詳しくは記事後半の「提供終了と移行先」で解説します)。まずはサービスの全体像から見ていきましょう。
Azure Custom Visionとは?(自分専用の画像AIを育てるツール)
Azure Custom Vision は、ユーザー自身が用意した画像にラベル(タグ)を付けて学習させ、独自の画像認識モデルを作れるサービスです。Microsoftがあらかじめ学習済みの汎用モデルを提供するのではなく、「あなたのデータで、あなた専用のAI」を育てるのがポイントです。
仕組みはシンプルです。「この画像はA」「こっちはB」という正解ラベル付きの画像をアップロードすると、Custom Vision の学習アルゴリズムがその特徴を学び、新しい画像を見せたときに「これはAっぽい」と判定できるようになります。うれしいのは、1ラベルあたり50枚程度の少量の画像からでも試作を始められること。大量の教師データやGPU環境を自前で用意しなくても、ブラウザだけでモデルが作れます。
操作は、Web UIの Custom Vision ポータル(customvision.ai) 上でノーコードで完結します。もちろん REST API や SDK からも扱えるので、プロトタイプはポータルで、本番はコードで、という使い分けも可能です。
Custom VisionとAzure AI Visionの違い
Azureの画像系サービスでいちばん混同されるのが、Custom Vision と Azure AI Vision(旧Computer Vision) の違いです。ひとことで言うと、こうです。
- Azure AI Vision=Microsoftが学習済みの汎用モデル。学習不要で、OCRや一般的な物体・シーンの認識がすぐ使える。
- Custom Vision=自分で学習させる専用モデル。汎用モデルでは当たらない“独自の分類”を作りたいとき用。
| 項目 | Custom Vision | Azure AI Vision(旧Computer Vision) |
|---|---|---|
| モデル | 自分で学習させる専用モデル | 学習済みの汎用モデル |
| 学習データの用意 | 必要(画像+ラベル付け) | 不要 |
| 得意なこと | 自社製品・不良品など独自カテゴリの判定 | OCR・一般的な物体/シーン認識 |
| オフライン利用 | ◯(モデルをエクスポート可) | コンテナで一部可能 |
| 始めやすさ | 画像を集めて学習する手間がある | APIを叩くだけ |
選び方の基準は明確です。汎用の認識で足りるならAI Vision、独自ラベルの判定が必要ならCustom Vision。両者の関係や、そもそも「Computer Visionとの名前の違い」でつまずいている場合は、次の記事で詳しく整理しています。
▶ Azure AI VisionとCustom Visionの違い・Azure AI Visionの使い方はこちらで詳しく解説しています
Custom Visionでできること:画像分類と物体検出の2モード
Custom Vision で作れるモデルは、大きく 「画像分類(Classification)」 と 「物体検出(Object Detection)」 の2種類です。プロジェクト作成時にどちらかを選びます。目的に合わせて使い分けましょう。
| モード | 何をする? | 返ってくるもの | 向いている用途 |
|---|---|---|---|
| 画像分類 | 画像全体に1つ(または複数)のラベルを付ける | 「この画像はAである確率90%」などのタグ | 製品カテゴリ判定、良品/不良品の仕分け |
| 物体検出 | 画像の“どこに”対象があるかを検出する | ラベル+その位置(バウンディングボックスの座標) | 棚の中の特定商品を数える、部品の位置検出 |
画像分類(Classification)
画像分類は、「この写真は何か」を画像全体に対してラベル付けするモードです。たとえば「りんご/みかん/ぶどう」の3ラベルで学習させれば、新しい果物の写真を投げると「りんご 92%」のように判定してくれます。1枚に1ラベルのマルチクラスと、1枚に複数ラベルを許すマルチラベルを選べます。
物体検出(Object Detection)
物体検出は、「対象が画像のどこにあるか」まで返すモードです。ラベルに加えて位置(枠の座標)が得られるので、1枚の画像の中に複数の対象があっても、それぞれを個別に検出・カウントできます。棚割り分析や在庫カウント、製造ラインでの部品位置チェックなどに向いています。タグ付けの際は、画像内で対象を四角い枠で囲ってラベルを付ける作業が必要になります。

「何が写ってるか」だけ知りたいなら画像分類、「どこに・いくつあるか」まで知りたいなら物体検出、って覚えればいいんだね。
Custom Visionの使い方(ノーコードで学習させる手順)
ここからは実際の使い方です。基本の流れは、customvision.ai でプロジェクトを作る → 画像をアップして → タグ付け → トレーニング → テスト → 公開 の6ステップ。コードは一切書きません。全体像を先に押さえましょう。
Custom Vision の作成フロー
├─ STEP1 リソース作成(Azureポータル / Custom Vision)
├─ STEP2 プロジェクト作成(分類 or 物体検出を選ぶ)
├─ STEP3 画像アップロード&タグ付け(1ラベル50枚〜が目安)
├─ STEP4 トレーニング(Trainボタンを押すだけ)
├─ STEP5 テスト(Quick Testで新しい画像を判定)
└─ STEP6 公開(Publish → 予測エンドポイント/キーを取得)
STEP1. リソースを作成する
まず、AzureポータルまたはCustom Visionポータルから Custom Vision のリソースを作成します。Custom Vision では、トレーニング用(Training) と 予測用(Prediction) の2つのリソースが使われるのが特徴です。ポータルからプロジェクトを作る際に、この2つをまとめて作成できます。価格レベルはお試しなら F0(無料枠)を選びましょう。
STEP2. プロジェクトを作成する
Custom Vision ポータル(customvision.ai) にサインインし、「New Project」からプロジェクトを作成します。ここで設定する主な項目は次のとおりです。
- Project Types:
Classification(画像分類)かObject Detection(物体検出)を選ぶ - Classification Types(分類の場合):
Multiclass(1画像1タグ)かMultilabel(1画像に複数タグ) - Domains:用途に合ったドメインを選ぶ(一般用途は
General。スマホ等にエクスポートするならGeneral (compact)など“compact”ドメインを選ぶ)
ここが地味に重要です。あとでモデルをスマホやエッジ端末にエクスポートしたい場合、compactドメインで作っておかないとエクスポートできません。迷ったら最初からcompactを選んでおくと後戻りが減ります(後から変更して再トレーニングも可能です)。
STEP3. 画像をアップロードしてタグ付けする
「Add images」から学習用の画像をアップロードし、ラベル(タグ)を付けます。目安は1ラベルあたり50枚以上。枚数が増えるほど、また被写体の角度・背景・明るさにバリエーションがあるほど精度が上がりやすくなります。
- 画像分類:画像を選んでタグ名を入力するだけ
- 物体検出:画像内の対象を四角い枠で囲ってタグを付ける(1画像に複数の枠もOK)
Custom Vision は「違いが大きいものを素早く見分ける」のは得意ですが、ごく微妙な差(微細なキズやへこみなど)の判別は苦手とされています。そうした厳密な品質検査用途では、期待した精度が出ないことがある点は頭に入れておきましょう。
STEP4. トレーニングする
画像とタグが揃ったら、右上の 「Train」ボタンを押すだけ。学習が終わると、そのモデル(Iteration=反復)の 精度指標(Precision / Recall / mAP) が表示されます。ざっくり言うと、Precisionは「正解と言ったもののうち本当に正解だった割合」、Recallは「本来正解のうち拾えた割合」です。数値が低ければ、画像を追加して再トレーニングします。
STEP5. テストする
学習が済んだら、「Quick Test」から学習に使っていない新しい画像を投げて、判定結果を確認します。ここで納得のいく精度が出れば次のステップへ、いまいちなら STEP3〜4 に戻って画像を足す、という改善ループを回します。
STEP6. 公開(Publish)して予測エンドポイントを取得する
満足のいくモデルができたら、対象のIterationを 「Publish」 して予測用に公開します。公開すると、アプリから呼び出すための 予測エンドポイントURL と 予測キー が発行されます。あとはこれを使って、REST APIやSDKから画像を投げれば判定結果が返ってきます。
Python SDKで予測を呼ぶ最小イメージは次のとおりです(<...> は自分の値に置き換えてください)。
# pip install azure-cognitiveservices-vision-customvision
from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
from msrest.authentication import ApiKeyCredentials
# STEP6で取得した予測エンドポイントとキー
ENDPOINT = "https://<リソース名>.cognitiveservices.azure.com/"
PREDICTION_KEY = "<予測キー>"
PROJECT_ID = "<プロジェクトID>"
PUBLISHED_NAME = "<公開時に付けたIteration名>"
credentials = ApiKeyCredentials(in_headers={"Prediction-key": PREDICTION_KEY})
predictor = CustomVisionPredictionClient(ENDPOINT, credentials)
# ローカル画像で分類を実行
with open("test.jpg", "rb") as image:
results = predictor.classify_image(PROJECT_ID, PUBLISHED_NAME, image.read())
# 予測タグと確率を出力
for prediction in results.predictions:
print(prediction.tag_name, f"{prediction.probability:.1%}")
物体検出モデルの場合は、classify_image の代わりに detect_image を使い、返り値にラベルと枠の座標(bounding box)が含まれます。
Custom Visionの料金!無料プランと従量課金の考え方
Custom Vision の料金は、Azure AI Vision(画像1枚いくら)とは少し考え方が違い、3つの軸で決まります。まずはここを押さえましょう。
- ①予測(Prediction):作ったモデルで画像を判定する回数(1,000トランザクション単位で課金)
- ②トレーニング(Training):モデルを学習させる時間(コンピューティング時間単位で課金)
- ③画像ストレージ:学習用にアップした画像の保管(1,000枚単位で課金)
【重要】料金は改定されることがあります。この記事の数値はあくまで目安です。契約前・見積もり時には必ず Azure公式のCustom Vision料金ページ で最新の金額を確認してください。
料金の早見表(プラン別)
| プラン | 予測 | トレーニング | 画像ストレージ | 向いている人 |
|---|---|---|---|---|
| Free(F0) | 月あたり一定回数まで無料 | 一定時間まで無料 | 一定枚数まで無料 | お試し・学習・PoC |
| Standard(S0) | 1,000回あたり課金 | コンピューティング時間あたり課金 | 1,000枚あたり課金 | 本番運用 |
ざっくりした桁感で言うと、試作段階は無料枠(F0)でほぼ収まるケースが多いです。無料枠にはプロジェクト数・トレーニング時間・予測回数・保存画像数それぞれに上限があり、それを超えて本番運用する段階で S0(有料) に切り替えます。
結局いくら? 費用が決まるポイント
Custom Vision のコストで見落としがちなのが ②トレーニング時間 と ③画像ストレージ です。予測回数だけ気にしていると想定外に膨らむことがあります。費用を抑えるコツはシンプルです。
- 無駄な再トレーニングを繰り返さない(学習は時間課金。画像を十分に集めてからまとめて学習する)
- 予測回数の見込みを立てる(
月の判定回数 ÷ 1,000 × 単価で試算) - 本番運用は、モデルをエクスポートしてローカル推論にすれば、予測トランザクション課金を抑えられる(次章)

予測回数だけじゃなく、学習時間と画像の保管でもお金がかかるんだね。まずはF0で作って、本番前に公式の料金で試算しておこう。
モデルをエクスポートしてエッジ・オフラインで動かす
Custom Vision の大きな強みが、学習したモデルをファイルとしてエクスポートし、端末上(オフライン)で動かせることです。クラウドに毎回問い合わせないので、通信不要・低遅延・予測課金を抑えられるというメリットがあります。工場のラインやスマホアプリなど、リアルタイム性が求められる現場で有効です。
エクスポートできる主な形式と対象プラットフォームは次のとおりです。
| エクスポート形式 | 主な対象プラットフォーム |
|---|---|
| CoreML | iOS 11以降 |
| TensorFlow | Android |
| TensorFlow.js | React / Angular / Vue などJS(Android・iOS両対応) |
| ONNX | Windows ML / Android / iOS |
| Dockerコンテナ | Windows / Linux / ARM(TensorFlowモデル+APIコードを同梱) |
| Vision AI Dev Kit | 専用エッジデバイス |
エクスポート手順は、Performanceタブ →「Export」 から使いたい形式を選んでダウンロードするだけです。ただしエクスポートできるのは「compactドメイン」で作成・学習したモデルだけという制約があります。もし通常ドメインで作ってしまった場合は、プロジェクト設定(歯車アイコン)からcompactドメインに変更し、再トレーニングすればエクスポートできるようになります。compactモデルは通常ドメインよりわずかに精度が下がることがある点は理解しておきましょう。
たとえばiOSアプリなら CoreML、AndroidならTensorFlow、汎用ならONNX、というふうに組み込み先に合わせて選べば、スマホ単体で動く画像認識アプリが作れます。
【重要】Custom Visionの提供終了と移行先
冒頭でも触れたとおり、Microsoft は Azure Custom Vision の提供終了(リタイア)を予告しています。ポイントを整理します。
- 既存ユーザーへのフルサポートは 2028年9月25日まで継続
- その期間中に、代替ソリューションへの移行を進めることが推奨されている
- 公式の 移行ガイド(
aka.ms/custom-vision-migration)が用意されている
Microsoftが案内している主な移行先は次のとおりです。
| 移行先 | ざっくりした位置づけ |
|---|---|
| Azure Machine Learning AutoML | 画像分類・物体検出の両方を、従来型の機械学習でカスタム学習できる。Custom Visionに最も近い代替 |
| Foundry Models(生成AI) | Foundryのモデルカタログを使い、プロンプト等で独自の画像判定を組む |
| Azure Content Understanding(プレビュー) | マネージドな生成AIで画像分類ワークフローを作れる。画像/文書/音声/動画を横断して構造化 |
結論として、学習目的やPoCで“今すぐ手を動かして仕組みを理解する”ならCustom Visionは今も有用です。ただしこれから長期運用する本番システムに新規採用するなら、AutoMLなどの移行先を最初から検討するのが安全です。採用前に必ず公式の最新情報と移行ガイドを確認しましょう。
つまずきポイント
- エクスポートできない:通常ドメインで作っているのが原因。compactドメインに変更して再トレーニングする
- 精度が上がらない:1ラベルの枚数不足か、画像のバリエーション不足。角度・背景・明るさを変えた画像を足す
- 微細な差を判別できない:Custom Visionは微妙な違い(小さなキズ等)の検出は苦手。用途を見極める
- 予測が401エラー:トレーニングキーと予測キーの取り違えが多い。予測には「予測エンドポイント+予測キー」を使う
- 想定より料金が高い:再トレーニングの繰り返し(時間課金)や画像保存が効いていないか確認。本番はエクスポートも検討
まとめ
最後に、この記事のポイントを整理します。
- Custom Vision=自分専用の画像AIを育てるサービス。汎用のAI Visionで当たらない“独自ラベル”の判定に使う
- 2つのモード:画像分類(何が写っているか)/物体検出(どこに・いくつあるか)
- 使い方は customvision.ai で「プロジェクト作成→画像アップ→タグ付け→Train→テスト→Publish」。ノーコードで完結
- 料金は「予測回数・トレーニング時間・画像ストレージ」の3軸。まずF0で試し、本番前に公式で試算
- エクスポート(CoreML/TensorFlow/ONNX等)でスマホ・エッジでもオフライン推論できる(compactドメイン必須)
- 提供終了は2028/9/25。新規の本番採用はAutoML等の移行先も検討する
Custom Vision は、機械学習の知識がなくても“自分だけのAIモデル”を作れるのが最大の魅力です。まずは無料枠(F0)で、身近なもの(社内の備品や商品など)を数十枚集めて学習させてみると、画像AIの仕組みが一気に腹落ちします。
あわせて読みたい:

