分不清譚卓和郝蕾?各來200張照片,讓深度學習幫我們識別吧。
問題
《如何用Python和深度神經網路識別影象?》一文中,我給你展示瞭如何用深度學習,教電腦區分機器人瓦力和哆啦a夢。
很快就有使用者在後臺留言,問:
老師,我想自己訓練一個圖片分類器,到哪裡去批量下載帶標註的訓練影象呢?
說說我寫教程的時候,是如何找圖片的吧。
最大的圖片庫,當然就是 Google 了。
在 Google 影象欄目下,鍵入"Walle"。
怎麼樣?搜尋結果很符合需求吧。
你不但找到了一批高質量圖片,而且它們的標註, Google 都幫你打好了。
下面一步,自然就是把這些圖片下載下來了。
我讓學生實際動手做,每個人找兩個與別人不同的影象集合,嘗試根據教程做深度學習分類。
我提供給他們的方案(幾款不同的 Chrome 瀏覽器外掛),效果都不好。
有的才下了幾張,就停工,甚至把瀏覽器整崩潰了。
有的下載圖片,都是重複的。
學生告訴我,經驗證,最簡單有效的方法,是一張張手動點選下載……
這顯然不是正經辦法。
痛點
渴望從 Google 圖片庫高效批量獲得優質帶標註影象,不會是個案。
這個大眾痛點,真的沒有人嘗試解決嗎?
今天,一個偶然的機會,我發現了一個特別棒的 Github 專案,叫做 google-images-download
。
Github repo 連結在這裡。
專案釋出至今,只有短短5個月的時間,星標數量居然已經上了2000,看來確實非常受歡迎。
google-images-download
是個 Python 指令碼。
使用它,你可以一條命令,就完成 Google 圖片搜尋和批量下載功能。
而且,這工具還跨平臺執行,Linux, Windows 和 macOS 都支援。
簡直是懶人福音。
安裝
google-images-download
安裝很簡單。
以 macOS 為例,只需要在終端下,執行以下命令:
pip install google_images_download
複製程式碼
安裝就算完成了。
當然,這需要你係統裡已經安裝了 Python 環境。
如果你還沒有安裝,或者對終端操作命令不太熟悉,可以參考我的《如何安裝Python執行環境Anaconda?(視訊教程)》一文,學習如何下載安裝 Anaconda ,和進行終端命令列操作。
嘗試
進入下載目錄:
cd ~/Downloads
複製程式碼
我們嘗試下載一些圖片。
《我不是藥神》裡面有個叫譚卓的女演員,演的不錯。可是我一開始,把她當成郝蕾了。
我們們嘗試下載一些譚卓的圖片吧。
終端裡面執行:
googleimagesdownload -k "譚卓" -l 20
複製程式碼
解釋一下,這裡的 -k
指的是 "keyword",也就是“關鍵詞”,後面用雙引號括起來要查詢的關鍵詞。
你可以看出,使用中文關鍵詞,也沒問題。
後面的 -l
,指的是"limit",也就是圖片數量限定,你需要指定自己要下載多少張影象。
本例中,我們要20張。
下面是執行過程:
執行完畢。
可以看到,下載過程中,發生了一個錯誤。
但程式依然鍥而不捨,幫我們把下載流程執行完畢。
我們看看結果。
下載的圖片都存放在 ~/Downloads/downloads/譚卓
下面,google-images-download
非常貼心地,為我們建立子目錄。
我們在 Finder 裡開啟看看:
看了半天,有的照片,還是跟郝蕾分不大清楚。
為了徹底分清兩位女演員,我們再下載 200 張郝蕾的照片吧。
仿照剛才的命令,我們執行:
googleimagesdownload -k "郝蕾" -l 200
複製程式碼
然後……就報錯了:
解決
遇到問題,不要慌。
你得認真看看錯誤提示。
注意其中出現了一個關鍵詞:chromedriver
。
這是個什麼東西呢?
我們回到 google-images-download
的 github 頁面,以 chromedriver
為關鍵詞進行檢索。
你會立即找到如下結果:
原來如果你要的圖片數量超過100張,那麼程式就必須呼叫 Selenium 和 chromedriver 才行。
Selenium 在你安裝 google-images-download
的時候,已經自動安裝好了。
你只需要下載 chromedriver ,並且指定路徑。
下載連結在這裡。
請根據你的作業系統型別,選擇合適的版本:
我選的是 macOS 版本。
下載後,壓縮包裡面只有一個檔案,把它解壓,放在 ~/Downloads
目錄下。
然後,執行:
googleimagesdownload -k "郝蕾" -l 200 --chromedriver="./chromedriver"
複製程式碼
這裡 --chromedriver
引數,用來告訴 google-images-download
,解壓後 chromedriver
所在路徑。
這回機器勤勤懇懇,幫我們下載郝蕾的照片了。
200張圖片,需要下載一會兒。請耐心等待。
下完了。
中間也有一些報錯,部分圖片沒有正確下載。
好在,這對總體結果沒有太大影響。
為了保險起見,建議你設定下載數量時,多設定一些。
給自己留出安全邊際嘛。
我們們開啟下載後的目錄 ~/Downloads/downloads/郝蕾
看看:
這回,你能分清楚她倆不?
作業
給你留個作業。
你已經學會如何一行命令,下載譚卓和郝蕾的照片。
能否活學活用我們們之前介紹的卷積神經網路知識,用 TuriCreate (或者 Tensorflow) ,建立模型識別兩個人的照片?
完成作業後,歡迎把你的測試準確率結果告訴我。
當然,如果你能舉一反三,利用我們們今天介紹的指令碼,下載其他影象集合,並且進行深度學習訓練,就更好了。
也歡迎把結果反饋給我哦。
喜歡請點贊。還可以微信關注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)。
如果你對資料科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門資料科學?》,裡面還有更多的有趣問題及解法。