「Amazonで名前のわからない商品を検索したい」
「Amazonで画像検索する方法を知りたい」
「Amazonの画像検索を利用するコツを知りたい」
Amazonを利用していると、このような悩みを抱えることもあるのではないでしょうか。
Amazonで商品を検索する場合、ほとんどの人が検索ボックスに名前やジャンルを入力して検索していると思います。しかし、この方法では商品の見た目しか分からない時に上手く検索できず、なかなか目的の商品を見つけられません。
そんな時に役立つのが画像検索です。画像検索は名前だけでなくASINのコードが分からないときにも活躍するので、せどりの場面でも役立ちます。
そこで本記事では、以下の内容について解説します。
- Amazonで画像検索を利用する方法
- Amazonの画像検索を使いこなすコツ
- APIで画像検索を行う方法
今回は、使いこなすと便利な画像検索の方法や利用する上での注意点について見ていきましょう。
Amazonの画像検索について

Amazonにおける画像検索とは、その名前のとおり、画像を使って商品を検索する方法です。キーワード検索とはまた違った角度から検索ができるので、画像検索ならではのメリットとデメリットがあります。
まずは、画像検索の有用性について解説していきます。キーワード検索しかしたことがないという人は参考にしてください。
画像検索が役立つ場面
Amazonにおいて画像検索が役立つ場面は主に2つあります。商品の画像はあっても名前が分からない時と、ASINコードが不明な時です。
名前が分からないというのは、商品名が分からず検索ワードを設定できない場合のことです。この時に画像検索を用いることで商品名が分からずとも画像から商品検索を行うことができるのです。
一方、ASINとは、Amazonが商品ごとに設定した独自のコードです。このコードが分かれば、日本のAmazonで見つけた商品をアメリカのAmazonで探すこともできます。しかし中にはこのコードが紐づけられていない商品も存在するため、それらを見つけるために画像検索を用いるのです。
ASINコードが設定されてない商品は見つけにくい商品であり、裏を返せば見えないニーズが眠っている可能性のある商品とも言えます。せどりの際は利益を出すチャンスなので覚えておきましょう。
Amazonでのバーコード検索及び画像検索の方法

キーワード検索以外にもバーコード検索、画像検索といった方法で目的の商品を探すことができます。使いこなすと商品を見つけるまでの時間が格段に早くなるので覚えておきましょう。
続いては、バーコード検索及び画像検索の方法を紹介していきます。今までキーワード検索ばかり使ってきた人はぜひ活用してみてください。
1.バーコード検索の方法
バーコード検索は、Amazonショッピングアプリのバーコードスキャンを用いて行います。まずはアプリをインストールしてください。

インストールが済んだら、トップ画面を開きます。そして画面右上にあるカメラアイコンをタップしてください。

撮影を許可するとカメラが起動します。画面下部の「Barcode」をタップしてください。

これでバーコードのスキャンが可能になりました。該当商品のバーコードを画面中央に写してスキャンを行ってください。

無事にスキャンが完了すると、該当する商品が表示されます。そのまま商品をタップすることで商品ページに移動しましょう。
2.画像検索の方法
画像検索もバーコード検索同様にAmazonショッピングアプリをインストールして行います。カメラを起動するまでは同様の手順を取ってください。

カメラが起動したら、画面下部の「Camera」をタップし、該当商品をカメラに収めたら画面中央の「白い丸マーク」をタップします。

この状態で検索したい商品をカメラに写すことで、該当商品がスキャンされ自動で検索が行われます。商品の形や絵、文字などがスキャンされるため、全体がよりきれいに映るようにするとより精度の高いスキャンが可能です。
既に撮影済みの写真からでも検索できる
商品の現物がない場合でも、既に撮影した写真があればそこから検索が可能です。写真に写った商品の詳細が知りたい時等に便利なので覚えておきましょう。
カメラの起動までは上記でご紹介したのと同様の手順で行い、今度は画面下部の「StyleSnap」をタップします。すると所持している写真の中から写真を選択できるようになるので、該当する写真を選択してください。

