For the complete documentation index, see llms.txt. This page is also available as Markdown.

画像を管理

REST API と Python SDK を通じて、個々の画像をアップロード、アノテーション、検査、タグ付け、削除します。

概要

Roboflow では、REST API と Python SDK を通じて、プロジェクト内の個々の画像をアップロード、アノテーション、検査、タグ付け、削除できます。バルクのデータセットアップロードフローよりも細かな制御が必要な場合は、これらの操作を使用してください。たとえば、ストリームから 1 画像ずつアップロードする、後からアノテーションを付ける、画像メタデータやタグを更新する、といった場合です。ラベル付きデータセット全体を一度にまとめてインポートするには、次を参照してください データセットをアップロード.

HTTP API

REST API は、画像とアノテーションのアップロード、画像詳細の取得、画像の削除、画像タグとメタデータの管理のための画像ごとの操作を提供します。

画像をアップロード

REST API を使用して、ローカルファイルまたは URL から画像をアップロードします。

パラメータ

API が受け付けるクエリ文字列パラメータ:

api_key:https://app.roboflow.com/account/api から取得してください image:[任意] 追加する画像の URL。画像が別の場所でホストされている場合に使用します(リクエスト本文で base64 エンコード済み画像を POST しない場合は必須)。 name:[任意] 画像のファイル名(未設定の場合は推測を試みます)。 batch:[任意] この名前のバッチに画像をまとめます tag:[任意] 複数回指定できます。アップロードした画像にタグを追加します。 split:[任意] train、valid、test のいずれか(デフォルトは train)。 sequence_number:[任意] データセット内の画像の順序を保持したい場合、アップロードした画像に昇順のシーケンス番号を付けられます。 sequence_size:[任意] シーケンス内の画像総数。未設定の場合のデフォルトは 100,000 です。 inference_id:[任意] Roboflow の推論検出から返される inference ID。これにより、画像を Model Monitoring(エンタープライズ機能)内の Roboflow の検出結果と関連付けられます。

Linux または macOS

という名前のローカルファイルをアップロードする YOUR_IMAGE.jpg multipart/form-data を使用して(推奨):

curl -F name=YOUR_IMAGE.jpg -F split=train \
-F file=@YOUR_IMAGE.jpg \
"https://api.roboflow.com/dataset/YOUR_DATASET_NAME/upload?\
api_key=$ROBOFLOW_API_KEY"

別の方法として、base64 エンコード済み画像をアップロードします:

base64 -i YOUR_IMAGE.jpg | curl -d @- \
"https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
name=YOUR_IMAGE.jpg&\
split=train&\
batch=BATCH_NAME_FOR_UPLOAD"

Web 上にホストされた画像を URL 経由でアップロードする場合(忘れずに URL エンコードしてください):

curl -X POST "https://api.roboflow.com/dataset/your-dataset/upload?\
api_key=$ROBOFLOW_API_KEY&\
image=https%3A%2F%2Fi.imgur.com%2FPEEvqPN.png&\
name=201-956-1246.png&\
split=train"

Windows

インストールする必要があります Windows 用 curlGNU の Windows 用 base64 ツール。これを行う最も簡単な方法は、 Git for Windows インストーラー には次も含まれます: curlbase64 インストール時に「コマンド プロンプトから Git とオプションの Unix ツールを使用する」を選択すると、コマンドラインツールも含まれます。

その後は上記と同じコマンドを使用できます。

Node.js

この例では axiosform-data この例で POST リクエストを実行するために使用するので、まず npm install axios form-data 依存関係をインストールしてください。

multipart/form-data を使用してアップロード(推奨):

base64 エンコード済み画像を使用してアップロード(非推奨):

URL 経由で別の場所にホストされた画像を追加

Web

現在ベータテスト中です roboflow.js、ブラウザベースの JavaScript ライブラリで、これには他にも、秘密の API キーを Web に公開せずに安全にクライアントサイドアップロードを行う機能などが含まれます。先行アクセスをご希望の場合は、 お問い合わせください.

Swift

iOS 向けの開発で Swift を使用したアップロード用スニペットの例です。

}

Kotlin

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

Android(Java)

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

Ruby

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

PHP

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

Go

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

.NET

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

Roboflowでアップロードされた画像を表示

API経由でアップロードされた画像は、 Annotate タブの 未割り当て 列にあり、 uploaded via API.

としてマークされています。 batch uploadパラメータを指定した場合でも、画像は引き続き Annotate タブに表示されますが、 uploaded via API バッチではなく、指定したバッチに入ります。

注釈をアップロードする

画像とともに既存の注釈がある場合、それらをRoboflowにアップロードできます。

ご存じですか? APIを使わずに、アプリのアップロードページで画像と一緒に注釈ファイルをドラッグ&ドロップ(または選択)できます。

追加 prediction=true を追加すると、注釈を正解データではなくモデル予測として保存できます。画像がまだアップロードバッチ内にあり、まだ注釈ジョブに入っていない場合、RoboflowはそのバッチのReviewジョブに移動します。

追加 predictionRouting=unassigned を使うと、その移動をスキップできます。注釈は保存され、画像も注釈済みとしてマークされますが、バッチ内に残り、未割り当てのままです。 predictionRouting=review を使うと、デフォルトのルーティングを指定できます。両方の値には prediction=trueが必要で、 jobName.

次を添付する VOC XML注釈 をID abc123your-dataset というデータセットに YOUR_ANNOTATION.xml:

次を添付する Darknet TXT注釈 をID abc123your-dataset というデータセットに YOUR_ANNOTATION.txt jsonラベルマップを使用しています。この場合、注釈ファイルの内容を、そのまま本文として送るのではなく、jsonで送信する必要があります。

