如何用 Python 腳本批量下載 Google 圖像?

分不清譚卓和郝蕾?各來(lái)200張照片,讓深度學(xué)習(xí)幫我們識(shí)別吧。

問(wèn)題

如何用Python和深度神經(jīng)網(wǎng)絡(luò)識(shí)別圖像?》一文中,我給你展示了如何用深度學(xué)習(xí),教電腦區(qū)分機(jī)器人瓦力和哆啦a夢(mèng)。

很快就有用戶(hù)在后臺(tái)留言,問(wèn):

老師,我想自己訓(xùn)練一個(gè)圖片分類(lèi)器,到哪里去批量下載帶標(biāo)注的訓(xùn)練圖像呢?

說(shuō)說(shuō)我寫(xiě)教程的時(shí)候,是如何找圖片的吧。

最大的圖片庫(kù),當(dāng)然就是 Google 了。

在 Google 圖像欄目下,鍵入"Walle"。

怎么樣?搜索結(jié)果很符合需求吧。

你不但找到了一批高質(zhì)量圖片,而且它們的標(biāo)注, Google 都幫你打好了。

下面一步,自然就是把這些圖片下載下來(lái)了。

我讓學(xué)生實(shí)際動(dòng)手做,每個(gè)人找兩個(gè)與別人不同的圖像集合,嘗試根據(jù)教程做深度學(xué)習(xí)分類(lèi)。

我提供給他們的方案(幾款不同的 Chrome 瀏覽器插件),效果都不好。

有的才下了幾張,就停工,甚至把瀏覽器整崩潰了。

有的下載圖片,都是重復(fù)的。

學(xué)生告訴我,經(jīng)驗(yàn)證,最簡(jiǎn)單有效的方法,是一張張手動(dòng)點(diǎn)擊下載……

這顯然不是正經(jīng)辦法。

痛點(diǎn)

渴望從 Google 圖片庫(kù)高效批量獲得優(yōu)質(zhì)帶標(biāo)注圖像,不會(huì)是個(gè)案。

這個(gè)大眾痛點(diǎn),真的沒(méi)有人嘗試解決嗎?

今天,一個(gè)偶然的機(jī)會(huì),我發(fā)現(xiàn)了一個(gè)特別棒的 Github 項(xiàng)目,叫做 google-images-download。

Github repo 鏈接在這里。

項(xiàng)目發(fā)布至今,只有短短5個(gè)月的時(shí)間,星標(biāo)數(shù)量居然已經(jīng)上了2000,看來(lái)確實(shí)非常受歡迎。

google-images-download 是個(gè) Python 腳本。

使用它,你可以一條命令,就完成 Google 圖片搜索和批量下載功能。

而且,這工具還跨平臺(tái)運(yùn)行,Linux, Windows 和 macOS 都支持。

簡(jiǎn)直是懶人福音。

安裝

google-images-download 安裝很簡(jiǎn)單。

以 macOS 為例,只需要在終端下,執(zhí)行以下命令:

pip install google_images_download

安裝就算完成了。

當(dāng)然,這需要你系統(tǒng)里已經(jīng)安裝了 Python 環(huán)境。

如果你還沒(méi)有安裝,或者對(duì)終端操作命令不太熟悉,可以參考我的《如何安裝Python運(yùn)行環(huán)境Anaconda?(視頻教程)》一文,學(xué)習(xí)如何下載安裝 Anaconda ,和進(jìn)行終端命令行操作。

嘗試

進(jìn)入下載目錄:

cd ~/Downloads

我們嘗試下載一些圖片。

《我不是藥神》里面有個(gè)叫譚卓的女演員,演的不錯(cuò)??墒俏乙婚_(kāi)始,把她當(dāng)成郝蕾了。

咱們嘗試下載一些譚卓的圖片吧。

終端里面執(zhí)行:

googleimagesdownload -k "譚卓" -l 20

解釋一下,這里的 -k 指的是 "keyword",也就是“關(guān)鍵詞”,后面用雙引號(hào)括起來(lái)要查找的關(guān)鍵詞。

你可以看出,使用中文關(guān)鍵詞,也沒(méi)問(wèn)題。