写真を選択すると、これまでと同じように該当する商品の検索結果が表示されます。写真の解像度が高ければ高いほど正確な検索が可能なので、出来るだけ検索したい商品が大きく鮮明に映っている写真を選びましょう。
スキャン画面へのショートカット(iPhone限定)
iPhoneユーザー限定ですが、ホーム画面のアプリ長押し→メニューから「スキャン検索」をタップすることでカメラ画面にショートカットが可能です。

カメラ画面からバーコード検索や画像検索、写真検索を切り替えて利用できるのでスキャンによる検索を多用するiPhoneユーザーは覚えておきましょう。
Google画像検索で効率的な商品検索をしよう

Amazonだけでなく、実はGoogleでも同様の画像検索が可能です。気になる商品を一発で見つけることができるので、両者を組み合わせて使用するとさらに効率的に商品を探したり比較したりできるでしょう。
ということで、ここではGoogle画像検索について紹介していきます。せどりなどの商品リサーチには必須テクニックなので、ぜひ活用してみてください。
Google画像検索について
Google画像検索とは、画像を指定することでGoogleの膨大な情報量の中から同様の画像や類似する画像を自動で検索して表示してくれるというものです。検索は自分の持っている画像はもちろん、Google内で見つけた画像のURLからでも検索ができます。

カメラマークを選択することで、画像を用いた検索が可能になります。また、検索窓に文字を打ち込んでも関連する画像を表示してくれます。
参考:Google画像検索
Google画像検索を利用した商品リサーチの方法
Google画像検索を用いる事で、商品価格の比較や販売状況などのリサーチも可能になります。例を出しながらやり方を見ていきましょう。
今回は画像検索元としてアメリカのAmazonを利用します。
サイトの中から適当な日本製商品を選んでください。

商品が決まったら画像を長押し(PCの場合は右クリック)して「Googleレンズで検索(PCの場合は「Google Lensで画像を検索」)」をタップします。

するとこのように同様の画像を使用した各種サイトが表示されます。

これで各販売サイトで売っている該当商品の値段や販売状況が一目瞭然になるという訳です。
参考:Amazon.com
Google画像検索の小技
画像検索の際は、他の写真でも検索を行ってみるとまた違った検索結果が表示されます。例えば先のAmazonの例であれば、2枚目以降の画像でも画像検索を行うことで、1枚目の画像だけでは検索結果に表示されなかった格安サイトが表示されるといったこともあるのです。
また、画像検索は国内外問わず利用できるので、日本製品同士での比較はもちろん、海外サイトとの比較や類似商品との比較もできます。よくよく探してみると最安値のサイトが別にあったということは多いので、販売価格を決める際の参考にしてください。
画像検索を行う際は、複数の画像から検索を行うことでより検索精度が高まることを覚えておきましょう。
Amazonの画像検索をAPIで行う方法