この例では axios この例で POST リクエストを実行するために使用するので、まず npm install axios 依存関係をインストールしてください。

ローカル画像をアップロードする

Kotlin

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

Android(Java)

base64 エンコード済み画像を使用してアップロード:

URL 経由で別の場所にホストされた画像を追加:

画像の詳細を取得する

REST APIを使用して、特定の画像の詳細を取得できます。

特定の画像の詳細を取得するには、次のAPIエンドポイントにGETリクエストを送信します。

以下は、画像の詳細を取得するためのAPIリクエストの例です

このエンドポイントは、画像に関する以下の情報を含むJSONオブジェクトを返します:

データセットから画像を削除する

REST APIを使用して、データセットから画像を削除できます。

データセットから画像を削除するには、次のAPIエンドポイントにDELETEリクエストを送信し、エンドポイントに画像IDを渡します。

以下は、画像を削除するためのAPIリクエストの例です

このエンドポイントは、操作が成功すると204ステータスを返します。

画像タグの一覧取得、追加、削除

REST APIを使用して、Roboflow上の特定の画像にタグを付けることができます

Roboflowでホストされている画像にタグを追加、削除、設定するには、次のAPIエンドポイントにPOSTリクエストを送信します。画像名に関連付けられた画像IDを取得するには検索APIを使用します:

以下はAPIリクエストの例です(タグの"add"、"remove"、"set"が可能です):

このエンドポイントは、POST本文で次の値を受け付けます:

APIは、Roboflow内の指定した画像にタグを追加します(POSTリクエストには画像名ではなく画像IDを渡すことを忘れないでください)。

画像メタデータとタグを更新する

REST APIを使用して、ワークスペース内の画像にカスタムメタデータとタグを書き込むことができます。エンドポイントは2つあります。1つは単一画像を同期的に更新するもの、もう1つは最大1,000枚の画像をバッチで更新するものです。

どちらのエンドポイントも、 image:tag スコープを持つAPIキーが必要です。

リクエスト本文

どちらのエンドポイントも同じフィールドを受け付けます(バッチエンドポイントはそれらを updates 配列にまとめます):

これらのフィールドのうち少なくとも1つを含める必要があります。同じリクエスト内で、同じメタデータキーまたはタグを設定と削除の両方に使うことはできません。 _rf_internal_ で始まるメタデータキーはRoboflow用に予約されており、拒否されます。

単一画像

単一画像のメタデータとタグを更新します。

レスポンス

バッチ更新

複数画像のメタデータとタグを非同期で更新します。1回のリクエストで最大1,000枚まで受け付けます。

レスポンス

返される内容 202 task ID付きで返されます。進捗を確認するにはタスクURLをポーリングしてください。

参照 Async Tasks でタスク状態をポーリングする方法を確認してください。

エラー

Python SDK

Project は、バルクの upload_dataset フローを補完する、画像ごとの操作を提供します。単一画像のアップロードをより細かく制御したいとき、後から注釈を付けたいとき、またはストリームから1枚ずつ画像を取り込みたいときに使います。

画像をアップロードする(任意の注釈付き)

Project.upload() は、最上位の「適切にやってくれる」ヘルパーです。単一画像と任意の対応する注釈ファイルを受け取り、両方を1回の呼び出しでプロジェクトに送信します。

single_upload() は、同じ引数を受け取り、画像と(指定した場合は)注釈の両方について生のAPIレスポンスを返す、低レベル版です。

画像のみをアップロードする

注釈がまだ存在しない場合や、画像をそのままラベラーに渡す場合に便利です。

アップロード前に画像を検証する

check_valid_image() は、APIにアクセスせずにRoboflowのローカルなサイズ/形式チェックを実行します:

既存の画像に注釈を添付する

save_annotation() プロジェクト内にすでにある画像に対してアノテーションを投稿します。別の場所で作成したラベルを追加したり、モデルの予測を正解データに昇格させたりするのに便利です。

指定してください annotation_labelmap="./labelmap.yaml" アノテーション形式で必要な場合は、クラスインデックスをクラス名にマッピングするために使用します。

〜で保存すると is_prediction=True 画像をレビュージョブへ移動できます。参照: 予測が配置される場所.

画像のメタデータを取得する

画像のメタデータ、現在の分割、アノテーションの状態を返します。

画像を削除する

プロジェクト単位(このプロジェクトに属する画像のみを削除します):

ワークスペース単位(どのプロジェクトから参照されていても画像を削除します。注意して使用してください):

v1.3.6以降のアップロードに関する注意

roboflow roboflow 1.3.6では、SDKはPillowで再エンコードするのではなく、元の画像バイト列をアップロードします。これによりWebアップローダーとの整合性が戻り、RoboflowサーバーはSHA-256によってアップロードを重複排除できるようになります。同じ画像を2回アップロードする自動化処理がある場合(たとえば複数のバッチに追加するため)、2回目のアップロードは追加のストレージクレジットを消費せずに成功します。

CLI

CLIを使用して、1枚の画像と、任意のアノテーション、タグ、またはメタデータをアップロードします。

オプション

フラグ
説明

-p, --project

プロジェクトID(必須)

-a, --annotation

アノテーションファイルへのパス

-m, --labelmap

ラベルマップファイルへのパス

-s, --split

データセットの分割: train, valid、または test。デフォルトは train.

-t, --tag

カンマ区切りのタグ名

-M, --metadata

JSON文字列としてのメタデータ

--is-prediction

アップロードを予測としてマークします

-b, --batch

バッチ名

アノテーション付きで画像をアップロードする:

タグとメタデータ付きで画像をアップロードする:

ディレクトリまたは .zip アーカイブについては、参照してください データセットをアップロード.

最終更新

役に立ちましたか?