(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】画像を検索するための方法及び装置
(51)【国際特許分類】
G06F 16/56 20190101AFI20240614BHJP
G06F 16/83 20190101ALI20240614BHJP
G06V 10/40 20220101ALI20240614BHJP
【FI】
G06F16/56
G06F16/83
G06V10/40
(21)【出願番号】P 2022504246
(86)(22)【出願日】2020-03-19
(86)【国際出願番号】 CN2020080263
(87)【国際公開番号】W WO2021012691
(87)【国際公開日】2021-01-28
【審査請求日】2022-01-21
(31)【優先権主張番号】201910665039.8
(32)【優先日】2019-07-23
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】520223893
【氏名又は名称】ベイジン・ジンドン・ゼンシ・インフォメーション・テクノロジー・カンパニー・リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】郭 忠▲強▼
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2002-366575(JP,A)
【文献】米国特許第05983237(US,A)
【文献】特開2019-045984(JP,A)
【文献】特開2018-055730(JP,A)
【文献】特開2013-246739(JP,A)
【文献】特開2018-116572(JP,A)
【文献】米国特許出願公開第2012/0054177(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06V 10/40
(57)【特許請求の範囲】
【請求項1】
画像を検索するための方法であって、前記方法は、サーバまたは端末装置によって実行され、
ターゲットアイテムのスケッチ内の各部品の位置関係に基づいてスケッチを少なくとも2つのサブ画像に分割し、前記少なくとも2つのサブ画像に対してそれぞれ特徴抽出を行って対応する特徴ベクトルを得、前記少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルからなる行列を第1行列とするステップと、
ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、ここで、前記キーワードセット内のキーワードは、前記ターゲットアイテムを説明するために使用されるステップと、
画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得するステップと、
前記第3行列セット内の第3行列について、前記第1行列と前記第3行列との一致度、及び前記第2行列と前記第3行列との一致度に従って、前記第3行列に対応する画像が提示するアイテムと前記ターゲットアイテムの一致度を決定するステップと、
決定された一致度に基づいて、前記画像セットから事前設定数の画像を選択し、選択された画像を送信するステップと、を含
み、
前記第1行列と前記第3行列との一致度、及び前記第2行列と前記第3行列との一致度は、
前記第1行列、前記第2行列、及び前記第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理して、第1符号化行列、第2符号化行列、及び第3符号化行列を得、ここで、前記符号化処理は、ターゲット行列をバイナリ符号化行列にマッピングするために使用されるステップ、及び
前記第1符号化行列と前記第3符号化行列との一致度を前記第1行列と前記第3行列との一致度として決定し、前記第2符号化行列と前記第3符号化行列との一致度を前記第2行列と前記第3行列との一致度として決定するステップにより決定され、
前記符号化処理は、
ターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと判定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと判定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含み、
ここで、Sに含まれる各要素をCグループに分割することは、Sに含まれる要素の数とCの商を決定し、決定された商に従ってCグループの各グループに含まれる要素の数を決定するということを含み、
【数1】
であり、ここで、DはSに含まれる要素の数を表し、S
i
はSのi番目の要素の値を表す、画像を検索するための方法。
【請求項2】
前記第1行列と前記第3行列との一致度、及び前記第2行列と前記第3行列との一致度に従って、前記第3行列に対応する画像が提示するアイテムと前記ターゲットアイテムとの一致度をし、それは、
前記第1行列の第1プリセット重みを取得し、前記第2行列の第2プリセット重みを取得するステップと、
取得された第1プリセット重み及び第2プリセット重みに基づいて、前記第1行列と前記第3行列との一致度と、前記第2行列と前記第3行列との一致度の加重和に従って、前記第3行列に対応する画像が提示するアイテムと前記ターゲットアイテムの一致度を決定するステップと、を含む請求項1に記載の方法。
【請求項3】
前記符号化処理は、
更新されたターゲット行列を取得するために、ターゲット行列の各行ベクトルについて、行ベクトルを正規化処理し、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、各要素にそれぞれ対応する正規化結果と正の相関があるという更新処理をそれぞれ実行するということと、
更新されたターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということと、を
さらに含む請求項
1に記載の方法。
【請求項4】
行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、λと正の相関があるということを含む請求項
3に記載の方法。
【請求項5】
行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積の平方根をこの要素に対応する更新値として決定するということを含む請求項
4に記載の方法。
【請求項6】
予め訓練された畳み込みニューラルネットワークを使用して、前記少なくとも2つのサブ画像をそれぞれ特徴抽出
する請求項1に記載の方法。
【請求項7】
前記畳み込みニューラルネットワークは、
スケッチセットを取得し、スケッチセット内の各スケッチにそれぞれ対応する一致する画像セットを取得し、ここで、スケッチ及び対応する一致する画像セット内の一致する画像は、同じアイテムを提示するために使用されるステップ、及び
スケッチセットからスケッチを選択し、以下の訓練ステップを実行するステップにより訓練して得られ、
それらの訓練ステップは、
初期モデルを使用して選択されたスケッチ及びターゲット画像セット内の各画像をそれぞれ特徴抽出してスケッチ及びターゲット画像セット内の各画像にそれぞれ対応する出力行列を取得する訓練ステップと、
得られたスケッチに対応する出力行列のそれぞれと、ターゲット画像セット内の各画像にそれぞれ対応する出力行列との一致度を決定し、対応する一致度が事前設定された閾値より大きい画像を選択する訓練ステップと、
選択された画像及び入力されたスケッチに対応する一致する画像セットに従って、選択された画像に対応するリコール率及び/又は精度を決定し、決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了しているかどうかを決定する訓練ステップと、
初期モデルの訓練が完了していると決定したことに応答して、訓練された初期モデルを前記畳み込みニューラルネットワークとして決定する訓練ステップと、
初期モデルの訓練が完了していないと決定したことに応答して、決定されたリコール率及び/又は精度に従って、初期モデルのパラメータを調整し、調整された初期モデルを初期モデルとして決定し、スケッチセットからスケッチを再選択し、上記訓練ステップを実行し続ける訓練ステップと、を含む請求項
6に記載の方法。
【請求項8】
取得ユニットであって、ターゲットアイテムのスケッチ内の各部品の位置関係に基づいてスケッチを少なくとも2つのサブ画像に分割し、前記少なくとも2つのサブ画像に対してそれぞれ特徴抽出を行って対応する特徴ベクトルを得、前記少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルからなる行列を第1行列とし、
ターゲットアイテムに対応する前記ターゲットアイテムを説明するためのキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、
画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得するように構成される取得ユニットと、
前記第3行列セット内の第3行列について、前記第1行列と第3行列との一致度、及び前記第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムと前記ターゲットアイテムの一致度を決定するように構成される決定ユニットと、
決定された一致度に基づいて、前記画像セットから事前設定数の画像を選択し、選択された画像を送信するように構成される送信ユニットと、を含
み、
前記第1行列と前記第3行列との一致度、及び前記第2行列と前記第3行列との一致度は、
前記第1行列、前記第2行列、及び前記第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理して、第1符号化行列、第2符号化行列、及び第3符号化行列を得、ここで、前記符号化処理は、ターゲット行列をバイナリ符号化行列にマッピングするために使用されるステップ、及び
前記第1符号化行列と前記第3符号化行列との一致度を前記第1行列と前記第3行列との一致度として決定し、前記第2符号化行列と前記第3符号化行列との一致度を前記第2行列と前記第3行列との一致度として決定するステップにより決定され、
前記符号化処理は、
ターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと判定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと判定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含み、
ここで、Sに含まれる各要素をCグループに分割することは、Sに含まれる要素の数とCの商を決定し、決定された商に従ってCグループの各グループに含まれる要素の数を決定するということを含み、
【数2】
であり、ここで、DはSに含まれる要素の数を表し、S
i
はSのi番目の要素の値を表す、画像を検索するための装置。
【請求項9】
1つ又は複数のプロセッサと、
1つ又は複数のプログラムが記憶される記憶装置と、を含み、
前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行される場合、前記1つ又は複数のプロセッサは、請求項1~
7のいずれか一項に記載の方法を実現する電子デバイス。
【請求項10】
コンピュータプログラムが記憶されるコンピュータ可読媒体であって、
このコンピュータプログラムがプロセッサにより実行される場合、請求項1~
7のいずれか一項に記載の方法を実現するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2019年7月23日に中国特許庁に提出された、申請番号201910665039.8で、出願人が北京京東振世信息技術有限公司で、発明の名称が「画像を検索するための方法及び装置」である中国特許申請の優先権利を主張する。本願の全内容は、参照により本願に組み込まれる。
【0002】
本開示の実施例は、コンピュータ技術分野に関し、特に画像を検索するための方法及び装置に関する。
【背景技術】
【0003】
現在、画像検索には通常、テキストベースの画像検索とコンテンツベースの画像検索が含まれる。ここで、テキストベースの画像検索は通常、テキストで説明する方法を使用して画像の特徴を説明し、画像ライブラリ内の各画像に対応するテキストの説明を照合して検索結果を決定する。コンテンツベースの画像検索は通常、画像の色、テクスチャ、及びレイアウトなど特徴に基づいて、画像ライブラリ内の各画像に対応する色、テクスチャ、及びレイアウトなどの特徴を照合して検索結果を決定する。
【0004】
画像のテキストによる説明は通常、主観的なものであるため、それにより検索結果の正確さに影響を及ぼす。元の画像のみは、比較的豊富な色やテクスチャなどの特徴を有しているため、一部の既存のコンテンツベースの画像検索では、通常、ユーザが検索するアイテムの元の画像を提供する必要がある。また、画像から抽出された色やテクスチャなどの特徴は通常、画像の客観的な説明情報であり、画像の意味情報を表現することは、困難である。
【発明の概要】
【0005】
本開示の実施例は、画像を検索するための方法及び装置を提案する。
【0006】
第1態様では、本開示の実施例は、画像を検索するための方法を提供し、この方法は、ターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得するステップと、ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、ここで、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用されるステップと、画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得するステップと、第3行列セット内の第3行列について、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するステップと、決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信するステップと、を含む。
【0007】
いくつかの実施例では、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定し、それは、第1行列の第1プリセット重みを取得し、第2行列の第2プリセット重みを取得するステップと、取得された第1プリセット重み及び第2プリセット重みに基づいて、第1行列と第3行列との一致度と、第2行列と第3行列との一致度の加重和に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するステップと、を含む。
【0008】
いくつかの実施例では、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度は、第1行列、第2行列、及び第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理して、第1符号化行列、第2符号化行列、及び第3符号化行列を得、ここで、符号化処理は、ターゲット行列をバイナリ符号化行列にマッピングするために使用されるステップ、及び、第1符号化行列と第3符号化行列との一致度を第1行列と第3行列との一致度として決定し、第2符号化行列と第3符号化行列との一致度を第2行列と第3行列との一致度として決定するステップにより決定される。
【0009】
いくつかの実施例では、符号化処理は、
ターゲット行列の各行ベクトルの行ベクトルSについて、Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及びCグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0010】
いくつかの実施例では、Sに含まれる各要素をCグループに分割し、それは、Sに含まれる要素の数とCの商を決定すること、及び決定された商に従ってCグループの各グループに含まれる要素の数を決定することを含む。
【0011】
いくつかの実施例では、
【数1】
ここで、DはSに含まれる要素の数を表し、S
iはSのi番目要素の値を表す。
【0012】
いくつかの実施例では、符号化処理は、
更新されたターゲット行列を取得するために、ターゲット行列の各行ベクトルについて、行ベクトルを正規化処理し、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、各要素にそれぞれ対応する正規化結果と正の相関があるという更新処理をそれぞれ実行し、更新されたターゲット行列の各行ベクトルの行ベクトルSについて、Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及びCグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0013】
いくつかの実施例では、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、λと正の相関があるということを含む。
【0014】
いくつかの実施例では、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積の平方根を、この要素に対応する更新値として決定するということを含む。
【0015】
いくつかの実施例では、第1行列は、スケッチを少なくとも2つのサブ画像に分割するステップ、予め訓練された畳み込みニューラルネットワークを使用して少なくとも2つのサブ画像をそれぞれ特徴抽出して、少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルを得るステップ、及び少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルで構成される行列を第1行列として決定するステップにより得られる。
【0016】
いくつかの実施例では、畳み込みニューラルネットワークは、
スケッチセットを取得し、スケッチセット内の各スケッチにそれぞれ対応する一致する画像セットを取得し、ここで、スケッチ及び対応する一致する画像セット内の一致する画像は、同じアイテムを提示するために使用されるステップ、及びスケッチセットからスケッチを選択し、以下の訓練ステップを実行するステップで訓練して得られる。
【0017】
それらの訓練ステップは、
初期モデルを使用して選択されたスケッチ及びターゲット画像セット内の各画像をそれぞれ特徴抽出することによりスケッチ及びターゲット画像セット内の各画像にそれぞれ対応する出力行列を取得する訓練ステップと、
得られたスケッチに対応する出力行列のそれぞれと、ターゲット画像セット内の各画像にそれぞれ対応する出力行列との一致度を決定し、対応する一致度が事前設定された閾値より大きい画像を選択する訓練ステップと、
選択された画像及び入力されたスケッチに対応する一致する画像セットに従って、選択された画像に対応するリコール率及び/又は精度を決定し、決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了しているかどうかを決定する訓練ステップと、
初期モデルの訓練が完了していると決定したことに応答して、訓練された初期モデルを畳み込みニューラルネットワークとして決定する訓練ステップと、
初期モデルの訓練が完了していないと決定したことに応答して、決定されたリコール率及び/又は精度に従って、初期モデルのパラメータを調整し、調整された初期モデルを初期モデルとして決定し、スケッチセットからスケッチを再選択し、上記訓練ステップを実行し続ける訓練ステップと、を含む。
【0018】
第2態様では、本開示の実施例は、画像を検索するための装置を提供し、この装置は、
取得ユニットであって、前記取得ユニットはターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得するように構成される取得ユニットと、
取得ユニットであって、前記取得ユニットはターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、ここで、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用されるようにさらに構成される取得ユニットと、
取得ユニットであって、前記取得ユニットは画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得するようにさらに構成される取得ユニットと、
決定ユニットであって、前記決定ユニットは第3行列セット内の第3行列について、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するように構成される決定ユニットと、
送信ユニットであって、前記送信ユニットは決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信するように構成される送信ユニットと、を含む。
【0019】
いくつかの実施例では、決定ユニットは、第1行列の第1プリセット重みを取得し、第2行列の第2プリセット重みを取得し、取得された第1プリセット重み及び第2プリセット重みに基づいて、第1行列と第3行列との一致度と、第2行列と第3行列との一致度の加重和に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するようにさらに構成される。
【0020】
いくつかの実施例では、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度は、第1行列、第2行列、及び第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理して、第1符号化行列、第2符号化行列、及び第3符号化行列を得、ここで、符号化処理は、ターゲット行列をバイナリ符号化行列にマッピングするために使用されるステップ、及び第1符号化行列と第3符号化行列との一致度を第1行列と第3行列との一致度として決定し、第2符号化行列と第3符号化行列との一致度を第2行列と第3行列との一致度として決定するステップにより決定される。
【0021】
いくつかの実施例では、符号化処理は、
ターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0022】
いくつかの実施例では、Sに含まれる各要素をCグループに分割し、それは、Sに含まれる要素の数とCの商を決定すること、及び決定された商に従ってCグループの各グループに含まれる要素の数を決定することを含む。
【0023】
いくつかの実施例では、
【数2】
ここで、DはSに含まれる要素の数を表し、S
iはSのi番目の要素の値を表す。
【0024】
いくつかの実施例では、符号化処理は、
更新されたターゲット行列を取得するために、ターゲット行列の各行ベクトルについて、
行ベクトルを正規化処理し、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、各要素にそれぞれ対応する正規化結果と正の相関があるという更新処理をそれぞれ実行し、
更新されたターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、
及びCグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0025】
いくつかの実施例では、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、λと正の相関があるということを含む。
【0026】
いくつかの実施例では、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積の平方根を、この要素に対応する更新値として決定するということを含む。
【0027】
いくつかの実施例では、第1行列は、スケッチを少なくとも2つのサブ画像に分割するステップ、予め訓練された畳み込みニューラルネットワークを使用して少なくとも2つのサブ画像をそれぞれ特徴抽出して、少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルを得るステップ、及び少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルで構成される行列を第1行列として決定するステップにより得られる。
【0028】
いくつかの実施例では、畳み込みニューラルネットワークは、
スケッチセットを取得し、スケッチセット内の各スケッチにそれぞれ対応する一致する画像セットを取得し、ここで、スケッチ及び対応する一致する画像セット内の一致する画像は、同じアイテムを提示するために使用されるステップ、及び
スケッチセットからスケッチを選択し、以下の訓練ステップを実行するステップで訓練して得られる。
それらの訓練ステップは、
初期モデルを使用して選択されたスケッチ及びターゲット画像セット内の各画像をそれぞれ特徴抽出してスケッチ及びターゲット画像セット内の各画像にそれぞれ対応する出力行列を取得する訓練ステップと、
得られたスケッチに対応する出力行列のそれぞれと、ターゲット画像セット内の各画像にそれぞれ対応する出力行列との一致度を決定し、対応する一致度が事前設定された閾値より大きい画像を選択する訓練ステップと、
選択された画像及び入力されたスケッチに対応する一致する画像セットに従って、選択された画像に対応するリコール率及び/又は精度を決定し、決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了しているかどうかを決定する訓練ステップと、
初期モデルの訓練が完了していると決定したことに応答して、訓練された初期モデルを畳み込みニューラルネットワークとして決定する訓練ステップと、
初期モデルの訓練が完了していないと決定したことに応答して、決定されたリコール率及び/又は精度に従って、初期モデルのパラメータを調整し、調整された初期モデルを初期モデルとして決定し、スケッチセットからスケッチを再選択し、上記訓練ステップを実行し続ける訓練ステップと、を含む。
【0029】
第3態様では、本開示の実施例は、電子デバイスを提供し、この電子デバイスは、1つ又は複数のプロセッサと、1つ又は複数のプログラムを記憶するための記憶装置と、を含み、1つ又は複数のプログラムは、1つ又は複数のプロセッサにより実行される場合、1つ又は複数のプロセッサが、第1態様の任意の実装方法で説明された方法を実現する。
【0030】
第4態様では、本開示の実施例は、コンピュータプログラムが記憶されるコンピュータ可読媒体を提供し、このコンピュータプログラムは、プロセッサにより実行される場合、第1態様の任意の実装方法で説明された方法を実現する。
【0031】
本開示の実施例が提供する画像を検索するための方法及び装置は、アイテムのスケッチと対応するキーワードに従って、それぞれ画像セット内の各画像と照合し、照合結果に従って検索結果を決定し、それによりユーザがアイテムの元の画像を検索用に提供できない場合は、アイテムのスケッチを使用して検索を実現することができ、そしてアイテムのキーワードが同時に検索に使用されるため、画像の意味情報は、検索プロセスに統合され、これは、画像の誤検出率及び検出漏れ率を低減するのに寄与し、それにより検索結果の正確さを向上させる。
【0032】
以下の図面を参照して、非限定的な実施例の詳細な説を読むことにより、本開示の他の特徴、目的及び利点はより明らかになる。
【図面の簡単な説明】
【0033】
【
図1】本開示の一実施例を適用できる例示的なシステムアーキテクチャ図である。
【
図2】本開示による画像を検索するための方法の一実施例のフローチャートである。
【
図3】本開示の実施例による画像を検索するための方法の適用シナリオの模式図である。
【
図4】本開示による画像を検索するための方法のさらに別の実施例のフローチャートである。
【
図5】本開示による画像を検索するための装置の一実施例の構造模式図である。
【
図6】本開示の実施例を実施するのに適した電子デバイスの構造模式図である。
【発明を実施するための形態】
【0034】
以下、図面と実施例を参照して本開示をさらに詳細に説明する。本明細書に記載される特定の実施例は、関連する発明を説明するためにのみ使用され、本発明を限定するものではないことが理解され得る。なお、容易に説明するために、図面には、本発明に関連する部分のみが示されている。
【0035】
なお、本開示における実施例及び実施例における特徴は、矛盾がない場合、互いに組み合わせることができる。以下、図面を参照して、実施例と併せて本開示を詳細に説明する。
【0036】
図1は、本開示を適用できる画像を検索するための方法又は画像を検索するための装置の実施例の例示的なアーキテクチャ100を示している。
【0037】
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104及びサーバ105を含み得る。ネットワーク104は、端末装置101、102、103とサーバ105との間に通信リンクのための媒体を提供するために使用される。ネットワーク104は、有線、無線通信リンク又は光ファイバケーブルなどのさまざまな接続タイプを含み得る。
【0038】
端末装置101、102、103は、ネットワーク104を介してサーバ105と相互作用して、メッセージなどを送受信する。さまざまなクライアントアプリケーションを端末装置101、102、103にインストールすることができる。例えば、ブラウザアプリケーション、検索アプリケーション、画像処理アプリケーションなどである。
【0039】
端末装置101、102、103は、ハードウェアであってもよいし、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、それらは、スマートフォン、タブレットコンピュータ、電子書籍リーダー、ラップトップコンピュータ、デスクトップコンピュータなどを含むがこれらに限定されないさまざまな電子デバイスであってもよい。端末装置101、102、103がソフトウェアである場合、それらは、上記電子デバイスにインストールすることができる。それらは、複数のソフトウェア又はソフトウェアモジュール(例えば、分散サービスを提供するための複数のソフトウェア又はソフトウェアモジュール)として実装されてもよく、単一のソフトウェア又はソフトウェアモジュールとして実装されてもよい。ここに特別な制限はない。
【0040】
サーバ105は、さまざまなサービスを提供するサーバ、例えば、端末装置101、102、103にインストールされたクライアントアプリケーションにバックエンドサポートを提供するバックエンドサーバであってもよい。サーバ105は、端末装置101、102、103によって送信されたターゲットアイテムのスケッチ及びキーワードセットを受信し、ターゲットアイテムのスケッチ及びキーワードセットをそれぞれ処理し、さらに処理結果に従って画像セットからターゲットアイテムのスケッチ及びキーワードセットに一致する画像を選択し、選択された画像を端末装置101、102、103に送信することができる。
【0041】
なお、上記ターゲットアイテムのスケッチ及びキーワードセットは、サーバ105のローカルに直接記憶することもでき、サーバ105は、ローカルに記憶されたターゲットアイテムのスケッチ及びキーワードセットを直接抽出して処理することができ、このとき、端末装置101、102、103及びネットワーク104が存在しなくてもよい)。
【0042】
なお、本開示の実施例によって提供された画像を検索するための方法は、一般にサーバ105によって実行され、それに対応して、画像を検索するための装置は、一般にサーバ105に設置される。
【0043】
なお、端末装置101、102、103にも、画像処理アプリケーションがインストールされることができ、端末装置101、102、103は、画像処理アプリケーションに基づいて顔画像を処理することもでき、このとき、画像を検索するための方法は、端末装置101、102、103が実行することもでき、それに対応して、画像を検索するための装置は、端末装置101、102、103に設置されることもできる。このとき、サーバ105及びネットワーク104は、例示的なシステムアーキテクチャ100に存在しなくてもよい。
【0044】
なお、サーバ105は、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバがハードウェアである場合、複数のサーバで構成される分散サーバクラスターとして実装されてもよく、単一のサーバとして実装されてもよい。サーバ105がソフトウェアである場合、複数のソフトウェア又はソフトウェアモジュール(例えば、分散サービスを提供するための複数のソフトウェア又はソフトウェアモジュール)として実装されてもよく、単一のソフトウェア又はソフトウェアモジュールとして実装されてもよい。ここに特別な制限はない。
【0045】
図1の端末装置、ネットワーク及びサーバの数は、単なる例示であることが理解されるべきである。実装のニーズに応じて、端末装置、ネットワーク及びサーバは、いくつでも存在することができる。
【0046】
図2を参照し続けると、それは、本開示による画像を検索するための方法の一実施例のフロー200を示している。画像を検索するための方法は、以下のステップ201、ステップ202、ステップ203、ステップ204、及びステップ205を含む。
【0047】
ステップ201:ターゲットアイテムのスケッチを特徴抽出することによって得られた第1行列を取得する。
【0048】
本実施例では、ターゲットアイテムは、ユーザの検索ターゲット、すなわち、ユーザが検索したい画像に示されるアイテムであってもよい。ターゲットアイテムのスケッチを使用して、アイテムのデザイン又は形体概念を初期化して表現することができる。例えば、ターゲットアイテムのスケッチには、アイテムの構造とサイズ、及びアイテムの各部品の相対的な位置関係などが提示され得る。
【0049】
本実施例では、ユーザは、ターゲットアイテムのスケッチを描くことができるか、又はユーザは、いくつかの既存のスケッチライブラリ(例えば、Sketchy画像ライブラリ)からターゲットアイテムのスケッチを選択することができる。
【0050】
本実施例では、スケッチを特徴抽出することは、スケッチのいくつかの画像情報を抽出することを指すことができる。一般に、スケッチを分析処理することにより、スケッチの各ピクセルポイントがスケッチの特定の特徴を表現できるかどうかを決定することができる。具体的には、さまざまな既存の画像特徴抽出方法を使用してスケッチを特徴抽出することができる。
【0051】
例えば、SURF(スケール不変特徴変換)に基づく特徴抽出方法を使用して、ターゲットアイテムのスケッチの特徴を抽出することができる。別の例として、深層学習に基づく特徴抽出方法を使用して、ターゲットアイテムのスケッチの特徴を抽出することができる。
【0052】
オプションで、スケッチの特徴抽出結果は、特徴ベクトルであってもよい。このとき、抽出された特徴ベクトルは、上記第1行列と見なすことができる。
【0053】
本実施例のいくつかの任意選択の実装形態では、最初に、スケッチを少なくとも2つのサブ画像に分割することができる。次に予め訓練された畳み込みニューラルネットワークを使用して、少なくとも2つのサブ画像をそれぞれ特徴抽出し、少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルを得ることができ、さらに、少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルで構成される行列を上記第1行列と見なすことができる。
【0054】
ここで、スケッチを分割する方法を柔軟に選択することができる。例えば、スケッチの幾何学的中心を中心点として使用し、水平方向と垂直方向から、スケッチを4つのサブ画像に均等に分割することができる。
【0055】
ここで、得られた少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルが行列を構成する方法は、技術者によって事前に設定され得る。例えば、第1行列は、指定された順序で行ごとに並べることにより得られる。
【0056】
スケッチを分割することにより、その後の一致プロセスでは、ターゲットを絞った方法で対応する位置の画像領域を一致させることができ、すなわち、一致プロセスは、より正確な位置情報を有し、これは、一致結果の精度を高めるのに寄与し、さらに検索結果の精度を高める。
【0057】
畳み込みニューラルネットワークを使用してターゲットアイテムのスケッチを特徴抽出する場合、畳み込みニューラルネットワークは、画像の特徴を抽出するために使用されるさまざまなタイプの予め訓練済みのニューラルネットワークであってもよい(例えば、深層学習モデルなど)。
【0058】
一般に、畳み込みニューラルネットワークは、いくつかの畳み込み層、プーリング層、及び完全に接続された層で構成され得る。ここで、畳み込み層は、畳み込み層に入力する画像に対して畳み込み操作を実行して特徴を抽出するために使用され、プーリング層は、畳み込み層の出力結果を圧縮して主要な特徴を抽出するために使用され、完全に接続された層は、抽出された画像の各ローカル特徴を統合して、完全に接続された層の前に各層によって学習された分散特徴表現をサンプルラベルスペースにマッピングすることができる。
【0059】
オプションで、画像の特徴を抽出するために使用される畳み込みニューラルネットワークは、以下のステップ1とステップ2で訓練して得られ得る。
【0060】
ステップ1:スケッチセットを取得し、スケッチセット内の各スケッチにそれぞれ対応する一致する画像セットを取得する。
【0061】
このステップ1では、さまざまな画像処理アプリケーションを使用して大量のスケッチを生成して、スケッチセットを構成することができ、サードパーティのデータプラットホームからスケッチセットを取得することもできる。スケッチセットに対応する一致する画像セット内の一致する画像及びスケッチを使用して、同じアイテムを提示することができる。ここで、任意のスケッチについて、このスケッチに対応する一致する画像セット内の一致する画像は、技術者によって指定され得るか、又はサードパーティのデータプラットホームから取得され得る。
【0062】
ステップ2:スケッチセットからスケッチを選択し、以下の訓練ステップ1~訓練ステップ3を実行する。
【0063】
このステップ2では、スケッチセットからスケッチを選択する方法を、さまざまな適用シナリオに応じて柔軟に設定することができる。例えば、スケッチセットから事前設定数のスケッチをランダムに選択することができる。別の例として、スケッチセットから選択されていない事前設定数のスケッチを選択することができる。
【0064】
訓練ステップ1:初期モデルを使用して、選択されたスケッチ及びターゲット画像セット内の各画像をそれぞれ特徴抽出することにより、スケッチ及びターゲット画像セット内の各画像にそれぞれ対応する出力行列を取得する。
【0065】
ここで、初期モデルは、さまざまなタイプの訓練されていない人工ニューラルネットワーク、又は訓練が完了していない人工ニューラルネットワークであってもよい。例えば、深層学習モデルである。初期モデルは、さまざまな訓練されていない人工ニューラルネットワーク、又は訓練が完了していない人工ニューラルネットワークを組み合わせて得られたモデルであってもよい。具体的には、技術者は、実際のアプリケーション要件(例えば、畳み込み層の数や畳み込みカーネルのサイズなど)に従って初期モデルを構築することができる。
【0066】
ここで、ターゲット画像セットは、技術者によって事前に設定され得る。オプションで、ターゲット画像セットは、上記画像セットであってもよい。
【0067】
訓練ステップ2:得られたスケッチに対応するそれぞれの出力行列と、ターゲット画像セット内の各画像にそれぞれ対応する出力行列との一致度を決定し、対応する一致度が事前設定された閾値より大きい画像を選択する。
【0068】
ここで、2つの出力行列との一致度の計算方法は、さまざまな既存の行列一致アルゴリズムを採用することができる。例えば、2つの行列をそれぞれ事前設定された方法でベクトルに平坦化してから、得られた2つのベクトル間の類似度を計算し、この類似度を2つの出力行列との一致度として使用する。
【0069】
ここで、事前設定された閾値は、実際のアプリケーション要件に応じて技術者によって事前に設定され得る。
【0070】
訓練ステップ3:選択された画像と入力されたスケッチに対応する一致する画像セットに従って、選択された画像に対応するリコール率及び/又は精度を決定し、決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了しているかどうかを決定する。
【0071】
ここで、リコール率は、所望の画像の検出度合いを特徴付けるために使用され得る。一般に、リコール率は、ターゲット画像セットに含まれる入力されたスケッチと同じアイテムを提示する画像の総数に対する、選択された画像と一致する画像セットとの積集合に含まれる画像の数の比率で表され得る。
【0072】
ここで、精度は、検索されたすべての画像に対する検索された所望の画像の割合を特徴付けるために使用され得る。一般に、精度は、一致する画像セットに含まれる画像の総数に対する選択された画像と一致する画像セットとの積集合に含まれる画像の数の比率で表され得る。
【0073】
オプションで、リコール率及び/又は精度を決定した後、事前設定された損失関数の値を決定することができ、決定された損失関数の値に従って初期モデルの訓練が完了しているかどうかを決定する。ここで、損失関数の計算方法は、技術者によって事前に設定され得る。例えば、事前設定された損失関数は、決定されたリコール率及び/又は精度と、事前設定されたリコール率及び/又は精度との間の差異の程度を特徴付けるために使用され得る。このとき、決定された損失関数の値が事前設定された損失閾値を下回っているかどうか応じて、初期モデルの訓練が完了しているかどうかを決定することができる。
【0074】
決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了していると決定した場合、訓練された初期モデルを、画像の特徴を抽出するための上記畳み込みニューラルネットワークとして決定することができる。
【0075】
決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了していないと決定した場合、決定されたリコール率及び/又は精度に従って、初期モデルのパラメータを調整し、調整された初期モデルを初期モデルとして決定することができ、スケッチセットからスケッチを再選択し、上記訓練ステップ1~訓練ステップ3を実行し続ける。
【0076】
具体的には、損失関数の値に従って、勾配降下及びバックプロパゲーションアルゴリズムを使用して初期モデルの各層のパラメータを調整することができ、それにより調整された初期モデルに対応するリコール率及び/又は精度は、できるだけ高くなる。
【0077】
本実施例では、他の電子デバイスにより、ターゲットアイテムのスケッチを事前に特徴抽出して、第1行列を得ることができる。このとき、画像を検索するための方法の実行主体(
図1に示すサーバ105)は、他の電子デバイスから第1行列を取得することができる。上記実行主体により、ターゲットアイテムのスケッチを事前に特徴抽出して、第1行列を得ることもできることが理解され得る。このとき、上記実行主体は、ローカルから第1行列を直接取得することができる。
【0078】
ステップ202:ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得する。
【0079】
本実施例では、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用され得る。キーワードセット内のキーワードは、ユーザによって事前に設定され得る。ここで、キーワードセット内のキーワードの単語ベクトルは、単語ベクトルを生成するためのさまざまな既存の方法(例えば、Word2Vec、FastTextなど)を使用して決定することができる。
【0080】
ここで、キーワードセット内の各キーワードの単語ベクトルが第2行列を構成する方法は、技術者によって事前に設定され得る。例えば、上記第2行列は、各キーワードにそれぞれ対応する単語ベクトルを、事前設定された順序で、行ごとに並べることで得られる。
【0081】
本実施例では、キーワードセット内の各キーワードの単語ベクトルは、他の電子デバイスによって事前に生成され得、次に第2行列が得られる。このとき、上記実行主体は、他の電子デバイスから第2行列を取得することができる。上記実行主体は、キーワードセット内の各キーワードの単語ベクトルを事前に生成し、次に第2行列を得ることもできることが理解され得る。このとき、上記実行主体は、ローカルから第2行列を直接取得することができる。
【0082】
オプションで、キーワードの単語ベクトルが事前に生成した後、キーワードと単語ベクトルとの対応する関係を記憶して、次回の再利用の際に、キーワードに対応する単語ベクトルを直接使用できるようにする。これは、画像検索速度の向上に寄与する。このとき、単語ベクトルがニューラルネットワーク(例えば、Word2Vecなど)を介して得られた場合、ニューラルネットワークも更新するために、一定の時間間隔の後、新しいキーワードと対応する単語ベクトルを使用してニューラルネットワークを再訓練することができる。
【0083】
ステップ203:画像セット内の各画像を特徴抽出して得られた第3行列セットを取得する。
【0084】
本実施例では、さまざまな既存の画像特徴抽出方法を使用して画像セット内の各画像をそれぞれ特徴抽出することができる。例えば、SURF(スケール不変特徴変換)に基づく特徴抽出方法を使用して画像セット内の各画像の特徴を抽出することができる。別の例として、深層学習に基づく特徴抽出方法を使用して画像セット内の各画像の特徴を抽出することができる。
【0085】
オプションで、同じ畳み込みニューラルネットワークを使用して、ターゲットアイテムのスケッチ及び画像セット内の各画像をそれぞれ特徴抽出することにより、ターゲットアイテムのスケッチに対応する第1行列及び画像セット内の各画像にそれぞれ対応する第3行列を取得することができる。
【0086】
オプションで、画像セットに含まれる画像は、一般に大量であり、そして画像セットの更新頻度は、一般に低いため、画像セット内の画像を事前に特徴抽出して、各画像にそれぞれ対応する第3行列を得た後、各画像と対応する第3行列との間の対応する関係を記憶することができ、それにより各画像に対応する第3行列を直接使用することができ、各画像にそれぞれ対応する第3行列を取得するために各画像を再度処理する必要はない。これは、画像検索速度の向上に寄与する。画像セットが更新されると、更新された部分と対応する第3行列との間の対応する関係がさらに記憶され得る。このとき、畳み込みニューラルネットワークを使用して第3行列を得ると、画像セットが更新される場合、畳み込みニューラルネットワークも更新するために、更新された部分を使用して畳み込みニューラルネットワークをさらに訓練することができる。
【0087】
ステップ204:第3行列セット内の第3行列について、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に応じて、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定する。
【0088】
本実施例では、さまざまな既存の行列一致アルゴリズムを使用して、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度を計算することができる。さらに、得られた2つの一致度に基づいて第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を包括的に決定することができる。ここで、具体的には、得られた2つの一致度に基づいて第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を包括的に決定する方法を柔軟に設定することができる。
【0089】
オプションで、2つのうち最大値又は2つの平均値を、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度として決定することができる。
【0090】
オプションで、第1行列の第1プリセット重みを取得することができ、第2行列の第2プリセット重みを取得することができる。次に取得された第1プリセット重みと第2プリセット重みに基づいて、第1行列と第3行列との一致度と、第2行列と第3行列との一致度の加重和に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定する。
【0091】
ここで、第1プリセット重み及び第2プリセット重みは、技術者によって事前設定され得るか、又は第1プリセット重み及び第2プリセット重みは、ユーザによって入力され得る。オプションで、第1プリセット重み及び第2重みの値の範囲は、[0~1]であってもよく、第1プリセット重みと第2プリセット重みの和は、1に等しい。
【0092】
オプションで、第1行列と第3行列との一致度と、第2行列と第3行列との一致度の加重和を、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度として決定することができ、加重和が決定された後、加重和に対応するプリセット関数の値を、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度として使用することもできる。ここで、プリセット関数は、技術者によって事前設定され得る。
【0093】
ある場合には、例えば、ユーザが第1プリセット重みを0に設定するか、又は第2プリセット重みを0に設定する場合、ターゲットアイテムのスケッチ又はターゲットアイテムのキーワードセット内のキーワードのみに基づいて画像検索を実現することができることが理解され得る。すなわち、ユーザが実際のニーズに応じてさまざまな検索方法を柔軟に設定して、ターゲットアイテムのスケッチ及びターゲットアイテムのキーワードセット内のキーワードが検索結果に及ぼす影響を制御することができるため、検索結果の正確さの向上に寄与する。
【0094】
ステップ205:決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信する。
【0095】
本実施例では、事前設定数は、技術者によって事前設定されてもよい。画像セット内の各画像にそれぞれ対応する一致度を得た後、画像セットから画像を選択する方法を柔軟に設定することができる。
【0096】
例えば、対応する一致度の降順で、画像セットから事前設定数の画像を選択することができる。別の例として、最初に、事前設定された一致度の閾値に従って画像セットから画像サブセットを選択し、次に画像サブセットから事前設定数の画像をランダムに選択することができる。
【0097】
本実施例では、画像セットから選択された画像を他の電子デバイスに送信することができる。例えば、上記実行主体に接続されたユーザ端末(
図1に示す端末装置101、102、103)に送信することができる。
【0098】
オプションで、ターゲットアイテムのスケッチと画像セットから選択された画像との間の対応する関係も記憶することができる。したがって、ターゲットアイテムのスケッチを再度取得する場合、記憶されている対応する関係に従って、ターゲットアイテムのスケッチに一致する画像セット内の画像を迅速に取得することができる。
【0099】
図3を参照し続けると、
図3は、本実施例による画像を検索するための方法の適用シナリオの模式
図300である。
図3の適用シナリオでは、上記実行主体は、ユーザが使用する端末装置308を介してユーザによって入力されたスケッチ301を事前に取得し、次にスケッチ301の幾何学的中心を中心点として、水平方向と垂直方向から、スケッチ301をサブ画像3011、サブ画像3012、サブ画像3013及びサブ画像3014に分割することができる。その後、得られた4つのサブ画像を予め訓練された畳み込みニューラルネットワークにそれぞれ入力して、4つのサブ画像にそれぞれ対応する特徴ベクトルを取得することができ、4つのサブ画像にそれぞれ対応する特徴ベクトルが第1行列302を構成する。
【0100】
上記実行主体は、ユーザが端末装置308を介して入力したキーワードセット303を事前に取得することができる。ここで、キーワードセット303は、「ウォーターカップ」、「小容量」、「蓋なし」及び「ハンドル付き」の4つのキーワードを含む。その後、予め訓練されたWord2Vecモデルを使用して4つのキーワードにそれぞれ対応する単語ベクトルを生成することができ、さらに、4つのキーワードにそれぞれ対応する単語ベクトルで構成される第2行列304を得ることができる。
【0101】
上記実行主体は、画像セット305内の各画像を事前に処理して、各画像にそれぞれ対応する第3行列を取得し、第3行列セット306を得ることができる。ここで、画像セット305内の画像の処理手順は、上記スケッチ301の処理手順と同様である。説明のための例として、画像セット305内の画像を取り上げる。この画像の幾何学的中心を中心点として、水平方向と垂直方向から、この画像を4つのサブ画像に分割する。その後、得られた4つのサブ画像を予め訓練された畳み込みニューラルネットワークにそれぞれ入力して、4つのサブ画像にそれぞれ対応する特徴ベクトルを取得することができ、4つのサブ画像にそれぞれ対応する特徴ベクトルがこの画像に対応する第3行列を構成する。
【0102】
その後、第3行列セット306内の各第3行列にそれぞれ対応する包括的な一致度を決定することができる。説明の例として、第3行列セット306内の1つの第3行列を取り上げる。第3行列と第1行列302との一致度を、第1一致度として決定することができると同時に、第3行列と第2行列304との一致度を、第2一致度として決定ことができる。次に、事前設定された第1重み及び第2重みに従って、第1一致度と第2一致度の加重和を、第3行列に対応する包括的な一致度として決定する。
【0103】
その後、対応する一致度の降順で、ターゲット画像として画像セット305から事前設定数の画像を選択して、ターゲット画像セット307を得、そして、表示のために、ターゲット画像セット307をユーザが使用する端末装置308にプッシュすることができる。
【0104】
本開示の上記実施例が提供する画像を検索するための方法は、アイテムのスケッチ及びキーワードに基づく検索を実現し、それによりユーザがアイテムの元の画像を提供できない場合に、検索を実行できないこと又は検索結果の精度が低いことを回避することができる。同時に、スケッチが提供するアイテムのサイズや構造などの特徴とキーワードが提供するアイテムの意味的特徴を組み合わせることにより、検索結果の正確さを確保することができる。
【0105】
図4をさらに参照すると、
図4は、画像を検索するための方法のさらに別の実施例のフロー400を示している。画像を検索するための方法のこのフロー400は、ステップ401、ステップ402、ステップ403、ステップ404、ステップ405及びステップ406を含む。
【0106】
ステップ401:ターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得する。
【0107】
ステップ402:ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得する。
【0108】
ステップ403:画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得する。
【0109】
上記ステップ401、402及び403の特定の実行プロセスについては、
図2に対応する実施例におけるステップ201、202及び203の関連する説明を参照することができ、ここでは繰り返さない。
【0110】
ステップ404:第3行列セット内の第3行列について、第1行列、第2行列、及び第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理することにより、第1符号化行列、第2符号化行列、及び第3符号化行列を得る。
【0111】
本実施例では、符号化処理を使用して、ターゲット行列をバイナリ符号化行列にマッピングすることができる。ここで、バイナリ符号化行列は、含まれる要素値が「0」及び「1」である行列を指すことができる。
【0112】
オプションで、符号化処理は、最初にターゲット行列をプリセット次元の行列に変換し、次に行列に含まれる各要素の値の範囲が[0~1]になるように、行列内の各要素を正規化処理するということを含み得る。その後、プリセット標準値より大きい要素のコード値を「1」に設定し、プリセット標準値以下の要素のコード値を「0」に設定することができる。ここで、プリセット次元とプリセット標準値はいずれも、技術者によって事前に設定され得る。
【0113】
ここで、いくつかの既存のデータ処理アプリケーションを使用して、ターゲット行列をプリセット次元の行列に変換することができ、プリセット次元に従って、プーリングウィンドウを設定し、ターゲットに対してプーリング操作を実行することもでき(例えば、平均プーリングなと)、それによりターゲット行列をプリセット次元の行列に変換する。
【0114】
第1行列、第2行列、及び第3行列を符号化処理することにより、対応して生成された第1符号化行列、第2符号化行列、及び第3符号化行列の次元を制御することができ、そして第1符号化行列、第2符号化行列、及び第3符号化行列をバイナリ符号化行列にでき、それによりその後の行列一致の難しさを軽減し、行列一致の速度を大幅に向上させることができる。
【0115】
オプションで、符号化処理は、以下のステップ(1)とステップ(2)を含み得る。
【0116】
ステップ(1):ターゲット行列の各行ベクトルの行ベクトルSについて、以下のステップ1、ステップ2及びステップ3を実行することができる。
【0117】
ステップ1:Sに含まれる各要素をCグループに分割する。ここで、Cは、符号化行列の列数を表すことができる。
【0118】
このステップでは、Cは、技術者によって事前設定され得る。分割によって得られた各グループにそれぞれ含まれる要素の数も、技術者によって事前設定され得る。
【0119】
オプションで、最初に、Sに含まれる要素の数とCの商を決定することができ、次に、決定された商に従って、Cグループの各グループに含まれる要素の数を決定することができる。
【0120】
例えば、できるだけ多くのグループに含まれる要素の数は、決定された商を切り上げ又は切り捨てた結果に等しくなることができる。
【0121】
ステップ2:Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定する。
【0122】
このステップでは、統計的特徴は、総和、期待値、分散、最大値、及び標準偏差のいずれかが含まれるが、これらに限定されない。特定の統計的特徴は、技術者によってさまざまな適用シナリオに従って選択され得る。
【0123】
ステップ3:得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定し、得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定する。
【0124】
このステップでは、ターゲット閾値Tは、技術者によって事前に設定され得る。
【0125】
オプションで、
【数3】
である。ここで、Dは、Sに含まれ得る要素の数を表し、Siは、Sのi番目の要素の値を表すことができる。
【0126】
ステップ(2):Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成することにより、符号化行列を取得する。
【0127】
さまざまな適用シナリオに応じて、各行ベクトルによって分割された各グループに含まれる要素の数を制御し、各グループにそれぞれ対応する統計的特徴を統計的特徴として使用して符号化処理を実現することにより、より多くの元の情報を保持するのに寄与し、それによりその後の行列一致と画像検索の精度を向上させることができる。
【0128】
オプションで、符号化処理は、以下のステップ第1、ステップ第2及びステップ第3を含み得る。
【0129】
ステップ第1:ターゲット行列の各行ベクトルに対して、以下の更新処理をそれぞれ実行して更新されたターゲット行列を取得する。行ベクトルを正規化処理し、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定する。ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、各要素にそれぞれ対応する正規化結果と正の相関がある。
【0130】
ここで、正規化処理は、具体的には、最初に行ベクトルに含まれる各要素の値の総和を決定することと、次に行ベクトルに含まれる各要素のそれぞれと決定された総和との商を、各要素に対応する正規化結果として決定することとを含み得る。
【0131】
オプションで、各要素に対応する正規化結果を各要素にそれぞれ対応する更新値として直接使用することができる。
【0132】
オプションで、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定することができる。ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、λと正の相関があることができる。
【0133】
例えば、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積を、この要素に対応する更新値として決定することができる。別の例として、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積の平方根を、この要素に対応する更新値として決定することができる。
【0134】
ステップ第2:更新されたターゲット行列の各行ベクトルの行ベクトルSに対して、Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、及び得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップを実行する。
【0135】
ステップ第3:Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得することができる。
【0136】
ここで、上記ステップ第2及びステップ第3の特定の実行プロセスは、上記ステップ(2)及びステップ(3)の関連する説明を参照することができ、ここでは繰り返さない。
【0137】
最初に、第1行列、第2行列、及び第3行列の各行ベクトルを正規化処理して、第1行列、第2行列、及び第3行列を更新することにより、第1行列、第2行列、及び第3行列のノイズを減らし、第1行列、第2行列、及び第3行列の普遍性と安定性を向上させることができ、さらに、その後の行列一致プロセスの精度を確保することができる。
【0138】
ステップ405:第1符号化行列と第3符号化行列との一致度を第1行列と第3行列との一致度として決定し、第2符号化行列と第3符号化行列との一致度を第2行列と第3行列との一致度として決定する。
【0139】
ステップ406:決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信する。
【0140】
このステップの特定の実行プロセスは、
図2に対応する実施例におけるステップ205の関連する説明を参照することができ、ここでは繰り返さない。
【0141】
なお、本開示におけるターゲット行列(第1行列、第2行列、及び第3行列セット内の第3行列を含む)の特定の構成方法は、柔軟に設定することができる。例えば、ターゲット行列がベクトルである場合、それは、行ベクトルであってもよいし、列ベクトルもであってもよい。ターゲット行列が複数のベクトルで構成されている場合、各ベクトルは、行ごとにターゲット行列を構成することができ、各ベクトルは、列ごとにターゲット行列を構成することもできる。行列の場合、行列の行は、この行列の転置行列の列である。したがって、本開示における「行」は、「列」に置き換えることもでき、対応する「列」は、「行」に置き換えることもできる。
【0142】
図4から分かるように、
図2に対応する実施例と比較して、本実施例における画像を検索するための方法のフロー400は、行列一致プロセス中において、行列を符号化処理して、一致計算に使用される行列の次元及び計算量を制御できることにより、行列一致プロセスの難しさ及び計算量を軽減し、一致速度を向上させることができ、それにより画像検索速度を向上させることができることを強調している。
【0143】
図5をさらに参照すると、上記各図に示されている方法の実現として、本開示は、画像を検索するための装置の一実施例を提供し、この装置の実施例は、
図2に示されている方法の実施例に対応し、この装置は、さまざまな電子デバイスに具体的に適用することができる。
【0144】
図5に示すように、本実施例が提供する画像を検索するための装置500は、取得ユニット501、決定ユニット502及び送信ユニット503を含む。ここで、取得ユニット501は、ターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得するように構成され、取得ユニット501は、ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得するようにさらに構成され、ここで、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用され、取得ユニット501は、画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得するようにさらに構成され、決定ユニット502は、第3行列セット内の第3行列について、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するように構成され、送信ユニット503は、決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信するように構成される。
【0145】
本実施例では、画像を検索するための装置500において、取得ユニット501、決定ユニット502及び送信ユニット503の特定の処理及びそれらによってもたらされる技術的効果は、
図2に対応する実施例におけるステップ201、ステップ202、ステップ203、ステップ204及びステップ205の関連する説明をそれぞれ参照することができ、ここでは繰り返さない。
【0146】
本実施例のいくつかの任意選択の実装形態では、決定ユニット502は、第1行列の第1プリセット重みを取得し、第2行列の第2プリセット重みを取得し、取得された第1プリセット重み及び第2プリセット重みに基づいて、第1行列と第3行列との一致度と、第2行列と第3行列との一致度の加重和に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定するようにさらに構成される。
【0147】
本実施例のいくつかの任意選択の実装形態では、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度は、第1行列、第2行列、及び第3行列をそれぞれターゲット行列として、ターゲット行列を符号化処理して、第1符号化行列、第2符号化行列、及び第3符号化行列を得、ここで、符号化処理は、ターゲット行列をバイナリ符号化行列にマッピングするために使用されるステップ、及び第1符号化行列と第3符号化行列との一致度を、第1行列と第3行列との一致度として決定し、第2符号化行列と第3符号化行列との一致度を、第2行列と第3行列との一致度として決定するステップにより決定される。
【0148】
本実施例のいくつかの任意選択の実装形態では、符号化処理は、
ターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0149】
本実施例のいくつかの任意選択の実装形態では、Sに含まれる各要素をCグループに分割し、それは、Sに含まれる要素の数とCの商を決定することと、決定された商に従ってCグループの各グループに含まれる要素の数を決定することとを含む。
【0150】
本実施例のいくつかの任意選択の実装形態では、
【数4】
ここで、DはSに含まれる要素の数を表し、SiはSのi番目の要素の値を表す。
【0151】
本実施例のいくつかの任意選択の実装形態では、符号化処理は、
更新されたターゲット行列を取得するために、ターゲット行列の各行ベクトルに対して、行ベクトルを正規化処理し、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定するという更新処理をそれぞれ実行し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、各要素にそれぞれ対応する正規化結果と正の相関があり、
更新されたターゲット行列の各行ベクトルの行ベクトルSについて、
Sに含まれる各要素をCグループに分割し、ここで、Cは符号化行列の列数を表すステップ、
Cグループのグループについて、このグループに含まれる要素の値の統計的特徴を決定するステップ、
得られた統計的特徴がターゲット閾値Tより大きいと決定したことに応答して、このグループのコード値が1であると決定するステップ、
得られた統計的特徴がTより小さいと決定したことに応答して、このグループのコード値が0であると決定するステップ、及び
Cグループの各グループにそれぞれ対応するコード値で符号化行列の1行を構成して、符号化行列を取得するステップを実行するということを含む。
【0152】
本実施例のいくつかの任意選択の実装形態では、行ベクトルの正規化結果に従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、ここで、行ベクトルに含まれる各要素にそれぞれ対応する更新値は、λと正の相関があるということを含む。
【0153】
本実施例のいくつかの任意選択の実装形態では、行ベクトルの正規化結果及び事前設定された調整パラメータλに従って、行ベクトルに含まれる各要素にそれぞれ対応する更新値を決定し、それは、行ベクトルに含まれる各要素の要素について、この要素に対応する正規化結果とλの積の平方根を、この要素に対応する更新値として決定するということを含む。
【0154】
本実施例のいくつかの任意選択の実装形態では、第1行列は、
スケッチを少なくとも2つのサブ画像に分割するステップ、
予め訓練された畳み込みニューラルネットワークを使用してそれぞれ少なくとも2つのサブ画像を特徴抽出して、少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルを得るステップ、及び
少なくとも2つのサブ画像にそれぞれ対応する特徴ベクトルで構成される行列を第1行列として決定するステップにより得られる。
【0155】
本実施例のいくつかの任意選択の実装形態では、畳み込みニューラルネットワークは、
スケッチセットを取得し、スケッチセット内の各スケッチにそれぞれ対応する一致する画像セットを取得し、ここで、スケッチ及び対応する一致する画像セット内の一致する画像は、同じアイテムを提示するために使用されるステップ、及び
スケッチセットからスケッチを選択し、以下の訓練ステップを実行するステップにより訓練して得られる。
それらの訓練ステップは、
初期モデルを使用して選択されたスケッチ及びターゲット画像セット内の各画像をそれぞれ特徴抽出して、スケッチ及びターゲット画像セット内の各画像にそれぞれ対応する出力行列を取得する訓練ステップと、
得られたスケッチに対応する出力行列のそれぞれとターゲット画像セット内の各画像にそれぞれ対応する出力行列との一致度を決定し、対応する一致度が事前設定された閾値より大きい画像を選択する訓練ステップと、
選択された画像及び入力されたスケッチに対応する一致する画像セットに従って、選択された画像に対応するリコール率及び/又は精度を決定し、決定されたリコール率及び/又は精度に従って、初期モデルの訓練が完了しているかどうかを決定する訓練ステップと、
初期モデルの訓練が完了していると決定したことに応答して、訓練された初期モデルを畳み込みニューラルネットワークとして決定する訓練ステップと、
初期モデルの訓練が完了していないと決定したことに応答して、決定されたリコール率及び/又は精度に従って、初期モデルのパラメータを調整し、調整された初期モデルを初期モデルとして決定し、スケッチセットからスケッチを再選択し、上記訓練ステップを実行し続ける訓練ステップと、を含む。
【0156】
本開示の上記実施例が提供する装置は、取得ユニットによりターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得し、ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、ここで、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用され、画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得し、第3行列セット内の第3行列について、決定ユニットは、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定し、決定された一致度に基づいて、送信ユニットは、画像セットから事前設定数の画像を選択し、選択された画像を送信し、それによりユーザがアイテムの元の画像を提供できないことによる検索を実行できないか、又は検索結果の精度が低いという状況を回避することができる。同時に、スケッチが提供するアイテムのサイズや構造などの特徴と、キーワードが提供するアイテムの意味的特徴を組み合わせることにより、検索結果の正確さを確保する。
【0157】
以下、
図6を参照すると、
図6は、本開示の実施例を実現するのに適した電子デバイス(例えば、
図1のサーバ)600の構造模式図を示している。本開示の実施例における端末装置には、携帯電話、ノートブックコンピュータ、デジタル放送受信機、PDA(携帯情報端末)、PAD(タブレットコンピュータ)、PMP(携帯型マルチメディアプレーヤー)、及び車載端末(例えば、車載ナビゲーション端末)などのモバイル端末、及びデジタルテレビ、デスクトップコンピュータなどの固定端末が含まれ得るが、これらに限定されない。
図6に示されているサーバは、単なる一例であり、本開示の実施例の機能及び使用範囲に制限をもたらすべきではない。
【0158】
図6に示すように、電子デバイス600は、読み取り専用メモリ(ROM)602に記憶されたプログラム又は記憶装置608からランダムアクセスメモリ(RAM)603にロードされたプログラムに従って、さまざまな適切な動作及び処理を実行できる 処理装置(例えば、中央処理装置、グラフィックスプロセッサなど)601を含み得る。RAM 603には、電子デバイス600の操作に必要なさまざまなプログラム及びデータも記憶される。処理装置601、ROM602及びRAM603は、バス604を介して互いに接続されている。入出力(I/O)インターフェース605もバス604に接続されている。
【0159】
一般に、以下の装置をI/Oインターフェース605に接続することができる。タッチスクリーン、タッチパッド、キーボード、マウス、カメラ、マイクロフォン、加速度計、及びジャイロスコープなどを含む入力装置606、液晶ディスプレイ(LCD)、スピーカー、及びバイブレータなどを含む出力装置607、磁気気テープやハードディスクなどを含む記憶装置608、及び通信装置609。通信装置609は、電子デバイス600が他の装置と無線通信又は有線通信を実行してデータを交換することを可能にし得る。
図6は、さまざまな装置を有する電子デバイス600を示しているが、示された装置のすべてを実装又は有する必要はないことを理解すべきである。かわりに装置を多かれ少なかれ実施又は備えることができる。
図6に示されている各ブロックは、1つの装置を表すことができるか、必要に応じて複数の装置を表すこともできる。
【0160】
特に、本開示の実施例によれば、フローチャートを参照して上記で説明したプロセスを、コンピュータソフトウェアプログラムとして実現することができる。例えば、本開示の実施例は、コンピュータ可読媒体に搭載されたコンピュータプログラムを含むコンピュータプログラム製品を含み、このコンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。そのような実施例では、このコンピュータプログラムは、通信装置609を介してネットワークからダウンロード及びインストールされ得るか、又は記憶装置608からインストールされ得るか、又はROM602からインストールされ得る。このコンピュータプログラムは、処理装置601によって実行されるとき、本開示の実施例の方法で定義された上記機能が実行される。
【0161】
なお、本開示の実施例で説明されるコンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体、或いは上記2つの任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電気、磁気、光学、電磁、赤外線、又は半導体のシステム、装置又はデバイス、或いは上記の任意の組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例には、1つ又は複数のワイヤを有する電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせが含まれ得るが、これらに限定されない。本開示の実施例では、コンピュータ可読記憶媒体は、プログラムを含む又は記憶する任意の有形媒体であってもよく、このプログラムは、命令実行システム、装置又はデバイスによって使用され得るか、又はそれらと組み合わせて使用され得る。本開示の実施例では、コンピュータ可読信号媒体は、ベースバンド内にあるか、又は搬送波の一部として伝搬されるデータ信号を含み得、コンピュータ可読プログラムコードがその中に運ばれる。この伝搬されたデータ信号は、電磁信号、光信号又は上記の任意の適切な組み合わせを含むが、これらに限定されない多くの形態をとることができる。コンピュータ可読信号媒体はまた、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。このコンピュータ可読信号媒体は、命令実行システム、装置又はデバイスによって使用されるか、又はそれらと組み合わせて使用されるためのプログラムを送信、伝搬又は伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、ワイヤ、光ケーブル、RF(無線周波数)など、又は上記の任意の適切な組み合わせを含むがこれらに限定されない、任意の適切な媒体によって伝送され得る。
【0162】
上記コンピュータ可読媒体は、上記電子デバイスに含まれてもよく、この電子デバイスに組み立てられずに単独で存在していてもよい。上記コンピュータ可読媒体には、1つ又は複数のプログラムが搭載され、上記1つ又は複数のプログラムがこの電子デバイスによって実行されると、この電子デバイスは、ターゲットアイテムのスケッチを特徴抽出して得られた第1行列を取得し、ターゲットアイテムに対応するキーワードセット内のキーワードの単語ベクトルで構成される第2行列を取得し、ここで、キーワードセット内のキーワードは、ターゲットアイテムを説明するために使用され、画像セット内の各画像をそれぞれ特徴抽出して得られた第3行列セットを取得し、第3行列セット内の第3行列について、第1行列と第3行列との一致度、及び第2行列と第3行列との一致度に従って、第3行列に対応する画像が提示するアイテムとターゲットアイテムとの一致度を決定し、決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信する。
【0163】
本開示の実施例の操作を実行するためのコンピュータプログラムコードは、1つ又は複数のプログラミング言語又はそれらの組み合わせで書くことができ、前記プログラミング言語は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語を含み、「C」言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語をさらに含む。プログラムコードは、ユーザコンピュータで完全に実行するか、その一部をユーザコンピュータで実行するか、独立したソフトウェアパッケージとして実行するか、その一部をユーザコンピュータで実行し、その一部をリモートコンピュータで実行するか、又はリモートコンピュータ又はサーバで完全に実行することができる。リモートコンピュータの場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含むあらゆる種類のネットワークを介してユーザコンピュータに接続され得るか、又は、外部コンピュータに接続され得る(例えば、ンターネットサービスプロバイダーを使用してインターネット経由で接続する)。
【0164】
図面におけるフローチャート及びブロック図は、本開示のさまざまな実施例による、システム、方法及びコンピュータプログラム製品の実現可能なアーキテクチャ、機能及び操作を示している。この点に関して、フローチャート又はブロック図の各ブロックは、モジュール、プログラムセグメント、又はコードの一部を表すことができ、このモジュール、プログラムセグメント、又はコードの一部は、指定された論理機能を実現するための1つ又は複数の実行可能な命令を含む。いくつかの代替としての実装では、ブロックにマークされた機能も図面にマークされた順序とは異なる順序で発生する可能性があることにも注意する必要がある。例えば、連続して表された2つのブロックは、実際には実質的に並行して実行されてもよく、それらは、関係する機能によって、逆の順序で実行される場合がある。ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、指定された機能又は操作を実行する専用のハードウェアベースのシステムで実装されてもよく、又は専用のハードウェアとコンピュータ命令の組み合わせで実装されてもよいことにも注意する必要がある。
【0165】
本開示で説明される実施例に含まれるユニットは、ソフトウェアの方法により実装されてもよく、ハードウェアの方法により実装されてもよい。説明されたユニットは、プロセッサに設置されてもよい。例えば、それは次のように説明することができる。プロセッサであって、取得ユニット、決定ユニット及び送信ユニットを含む。ここで、これらのユニットの名称は、特定の状況下でこのユニット自体の制限を構成するものではない。例えば、送信ユニットはさらに、「決定された一致度に基づいて、画像セットから事前設定数の画像を選択し、選択された画像を送信するユニット」と説明されてもよい。
【0166】
上記の説明は、本開示の好ましい実施例、及び適用される技術原理の説明にすぎない。当業者であれば、本開示の実施例に含まれる本発明の範囲は、上記技術的特徴の特定の組み合わせによって形成される技術的解決手段に限定されず、同時に、上記発明概念から逸脱することなく、上記技術的特徴又はそれらの同等の特徴の任意の組み合わせによって形成される他の技術的解決手段もカバーする必要があることは、当然理解される。例えば、上記特徴と、本開示の実施例で開示された(ただし、これらに限定されない)同様の機能を有する技術的特徴とを互いに置き換えることにより形成される技術的解決手段である。