Amazonの画像検索は、「AmazonRekognition」というAPIを活用することでも行えます。
手順の概要は以下の通りです。
ここでは、「AmazonRekognition」の活用方法を紹介するので、ぜひ参考にしてください。
awsのIAMユーザーを作成する
まずは、awsのIAMユーザーを作成しましょう。
この際に作成されるAccess Key IDとSecret access keyは保管しておきます。
また、Amazon s3、Amazon Rekogniton、Amazon Translateを使用するため、アクセスを許可しておきましょう。
aws s3のバケットを作成する
次に、s3にアクセスしてバケットを作成します。
任意のバケット名をつけ、リージョンを設定しましょう。
環境変数を設定する
保管してあるAccess key IDとSecret access keyを環境変数に設定しましょう。
以下が入力するコードです。
zprofileまたは.bash_profile
export AWS_ACCESS_KEY_ID=<取得したAccess key ID>
export AWS_SECRET_ACCESS_KEY=<取得したSecret access key>
ここまでの設定を終えたら、本題の画像検索機能を実装しましょう。
Gemをインストールする
次に、以下のgemをインストールしましょう。
gem ‘aws-sdk-s3’
gem ‘aws-sdk-rekognition’
gem ‘aws-sdk-translate’
Amazonの画像のアップロード画面を作成する
次に、画像入力のビューを作りましょう。
以下は、active storageを使用しています。
<%= form_with url: image_search_bugs_path, method: :post, local: true do |f| %>
<div class=”form-group mb-3″>
<p style=”color: red;”>※ファイル形式は`png`か`jpeg`でお願いします。</p>
<%= f.file_field :image, class: ‘form-control’, id: ‘input_image’, accept: ‘image/png, image/jpeg’ %>
</div>
<div class=”mb-3″>
<%= image_tag ”, id: ‘image_preview’, style: ‘display: none;’ %>
</div>
<div class=”actions mb-3″>
<%= f.submit ‘検索する’, class: ‘btn btn-primary’ %>
</div>
<% end %>
画像をs3に保存する
以下のコードを入力し、取得した画像をs3に保存します。
def upload_image(data)
credentials = Aws::Credentials.new(
ENV[‘AWS_ACCESS_KEY_ID’],
ENV[‘AWS_SECRET_ACCESS_KEY’]
)
region = ‘us-east-1’
# アップロードされた画像をs3に保存
s3_client = Aws::S3::Client.new(region: region, credentials: credentials)
body = data
bucket = ‘先程作成したバケット名’
key = “任意の名前”
s3_client.put_object({
body: body,
bucket: bucket,
key: key
})
put_labels(key, s3_client)
end
次に、upload_imageというメソッドを作り、画像データを引数として受け取ります。
credentials = Aws::Credentials.new(
ENV[‘AWS_ACCESS_KEY_ID’],
ENV[‘AWS_SECRET_ACCESS_KEY’]
)
region = ‘us-east-1’
credentialsとregionを定義します。
regionはs3のバケットを作成したときに設定したものを指定しましょう。
s3_client = Aws::S3::Client.new(region: region, credentials: credentials)
body = data
bucket = ‘article-image-search’
key = “article_image”
s3_client.put_object({
body: body,
bucket: bucket,
key: key
})
put_labels(key, s3_client, credentials, bucket)
bodyに引数で受け取った画像データを代入しましょう。
bucketには先ほど作成したバケット名を定義します。
keyには任意の値を指定してください。
put_objectメソッドを使用し、s3に画像を保存します。
最後は、この後作成するput_labelsというメソッドを呼び出しましょう。
画像のラベルを検出する
def put_labels(key, s3_client, credentials, bucket)
rekogniton_client = Aws::Rekognition::Client.new(credentials: credentials)
attrs = {
image: {
s3_object: {
bucket: bucket,
name: key
},
},
max_labels: 10
}
response = rekogniton_client.detect_labels attrs
label_list = []
response.labels.each do |label|
label_list << label.name.downcase
end
s3_client.delete_objects({
bucket: bucket,
delete: {
objects: [
{
key: key
},
],
quiet: false
}
})
translate_label(label_list)
rekogniton_client = Aws::Rekognition::Client.new(credentials: credentials)
attrs = {
image: {
s3_object: {
bucket: bucket,
name: key
},
},
max_labels: 10
}
max_labelsで検出するラベルの上限を指定できます。
response = rekogniton_client.detect_labels attrs
label_list = []
response.labels.each do |label|
label_list << label.name.downcase
detect_labelsを使い、解析した画像データを取得して、ラベル名だけを配列に入れます。
このとき、ラベル名の頭文字が大文字になっていることがあるのでdowncaseメソッドを使ってすべて小文字に変換しましょう。
頭文字が大文字のままでは、次で説明する日本語翻訳がうまくいかないためです。
s3_client.delete_objects({
bucket: bucket,
delete: {
objects: [
{
key: key
},
],
quiet: false
}
})
translate_label(label_list)
delete_objectsメソッドを使って、画像認識に使用した画像を削除しましょう。
最後に次で作成するtranslate_labelという日本語翻訳するためのメソッドを呼び出します。
ラベル名を翻訳する
def translate_label(label_list)
region = ‘us-east-1’
# ラベルを翻訳
translate_client = Aws::Translate::Client.new(
region: region,
credentials: credentials,
)
label_list_ja = []
label_list.each do |label|
res = translate_client.translate_text({
text: label,
source_language_code: ‘auto’,
target_language_code: ‘ja’
})
label_list_ja << res.translated_text
end
# ラベルのリストを返す
label_list_ja
end
label_list.each do |label|
res = translate_client.translate_text({
text: label,
source_language_code: ‘auto’,
target_language_code: ‘ja’
})
label_list_ja << res.translated_text
end
translate_textメソッドを使用して先程のラベル名を翻訳しましょう。
textには翻訳したいテキストを指定します。
source_language_codeには翻訳前の言語を指定してください。
autoを指定するとAPI側が簡単に指定してくれます。
target_language_codeには、翻訳後の言語を指定しましょう。
翻訳したラベルのリストをlabel_list_jaに代入して値を返します。
あいまい検索のメソッドを作成する
上記の手順で翻訳したラベルの配列を使用し、あいまい検索をかけます。
def label_search(label_list)
relation = Bug.distinct
result = []
label_list.each do |label|
relation.where(‘name LIKE ?’, “%#{label}%”)
.or(relation.where(‘feature LIKE ?’, “%#{label}%”))
.or(relation.where(‘approach LIKE ?’, “%#{label}%”))
.or(relation.where(‘prevention LIKE ?’, “%#{label}%”))
.or(relation.where(‘harm LIKE ?’, “%#{label}%”))
.each { |bug| result << bug }
end
result.uniq!
end
上記コードでは、orメソッドを使ってor検索をしています。
取得したレコードを配列にいれ、uniq!メソッドを使って重複したレコードを削除しましょう。
コントローラを作成する
コントローラに以下のコードを追加しましょう。
class BugsController < ApplicationController
include SearchImagesHelper
def image_search
if params[:image]
label_list = upload_image(data)
bug_array = label_search(label_list)
if bug_array.present?
@bugs = Bug.where(name: bug_array.map(&:name)).page(params[:page])
else
@bugs = Bug.none.page(params[:page])
end
render :index
end
redirect_to bugs_path
end
end
先ほど作成したヘルパーをインストールします。
if params[:image]
label_list = upload_image(data)
paramsで画像データを取得し、それを引数にして先ほど作成したupload_imageメソッドを呼び出します。
呼び出したラベルの配列データをlabel_listに代入しましょう。
bug_array = label_search(label_list)
すでに作成済みのlabel_searchを使って、レコードの配列を取得します。
if bug_array.present?
@bugs = Bug.where(name: bug_array.map(&:name)).page(params[:page])
else
@bugs = Bug.none.page(params[:page])
end
render ‘bugs/index’
kaminariというページネーションのgemで使用できるようになるpageメソッドを使う際は、Arrayクラスでは使用できません。
したがって、whereメソッドとnoneメソッドを使用し、無理やりActiveRecord::Relationクラスに変更させます。
Amazonの画像検索で見つけにくい商品について

画像検索の利便性はこれまでに述べてきたとおりですが、一見万能にみえる画像検索においても検索しずらい商品は存在します。
以下で紹介する商品は、画像検索を用いても正確に検索することが難しいです。キーワード検索やバーコード検索も視野に入れて検索を行ってください。
1.パッケージが立体的な商品
前述したとおり、画像検索は表面的な絵や文字を元に検索を行います。そのためパッケージが立体的な商品に対しては正確な検索が行えない場合があります。
例えば、フィギュアなどの立体的なパッケージ商品は上手く検索することができません。以下の画像にあるような、印刷箇所が少ないパッケージだと検索に反映できる要素が少なくなってしまうので上手く検索が機能しないのです。

同じフィギュアでも、次の商品のようにパッケージの情報量が多い場合には画像検索が機能します。

以上より、中の商品を直接見せるような立体的で奥行きのあるパッケージの商品には画像検索を利用しない方がいいでしょう。
2.中古の商品
画像検索の元になるのは、Amazonに登録されている画像です。そしてこの画像は、基本的に、新品でパッケージに封入された状態のものです。
つまりパッケージから出した状態の中古商品では画像検索が上手く機能せず、同じ商品でも検索結果に表示されない可能性があるのです。画像検索においてはパッケージの存在が何よりも大切であると言えるでしょう。
また、パッケージから出した商品は先ほど解説した立体的で奥行きのある商品に該当します。読み込みが上手くいかないことも多々あるので、中古商品に関しては画像検索を用いない方がいいでしょう。
画像検索でより正確にスキャンするコツ

同じ商品を画像検索のためにスキャンするにしても、方法次第では検索の精度が変わってきます。正確な検索を行いたいのであれば、より正確に商品情報が分かるようにスキャンを行わなければいけません。
ここでは、正確なスキャンを行うためのコツについて紹介します。なかなか商品のスキャンが上手くいかないという人はぜひ活用してみてください。
1.メーカーやブランドのロゴが写るようにする
画像検索は、写った文字や絵などから該当商品の検索を行います。そのため、商品検索の正確性を高める上で、メーカーやブランドのロゴが重要な役割を担っています。
例えば、以下の画像をご覧ください。


同じ商品にもかかわらず、表面と裏面とでは検索結果が異なってきます。
メーカーやブランドのロゴが写っているだけでかなり検索の精度が上がりますので、必ず写るようにスキャンを行ってください。
2.画像は正面が写ったものを使用する
商品ごとの特徴的な文字や絵が最も凝縮されているのは正面です。そのため、自分で写真を撮る場合はもちろん、ネット上の画像で検索する際にも正面が正確に認識できる画像を利用しましょう。
例えば、以下のように画像に角度がついてしまうと上手く認識されない可能性がありますので注意しましょう。

3.バーコードは積極的にスキャンする
バーコードとはその商品を識別するためのコードでもあるので、バーコード付きの商品であれば何より優先してバーコードをスキャンしてみましょう。

バーコードさえあれば、たとえ前述した二つの注意事項を無視しても正確な検索結果が表示されます。検索にかかる時間も圧倒的に早くなるので、積極的に検索に利用してください。
4.チラシを効果的に利用する
ちょうどいい画像がない場合は、チラシに掲載されている画像を活用しましょう。現物のチラシでもいいですし、チラシサイトからダウンロードした画像を使っても問題ありません。

なお、画像はスキャンする前にちょうどいいサイズに拡大しておきましょう。
サイズを整えたら画像検索で写真から検索することで、該当商品の検索が可能になります。
この機能を活用すれば、セールの始まった商品をいち早くリサーチすることが可能になるので、リサーチ速度が格段に上がります。
チラシの検索は、画像を撮ってから一度保存したものを利用してもいいですし、そのまま直接カメラでスキャンしても大丈夫です。
Amacodeでより迅速なリサーチを行う

Amacodeは、せどりに活用される検索ツールです。これとAmazonの画像検索を組み合わせることで、すぐに商品カタログを検索することが可能になります。
いちいちせどり検索ツールを使う必要がなくなるので、格段にリサーチの速度が上がります。せどりで画像検索を活用する人は併せて覚えておきましょう。
AmazonとAmacodeを連携する方法
まずはAmacodeのアプリをインストールします。インストールは下記の参照より行ってください。
次にAmazonショッピングアプリを起動し、画像検索を用いて商品の検索を行ってください。

商品ページを表示したら、ページ内の「詳細」とある箇所の右側にある矢印をタップして商品の詳細ページに移動します。

ページ下部の「登録情報」欄にASINの項目があるので、コード部分を長押しします。すると以下のような項目が表示されるので、「共有」をタップしてください。

共有先一覧が表示されます。先ほどのAmacodeのインストールが上手くいっていれば、一覧の中にAmacodeが表示されるはずですのでタップしてください。

もし共有先にAmacodeがない場合は、「その他」をタップしてAmacodeにチェックを入れれば一覧に表示されるようになります。

Amacodeをタップすることで、先ほどのASINを元にAmacode内で商品の情報が表示されます。いちいちコピーして別アプリを立ち上げるよりも圧倒的に早いので、積極的に利用していきましょう。
まとめ

Amazonの画像検索は、キーワード検索とは別の視点から検索を行うことができる便利な機能です。時にはキーワード検索以上の速度で目的の商品を検索することができるため、積極的に利用していきましょう。
ただし、画像検索では検索しにくい商品もありますので、キーワード検索との使い分けが大切です。また、バーコードを探したり正面からの画像を使ったりと、検索精度を上げるコツも併せて覚えておけば、迅速に検索できるようになるでしょう。
特にせどりでは商品リサーチのスピードが命です。これらの検索方法をうまく活用しながら、より早く、そしてより正確な商品リサーチを行っていきましょう。