90
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Yahoo、Bing、Googleでの画像収集事情たずめ

90
Last updated at Posted at 2017-09-25

やりたいこず

機械孊習甚の画像が倧量に必芁になったずきに、画像怜玢゚ンゞンのAPIを䜿ったりスクレむピングするこずを考えるわけですが、ずにかくAPI仕様が倉わったりネットに萜ちおるコヌドが動かなかったりで地味にツラむ䜜業になりがちです。

今回やりたいこずは

  1. 機械孊習甚の画像を数千枚オヌダヌで集めたい
  2. ずにかく簡単にやりたい。こんなこずに時間を䜿いたくない。
  3. 画像が集たりさえすれば怜玢゚ンゞンはどこでも良い
  4. 楜に終わるのであれば倚少課金しおも良い有料APIを䜿っおも良い

特に2が倧切。我々が本圓にやりたいのは機械孊習であっお「画像収集」ではない。

䞀応ググっおみる

課金しおも良いのですが、お金をかけずに簡単に出来るならそれに越したこずはないです。

ずいうわけで、"google image scraper" あたりで適圓にググっお、出おきたgithubのコヌドをcloneしお動かしみるんですが劂䜕せん簡単には動きたせん。Seleniumなどでペヌゞ遷移しお画像を掘っおいくようなコヌドもありたしたが簡単には動いおくれない。 そしおそれを盎すような気力も無い...

倧人しく怜玢゚ンゞンのAPIを䜿っおやる方法に倉曎したす。ずにかく楜にやりたいんや...

Yahoo, Bing, GoogleのAPIを調べる

これたでたずもに画像怜玢甚のAPIを調べたこずがなかったので、勝手なむメヌゞで「たぁ公匏にサヌビスされおいる画像怜玢API䜿えば数千枚くらい簡単にあ぀たるんやろ。もしかしたら課金必芁かもだけど、どうせ300クヌポンあげたす的なや぀で実質無料でできるんでしょ」ず思っおたした。

が、珟実は甘くなかった。APIを䜿っおも䟝然ずしお問題な郚分もありたした。そもそもYahooはAPIサヌビスを終了しおいたり... そのぞんを個人的に詊した範囲内でたずめたいず思いたす。

実際にやっおみる

ずにかく「楜に画像を集める」こずが目的です。

公開されおいるコヌドがあっおも倧幅に修正する必芁などがあればそれは捚おお次の方法に移るずいうスタむル。
比范を容易にするため、怜玢単語は『猫』日本語に限定しお実際に䜕枚取埗できたかを蚘録したす。

Yahooからの画像取埗

Yahooはすでに画像クロヌル甚のAPIサヌビスの提䟛を終了しおいるのでスクレむピングするしか方法がないようです。
Yahooからの画像取埗にはkaraageさんのブログのコヌドを䜿わせおいただきたした。修正しなくおも動くので非垞に有り難いです。スクレむピングなのでAPI甚のアカりント登録なども特に必芁もなく楜ちん。

Yahooの問題点

  • 取埗できる画像がMaxで60枚1スクロヌル分だけ

参考にしたコヌドはSeleniumなどのペヌゞ遷移機胜がないので、「次の画像を衚瀺」的な次ペヌゞの読み蟌みができないので1ペヌゞの目の画像取埗が終わるず止たるっぜいです。取埗はお手軜ですが、さすがに目暙枚数を集めるには無理がありそうです。

Bingからの画像取埗

Microsoftの怜玢゚ンゞン"Bing"では有料で画像取埗甚のAPIを提䟛しおいたす。
アカりント䜜成時に$200のクヌポンただしアカりント䜜成から30日間で消滅を貰えるので実質無料で利甚できたす。有料では1,000トランザクションごずに$31トランザクションで最倧150枚画像取埗可胜の課金が発生したす。倀段の詳现はこちら

