すべてのプロダクト
Search
ドキュメントセンター

Image Search:画像のアップロード

最終更新日:Jan 19, 2025

このトピックでは、Image Search に画像をアップロードする方法について説明します。

背景情報

Image Search では、画像をアップロードする方法として、API 操作を呼び出す方法と Image Search SDK を使用する方法の 2 つが用意されています。 バッチ操作機能を使用すると、Object Storage Service (OSS) から Image Search に複数の画像を一度にアップロードすることもできます。

  • 少数の画像のみをアップロードする場合は、Image Search API または Image Search SDK を使用することをお勧めします。 詳細については、「画像の追加」をご参照ください。

  • エンタープライズ ユーザーの場合、または OSS バケットに保存されていない複数の画像を一度にアップロードする場合は、ossimport を使用して画像を OSS にインポートしてから、Image Search にアップロードできます。 詳細については、このトピックの「手順」セクションをご参照ください。

  • エンタープライズ ユーザーの場合、または OSS バケットに保存されている複数の画像を一度にアップロードする場合は、バッチ操作機能を使用できます。 詳細については、「バッチ操作の実行」をご参照ください。

    重要

    Image Search のバッチ操作機能を使用する前に、OSS バケットと Image Search インスタンスが同じリージョンにあることを確認してください。

ossimport の概要

Ossimport は、OSS が提供する、OSS にデータを移行するためのツールです。 オンプレミスのマシンまたは Elastic Compute Service (ECS) インスタンスに ossimport をデプロイして、サーバーまたは他のクラウドストレージ システムから OSS にデータを移行できます。

Ossimport には、画像のアップロードに関して次の利点があります。

  • 画像を画像検索エンジンにすばやく更新できます。

  • 開発プロジェクトやオンライン プロジェクトなど、異なるプロジェクトで同じ OSS バケットを使用できます。

  • ビジネス要件に基づいて、さまざまな画像ソースを整理および管理できます。

  • 開発プロジェクトやユーザー受け入れテスト (UAT) プロジェクトなど、複雑なプロジェクトを簡単に管理できます。

  • 一度に多数の画像をアップロードできます。 アップロードされた画像は、さまざまなシナリオで再利用できます。 これにより、ネットワーク帯域幅を最大限に活用できます。

  • 画像検索サービスの管理を標準化できます。

画像の制限

  • 画像のサイズは最大 4 MB です。

  • 画像の長さと幅は 100 ピクセルより大きく、4,096 ピクセル以下である必要があります。

手順

ステップ 1: ossimport をダウンロードする

ossimport は、スタンドアロン デプロイメント モードと分散デプロイメント モードをサポートしています。

  • スタンドアロン デプロイメントは、サイズが 30 TB 未満のデータの移行に適しています。 移行するデータと、データを移行する OSS バケットにアクセスできるマシンに ossimport をデプロイできます。 スタンドアロン モードで ossimport をデプロイするには、[スタンドアロン パッケージ] をダウンロードします。

  • 分散デプロイメントは、サイズが 30 TB を超えるデータの移行に適しています。 移行するデータと、データを移行する OSS バケットにアクセスできる複数のマシンに ossimport をデプロイできます。 分散モードで ossimport をデプロイするには、[分散パッケージ] をダウンロードします。

説明

大量のデータの移行に必要な時間を短縮するには、OSS バケットと同じリージョンにある ECS インスタンスに ossimport をデプロイすることをお勧めします。 その後、Express Connect 回線を使用して、ソースデータを保存するサーバーを Virtual Private Cloud (VPC) に接続できます。 内部ネットワーク経由で ECS インスタンスから OSS にデータを移行すると、移行効率が大幅に向上します。

ステップ 2: OSS をアクティブ化する

詳細については、「OSS のアクティブ化」をご参照ください。

ステップ 3: OSS バケットを作成する

詳細については、「バケットの作成」をご参照ください。

説明

OSS バケットと Image Search インスタンスが同じリージョンにあることを確認してください。

ステップ 4: increment.meta ファイルを作成する

画像が保存されている OSS バケットに increment.meta ファイルを作成します。 このファイルは、バッチタスクで処理される画像の詳細を保存するために使用されます。