后面的 -l ,指的是"limit",也就是圖片數(shù)量限定,你需要指定自己要下載多少?gòu)垐D像。

本例中,我們要20張。

下面是執(zhí)行過(guò)程:

執(zhí)行完畢。

可以看到,下載過(guò)程中,發(fā)生了一個(gè)錯(cuò)誤。

但程序依然鍥而不舍,幫我們把下載流程運(yùn)行完畢。

我們看看結(jié)果。

下載的圖片都存放在 ~/Downloads/downloads/譚卓 下面,google-images-download 非常貼心地,為我們建立子目錄。

我們?cè)?Finder 里打開(kāi)看看:

看了半天,有的照片,還是跟郝蕾分不大清楚。

為了徹底分清兩位女演員,我們?cè)傧螺d 200 張郝蕾的照片吧。

仿照剛才的命令,我們執(zhí)行:

googleimagesdownload -k "郝蕾" -l 200

然后……就報(bào)錯(cuò)了:

解決

遇到問(wèn)題,不要慌。

你得認(rèn)真看看錯(cuò)誤提示。

注意其中出現(xiàn)了一個(gè)關(guān)鍵詞:chromedriver。

這是個(gè)什么東西呢?

我們回到 google-images-downloadgithub 頁(yè)面,以 chromedriver 為關(guān)鍵詞進(jìn)行檢索。

你會(huì)立即找到如下結(jié)果:

原來(lái)如果你要的圖片數(shù)量超過(guò)100張,那么程序就必須調(diào)用 Selenium 和 chromedriver 才行。

Selenium 在你安裝 google-images-download 的時(shí)候,已經(jīng)自動(dòng)安裝好了。

你只需要下載 chromedriver ,并且指定路徑。

下載鏈接在這里。

請(qǐng)根據(jù)你的操作系統(tǒng)類(lèi)型,選擇合適的版本:

我選的是 macOS 版本。

下載后,壓縮包里面只有一個(gè)文件,把它解壓,放在 ~/Downloads 目錄下。

然后,執(zhí)行:

googleimagesdownload -k "郝蕾" -l 200 --chromedriver="./chromedriver"

這里 --chromedriver 參數(shù),用來(lái)告訴 google-images-download ,解壓后 chromedriver 所在路徑。

這回機(jī)器勤勤懇懇,幫我們下載郝蕾的照片了。

200張圖片,需要下載一會(huì)兒。請(qǐng)耐心等待。

下完了。

中間也有一些報(bào)錯(cuò),部分圖片沒(méi)有正確下載。

好在,這對(duì)總體結(jié)果沒(méi)有太大影響。

為了保險(xiǎn)起見(jiàn),建議你設(shè)置下載數(shù)量時(shí),多設(shè)置一些。

給自己留出安全邊際嘛。

咱們打開(kāi)下載后的目錄 ~/Downloads/downloads/郝蕾 看看:

這回,你能分清楚她倆不?

作業(yè)

給你留個(gè)作業(yè)。

你已經(jīng)學(xué)會(huì)如何一行命令,下載譚卓和郝蕾的照片。

能否活學(xué)活用咱們之前介紹的卷積神經(jīng)網(wǎng)絡(luò)知識(shí),用 TuriCreate (或者 Tensorflow) ,建立模型識(shí)別兩個(gè)人的照片?

完成作業(yè)后,歡迎把你的測(cè)試準(zhǔn)確率結(jié)果告訴我。

當(dāng)然,如果你能舉一反三,利用咱們今天介紹的腳本,下載其他圖像集合,并且進(jìn)行深度學(xué)習(xí)訓(xùn)練,就更好了。

也歡迎把結(jié)果反饋給我哦。

喜歡請(qǐng)點(diǎn)贊。還可以微信關(guān)注和置頂我的公眾號(hào)“玉樹(shù)芝蘭”(nkwangshuyi)。

如果你對(duì)數(shù)據(jù)科學(xué)感興趣,不妨閱讀我的系列教程索引貼《如何高效入門(mén)數(shù)據(jù)科學(xué)?》,里面還有更多的有趣問(wèn)題及解法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容