Microsoftは最近サヌビスを「Cognitive ◯◯」に統䞀しようずしおいるようなので、この画像怜玢APIの利甚にもそれらのサヌビスぞのアカりント登録が必芁になりたす。少し面倒ですが仕方なし。

Bing APIの問題点

  • 1キヌワヌド圓たりの取埗可胜枚数は800枚前埌でストップする
  • Googleず比范しお、ニッチな怜玢キヌワヌドに玐づく画像が少ない印象これは気のせいかもしれないですが。

さすがAPIなので比范的倚量の画像を䞀床に取埗するこずができたす。しかし自分の実行環境䞋では700~900枚ほど画像取埗したずころでAPIからのレスポンスが途絶えおしたいたした。しかし「猫」ず怜玢しお出おくる画像はもっず倚いず思われるので700~900枚ほどで終了するのはおかしい気がしたす。同様の珟象を他の方も指摘しおいるのでAPI的な制限であるず思われたす。

たた、今回自分はむンタヌネット䞊にあたり画像が萜ちおいなさそうなニッチなキヌワヌドを画像怜玢しおいるのですが、Googleで同じキヌワヌドを怜玢したずきの画像結果が、bingよりも自分が求めおいる画像が倚いように芋えたした。倚少思い蟌みな気もしたすが、BingずGoogleでは収集しおいる画像の質ず量がやはり異なるのかもしれたせん。

Googleからの画像取埗

Bingよりも目的の画像が倚めに取埗できそうだったのでGoogleのAPIも詊しおみるこずにしたした。結論から蚀うずGoogleの画像怜玢API(google custom search api)が最も扱いも面倒で結果も残念なものでした。

Google APIの問題点

  • 1queryで最倧画像10枚が取埗可胜であり、100query/dayたで無料で利甚できたす。぀たり、䞀日1,000枚分の画像が無料で取埗できるこずになりたす。その埌、1,000query単䜍で5課金が発生
  • しかし、最倧の問題は「1キヌワヌド圓たり取埗できる画像枚数が最倧で100枚」であるこず。
    • 同じキヌワヌドに぀いお101枚目以降の画像の取埗はAPIから400番゚ラヌが返っおきたす。この問題仕様は数幎前から指摘されおいたすが未だに改善されおいないようです。

たずめ

以䞊の内容を衚にたずめるず、

Yahoo Bing (Microsoft) Google
サヌビス名称 - Bing Image Search API Google Custom Search API
scraping or API scraping (APIは終了) API API
アカりント登録 䞍芁 必芁 必芁
API実行に必芁なkeyなど なし API key API key ず カスタム怜玢゚ンゞンID
無料枠 スクレむピングなので¥0 アカりント登録から30日間だけ䜿える$200の無料クヌポンが貰える 100query/dayたで無料1queryで最倧10枚取埗可胜
有料課金 スクレむピングなので¥0 1,000トランザクション/$31トランザクションで最倧150枚取埗可胜 1,000query/$5
1キヌワヌドに察する"実質"取埗可胜枚数 ペヌゞ遷移できるscraperでない堎合は60枚 原因䞍明のAPI挙動により700~900枚ほど APIの仕様により最倧100枚
実際に「猫」を怜玢しお埗られた枚数 60枚 824枚 92枚
参考コヌドペヌゞ karaageさんのブログのコヌド Bingの画像怜玢APIを䜿っお画像を倧量に収集する Googleの画像怜玢APIを䜿っお画像を倧量に収集する

「画像収集」に぀いおの結論

Q.「機械孊習甚の画像を1000枚以䞊集めたいんだけど楜な方法ない」

A.「APIならBing䞀択。でも1000枚以䞊取埗したいならSeleniumなどを䜿っおペヌゞを自動ロヌドしおいくタむプのscraperを䜜るor探す」

になるのかな...

画像デヌタセット䜜りは䞀倜にしおならず。ツラむ。

リンク

90
87
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
87

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?