説明
  1. increment.meta ファイルと、increment.meta ファイルで指定された画像は、同じバケットに保存する必要があります。 そうしないと、バッチ操作は失敗します。

  2. increment.meta ファイルの名前は固定されており、Image Search は、ファイル名に基づいてバッチタスクで処理される画像の詳細を読み取ります。 ファイル名は変更しないでください。 そうしないと、バッチ操作は失敗します。

  3. Image Search のバッチ操作機能は、同じバケット内の異なるパスに保存されている画像を処理できます。 たとえば、increment.meta ファイルが imagesearch という名前のバケットのルートディレクトリに保存されており、girl_cloth8.jpg という名前の画像がバケット内の girlCloth という名前のディレクトリに保存されているとします。 この画像の場合、increment.meta ファイルで PicName パラメーターを "PicName":"girlCloth/girl_cloth8.jpg" として指定する必要があります。 girlCloth の前または girl_cloth8.jpg の後にスラッシュ (/) を追加できないことに注意してください。 このロジックは、複数レベルのディレクトリにも適用されます。

  4. OSS に保存されている画像の名前には、ファイル名拡張子を追加する必要があります。 たとえば、画像の名前が girl_cloth10.jpg の場合、PicName パラメーターを "PicName":"girl_cloth10" ではなく "PicName":"girl_cloth10.jpg" として指定する必要があります。 そうしないと、バッチ操作は失敗します。

  5. increment.meta ファイルでは、1 行に 1 つの画像のみを指定できます。 1 行に複数の画像を指定すると、バッチ操作は失敗します。

次のサンプルコードは、increment.meta ファイルで画像を指定する方法の例を示しています。

{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth1.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value1","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth2.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value2","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1001","PicName": "girl_cloth3.jpg","CategoryId": 1,"CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "ADD","ProductId": "1002","PicName": "girl_cloth4.jpg","CategoryId": 0,"CustomContent": "k1:v1,k2:v2,k3:v3","Crop": false}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth7.jpg","CustomContent": "https://www.aliyun.com/imagesearch/girl_cloth7.jpg"}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth6.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "ADD","ProductId": "1006","PicName": "girlCloth/girl_cloth10.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "DELETE","ProductId": "1004","PicName": "fengyi.jpg"}
{"OperationType": "DELETE","ProductId": "1005"}

このファイルでは、各画像の情報が JSON 形式でエンコードされています。 次の表に、ファイル内のパラメーターを示します。

パラメーター

タイプ

必須

説明

OperationType

文字列

はい

操作のタイプ。有効な値:

  • ADD: Image Search に画像をインポートする操作。

  • DELETE: Image Search から画像を削除する操作。

ProductId

文字列

はい

画像の一意の ID。 ID の長さは最大 512 文字です。

PicName

文字列

はい

OSS バケットに保存されている画像の名前。 名前の長さは最大 512 文字です。

重要
  1. increment.meta ファイルでは、各行に最大 1 つの画像名が含まれます。 1 つの画像 ID が複数の画像名に対応している場合は、画像名ごとに 1 行ずつ記述する必要があります。

  2. 画像名にはファイル名拡張子を追加する必要があります。 たとえば、girl_cloth.jpg 画像の場合は、名前を girl_cloth ではなく girl_cloth.jpg と記述します。 そうしないと、バッチ操作は失敗します。

  3. 製品 ID と画像名が既存の画像と同じ画像をインポートすると、新しくインポートされた画像によって既存の画像が上書きされます。

  4. インポートする画像は、次の要件を満たしている必要があります。

    • 画像のファイルサイズは 4 MB を超えることはできません。

    • 画像は、PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM のいずれかの形式である必要があります。

    • 転送タイムアウト期間は 5 秒を超えることはできません。

    • 商品画像検索、一般的な画像検索、家具および家庭用品画像検索、産業用ハードウェア画像検索の場合、画像の長さと幅は 100 ピクセルから 4,096 ピクセルの範囲である必要があります。

    • 画像に回転設定を含めることはできません。

CategoryId

整数

いいえ

画像のカテゴリ。 カテゴリの詳細については、「カテゴリ リファレンス」をご参照ください。

  • 商品画像検索の場合、画像にカテゴリを指定すると、指定されたカテゴリが優先されます。 指定されたカテゴリは、「カテゴリ リファレンス」トピックで説明されている範囲内である必要があります。 そうしないと、Image Search は画像を画像ギャラリーにインポートできません。

  • 画像にカテゴリを指定しない場合、システムはカテゴリを予測し、レスポンスで予測結果を返します。

  • 一般的な画像検索、著作権で保護された画像検索、産業用ハードウェア画像検索、家具および家庭用品画像検索の場合、カテゴリが指定されているかどうかに関係なく、レスポンスではこのパラメーターに 88888888 のみが返されます。

CustomContent

文字列

はい

ユーザー定義コンテンツ。 値の長さは最大 4,096 文字です。

