用Tensorflow自動化構建海洋生物系統,利用上萬的圖片訓練,找到瀕臨物種「海牛」是什麼原理?

去年有相關的報道,谷歌用深度學習守衛海洋:如何在 4.5 萬張照片中找到一隻瀕危的「美人魚」? 今年TensorFlow-dev-summit中又提到了這個是利用tensorflow自動化構建的海洋生物系統,使用的是大量的無人機航拍圖片,看起來的效果非常的驚艷,因為人眼也完全無法辨別(如圖,紅色圈是海牛的位置),想請問一下這個識別系統的深度學習的網路原理和訓練數據的形式是怎麼樣的呢?網上查了一下,資料太少,所以想看看大家怎麼看?


這種問題最直接的方法就是找論文了。廢話不多說,直接給出論文:Automating Marine Mammal Detection in Aerial Images Captured During Wildlife Surveys: A Deep Learning Approach

先簡單說一下找這篇論文的方法:

  1. 打開題目中的鏈接;
  2. 發現這個研究是 Murdoch University 的 Amanda Hodgson 團隊的成果;
  3. 打開谷歌學術,用關鍵詞「 Amanda Hodgson + Murdoch University 」搜索,範圍是2016年之後的文章;
  4. 第一篇就是這個:Automating Marine Mammal Detection in Aerial Images Captured During Wildlife Surveys: A Deep Learning Approach

--------

簡單說下他們的方法:

簡單地說,他們先用 SLIC (Simple Linear Iterative Clustering) 演算法將圖像分割成若干塊;以這些區域為中心,生成若干圖像窗口;之後對每個圖像區域用普通的 DCNN 進行分類學習。


訓練集一定遠遠不止4.5萬張圖片。這裡的4.5萬張只是做測試(TEST),也可以叫推斷(inference)。至於用到的模型結構,因為這裡是在做detection,題主可以關注一下目前比較流行的一些graph比如fast-RCNN, faster-RCNN, SSD,YOLO...我覺得應該八九不離十


網上的資料很多,但是不是很通俗易懂。我也是剛學習TF,來簡單回答一下吧。

先不講神經網路,就把它看成一個由各種函數和參數組成的黑盒子。

首先要訓練,就是讓它自動配置出合適的參數。這裡要有訓練集,就是標記好的圖片,計算機會調整參數,和標記對比,達到識別的最好效果。然後把參數記下來,就有一個模型了。還有測試集來測試模型的效果。

把衛星拍的照片輸入模型,就會輸出那些看起來像我們標記的圖片。

其實沒有那麼神秘,和神經沒有關係,就是計算機來自動調整參數得到模型,用模型來處理數據。

專家們研究的是細節,就是那種模型效果更好,那種反饋機制能更快更好的把參數調整好。


推薦閱讀:

請問batch_normalization做了normalization後為什麼要變回來?
當tensorflow模型超過單張顯卡顯存的時候,應該怎麼拆分到多個GPU上運行?
tensorflow是如何求導的?
怎麼理解tensorflow中tf.train.shuffle_batch()函數?
tensorflow的自動求導具體是在哪部分代碼里實現的?

TAG:人工智慧 | 計算機視覺 | 深度學習DeepLearning | Caffe深度學習框架 | TensorFlow |