説明

画像のユーザー定義コンテンツは、検索結果に自動的に返されます。 このパラメーターを使用すると、画像の URL や画像の説明などの情報を追加できます。

IntAttr

整数

いいえ

整数型の属性。 この属性は、画像を検索するときに画像をフィルタリングするために使用できます。

説明

画像を検索するときに、「整数属性」パラメーターとフィルター条件を指定して画像をフィルタリングできます。 詳細については、「フィルター条件を指定して画像を検索する」をご参照ください。

StrAttr

文字列

いいえ

文字列型の属性。 値の長さは最大 128 文字です。 この属性は、画像を検索するときに画像をフィルタリングするために使用できます。

説明

画像を検索するときに、「文字列属性」パラメーターとフィルター条件を指定して画像をフィルタリングできます。 詳細については、「フィルター条件を指定して画像を検索する」をご参照ください。

Crop

ブール値

いいえ

画像内の被写体を識別し、識別された被写体に基づいて画像を検索するかどうかを指定します。 デフォルト値: true。有効な値:

  • true: システムは画像内の被写体を識別し、識別された被写体に基づいて画像を検索します。

  • false: システムは画像内の被写体を識別せず、画像全体に基づいて画像を検索します。

Region

文字列

いいえ

画像の主題領域。 主題領域は、x1,x2,y1,y2 の形式で表示されます。 x1 と y1 は左上の点を表します。 x2 と y2 は右下の点を表します。

説明

このパラメーターを指定すると、Crop パラメーターは無効になります。

ステップ 5: Image Search が OSS にアクセスすることを承認する

Image Search でバッチ操作機能を実装するには、Image Search と OSS を一緒に使用する必要があります。 バッチ操作機能を初めて使用するときは、Image Search アカウントに OSS へのアクセスを承認します。 アカウントが承認されている場合は、このステップをスキップします。

ステップ 6: 画像をアップロードする

  1. [Image Search コンソール] にログオンします。

  2. サービス タイプを選択し、管理する Image Search インスタンスの名前をクリックします。

  3. [バッチ操作] タブをクリックします。

    批量操作

  4. [バッチタスクの作成] をクリックします。

    新建批量任务

  5. バッチタスクの次のパラメーターを設定します。

    • リージョン

      このパラメーターは、Image Search インスタンスが存在するリージョンを指定します。

    • バケット名

      このパラメーターは、OSS で作成したバケットの名前を指定します。

      重要

      OSS バケットと Image Search インスタンスが同じリージョンにあることを確認してください。

    • パス

      このパラメーターは、画像と increment.meta ファイルが保存されているパスを指定します。

      批量上传.png

    • META ファイル

      このパラメーターは、処理される画像の詳細を保存するために使用されるファイルを指定します。 ファイル名は increment.meta です。 フィールドの右側にある更新アイコンをクリックして、ファイルが存在するかどうかを確認できます。

    • 操作完了後のコールバック

      このパラメーターは、コールバック URL を指定します。 URL は HTTP または HTTPS で始まる必要があります。

      {
        "finishTime": "2021-05-19 17:50:00",
        "instanceId": "imagesearch-cn-xxxx",
        "instanceName": "instanceName",
        "message": "success",
        "processResultUrl": "https://image-search-task-info.oss-cn-shanghai.aliyuncs.com/yyyyyyyyyy",
        "status": "NORMAL",
        "taskId": 111
      }

      パラメーター

      説明

      finishTime

      バッチタスクが完了した時刻。 時刻は秒単位まで正確です。

      instanceName

      Image Search インスタンスの名前。

      instanceId

      Image Search インスタンスの ID。

      status

      バッチタスクの結果。 NORMAL の値は、バッチタスクが完了したことを示します。 FAIL の値は、バッチタスクが失敗したことを示します。

      taskId

      バッチタスクの ID。

      message

      タスク結果の説明。 success の値は、タスクが完了したことを示します。

      processResultUrl

      エラー情報をダウンロードするために使用される URL。

結果の確認

アップロード タスクが完了したら、インスタンス ID をクリックして、アップロード タスクのステータスを確認できます。

  • 画像のアップロードに失敗した場合は、「インポート履歴の表示」をクリックして詳細を表示します。 詳細については、「FAQ」トピックの [OSS インポート リクエストが失敗する原因] セクションをご参照ください。批量操作1.png

  • 画像が想定どおりにアップロードされた場合は、インスタンス ID をクリックします。 表示されるページで、「画像で検索」タブをクリックします。 このタブで、画像検索テストを実行します。图搜搜索.png