如何用AI區分吉娃娃和小鬆餅?六大視覺API大比拼

2021-02-08 優達學城Udacity


自然界有些動物,長成什麼不好,偏偏要長成食物於是乎,便有了很多鬼畜的精神汙染圖片,比如泰日天和炸雞腿...



沙皮狗和你家的毛毯



柯基屁股和吐司(真的超像,不信你問問你家老司基...)



土狗和麵包圈



還有就是大招:吉娃娃和小松糕....


前段時間,像上圖這樣關于吉娃娃和小松糕蜜汁相似的照片紅遍了網絡。不要說欺負圖像識別AI了,甚至很多人類都受到了精神汙染。

於是乎,這類圖片在人工智慧(AI)領域的許多演講中被頻繁提及,當然我也不能免俗。


但是,我對此始終有一個疑問,也從沒見其他人解答過,那就是:現在的AI在區分吉娃娃和小松糕上,到底能做到多好?出於寓教於樂的目的,今天我們就來詳細八一八這個問題。


知道你們加班辛苦了,今天可以邊看文章邊吸狗


自從 1957 年感知機算法被發明以來,由人工神經網絡進行二元分類在理論上就是可行的了。也許你覺得現在的AI團隊總是吹得天花亂墜,看看當年:1958年《紐約時報》報導說,這個發明是個起點,將讓計算機「能走路,能說話,能讀能寫,能自我複製,能意識到自己的存在。」 實際上,雖然類似 Mark 1 感知機這樣的算法是為了圖像識別而設計的,但實際工作中它們只能識別具有明顯差異的圖案。這使得它們無法識別大部分視覺媒體中的複雜圖像。

(Mark1地址:https://blog.knoldus.com/2017/09/12/introduction-to-perceptron-neural-network/)


不久以後,對 AI 的幻想破滅了,隨之而來的是人工智慧的冬天。從那時至今,多層認知(流行於1980年代)和卷積神經網絡(揚·勒丘恩在1998年開創的)等技術在圖像識別領域已經大幅超過原有的單層感知算法。


在 ImageNet 等大型帶標籤數據集和強大的GPU運算能力的幫助下,諸如 AlexNet、VGG、Inception和ResNet 等更高級的神經網絡模型在計算機視覺領域取得了無可比擬的展新成就。


■ 計算機視覺與圖像識別API


如果你是一名機器學習工程師,你可以輕易用Keras/Tensorflow 或PyTorch 來測試或者微調這些已經預先訓練好了的模型。如果你對自己動手調試神經網絡並不在行,那你也不必擔憂。幾乎所有的科技巨頭和人工智慧初創企業都聲稱要「將AI大眾化」,並為此提供和簡單易用的計算機視覺應用程式接口(API)。


那麼,圖像識別哪家強?為了回答這個問題,你必須清晰地界定自己的商業目標、產品使用場景、測試資料庫以及識別標準,才能以此比較各種不同的識別方案,判斷哪個更適合你。


然而,我們在這並不打算弄什麼嚴肅調查,只是從宏觀角度橫向對比一下各類平臺在分析反饋時的不同之處。為此,我將把「區分奇娃娃和小松糕」這個任務餵給幾大不同的API,來看看結果吧!



■ 開始實驗


首先,我把上面那張經典的狗餅乾圖拆成了16個獨立的測試圖像。接著,用Gaurav Oberoi 寫的這個開原始碼來處理於合併不同API的返回結果。在這個過程中,每張圖象將被推送給六個不同的圖像識別API,並獲取對應的返回數據。


絕大部分結果都是由機器猜測可能性最高的幾個標籤構成的,例外有二:一是微軟,它的 API 返回的既有標籤也有文字說明;另一個是 Cloudsight ,他們使用了人機混合識別技術,只返回一句描述文本。這也正說明了為何 Cloudsight 在處理複雜圖片時能提供一句準確到可怕的描述語句,但處理時間比其他API長了 10 到 20 倍。


下圖是一張輸出數據的範例。所有這16張「奇娃娃和小松糕」圖的測試結果可以在這裡(http://www.topbots.com/downloads/code/vision/chihuahua_vs_muffin/)看到。

原始碼地址:

https://github.com/goberoi/cloudy_visionhttps://github.com/goberoi/cloudy_vision

程序的表現如何?除了微軟——它將小松糕識別成某種毛絨玩具動物了——其他的API都能成功認出這圖是一種食物。但這食物到底是麵包、蛋糕、曲奇還是松糕,則是眾說紛紜。Google是唯一能認出「松糕」的API,因為在它返回的標籤中,認為「松糕」的可能性最高。


作為對比,看一看狗圖的分析結果:

再一次證明,這些程序都幹得不錯。所有API都成功識別出了狗,雖然有一些不能準確識別具體的品種。


當然,也有少數識別失敗的情況。微軟三次返回了錯誤的描述文本,將松糕描述成毛絨玩具或者泰迪熊什麼的。


總的來說,Google是最牛逼的松糕鑑定者,7 張松糕的圖片中,有 6 張 Google 返回的標籤中都將「松糕」標籤的可能性排在最前。其他的 API 並沒有將松糕排在前面,只是返回了一些不那麼精確的標籤,比如「麵包」、「餅乾」或者「紙杯蛋糕」等。


然而,在勝利的光環之下,Google也被某一張松糕圖片騙到了,返回了「鼻子」以及「犬類品種」的猜測標籤。

看來就算世界上最牛逼的機器學習平臺也被我們這個純搞笑的狗餅乾挑戰給坑了啊。在區分哪是食物哪是夥伴這方面,即使是人類兒童也能輕易打敗深度學習程序。


■ 採用實際照片進行測試


小試牛刀之後,我更想知道,在實際的照片(而不是那些特意挑出來,十分相似的玩梗照片)裡,AI 能不能很好的分辨奇娃娃和小松糕。ImageNet 裡剛好有1750 張奇娃娃和 1335 張各式各樣的松糕照片。


吉娃娃圖片地址:http://image-net.org/synset?wnid=n02085620

鬆餅圖片地址:http://image-net.org/synset?wnid=n07690273


許多照片對 AI 來說還是非常容易識別的,因為吉娃娃的品種特徵非常明顯,比如凸出的眼睛和尖尖的耳朵。比如下圖這隻:

但另一方面,有些照片也非常刁鑽。有時同一張圖中有多個對象,有時對象帶著其他裝飾物或者被遮擋住了,這就給 AI 的識別帶來了額外的挑戰,失敗率明顯增加了。

在上圖中,帶著帽子和護目鏡的狗讓許多AI(和許多人類)無法正確識別出它的品種。IBM Watson成功的識別出了帽子,但卻沒能認出帶著帽子的狗或者人。


■ 處理標籤的數據噪音


在圖片等未結構化的現實數據中,人類手工增加的表情並不一定就百分百正確。標籤有可能誤標,也有可能充滿額外的「噪音」。下圖就是一個例子,這張圖在 ImageNet 資料庫中被歸類在「松糕」類裡。

松糕分類地址:http://image-net.org/synset?wnid=n07690273


人類能很快發現這個「偽裝的松糕」其實是個「紙杯蛋糕」。令人驚喜的是,許多 AI 也能確實地認出這一點,它們返回的猜測標籤都是「蛋糕」、「紙杯蛋糕」或「餅乾」,比 ImageNet 的數據更接近實際。Cloudsight 的人機混合識別系統給出的描述文本則更加精確到「餅乾怪紙杯蛋糕」這樣的結果,不得不說,弄出這種東西讓 AI 來識別的人實在是太刁鑽了.


通過同時使用多種模型和 API,我們得以從一種非常有趣的角度來觀察這種「標籤噪音」。在 ImageNet的「松糕」分類中,各種不同的松糕(麥麩的、玉米的以及酥皮發泡的)其實長得往往大相逕庭。這其中的許多往往被錯誤地貼上了紙杯蛋糕或是其他類型的烘培食品的標籤。


將海量的圖片餵給多個不同的圖像識別API,並對比分析結果中的相同和不同的部分,就能有條不紊地標記出可能被標上了錯誤標籤的圖片。


說句奇怪的題外話:在搜索ImageNet中各種不同的松糕分類時,我無意中翻到了一個叫「松糕人」的分類,分類描述是「曾經是賣松糕的流動攤販」。所以,如果你想要找一些什麼人拿著松糕的照片,你知道該去哪找了吧。

■ 玩點別的花招?


單純為了找點樂子,我試著用一些奇奇怪怪的照片來欺負AI,比如:


這是其中一張既有狗又有食物的照片的分析結果:


只有 IBM 和 Cloudsight 識別出圖中存在某種食物。然而,IBM 似乎發揮了某種奇特的想像力,猜測了「章魚燒」、「餃子」和「奶油酥卷」這一串可能性。


同樣,長的像狗的紙杯蛋糕也引起了不小的混亂:


不知因為什麼獨特的理由,微軟又把這張圖描述成「一群毛絨玩具」。Google 認為這張圖含有「長的像狗的哺乳動物」的可能性(0.89)大於「蛋糕」的可能性(0.79)。Clarifai倒是以非常高的確定性認為圖中同時包含「食物」(0.99)和「哺乳動物」(0.96)。


在這些複雜而不尋常的情況下,Cloudsight 的「人類描述」能力展現出了強大的威力。Cloudsight 識別最後一張圖的時候給出的描述是「12 塊西高地白梗犬形的紙杯蛋糕」,而且它還認出了前面一張圖片來自著名的吉娃娃和餅的段子。


■ 計算機視覺到底哪家強?


當然,我們並不是用這些戲謔的試驗來斷定哪個 API 就一定比其他的好,但你總是可以從它們的反饋結果中發現一些定性的區別。


亞馬遜的 Rekognition

不僅能很好地識別圖像中的主要物體,還能識別許多周圍的次要物體,比如圖像中的一個人、一隻鳥或是一件家具。Rekognition 也能提供一些定性的形容,比如「可愛的」或「超可愛的」。它返回可能性最高的標籤時,主觀描述和客觀描述的標籤總能保持美妙的平衡。


Google 和 IBM

Google 的視覺 API 和 IBM 的 Watson 視覺都十分忠實於原圖。它們總是只給出一些直截了當的描述性標籤。二者的表現看起來不相上下,只是 IBM 通常給出的標籤數量會比每張圖片的平均標籤數量多一些些。


微軟

微軟的圖像識別結果總是返回一些較寬泛類別的標籤,比如「狗」、「犬類」或者「哺乳動物」,而從沒有具體到「奇娃娃」或者「松糕」的程度。令人驚異的是,微軟似乎還有種奇怪的習慣,自動生成的描述語句中,特別愛把糕點識別為「毛絨玩具」。也許你會覺得 ResNet 背後的公司應該做的更好,也許這個毛絨玩具的問題可能只是因為數據集的一種巧合,總之,我建議你自己也去試試這個API做一些健壯性測試看看。


Cloudsight

Cloudsight 採用了一種混合了人類標籤和機器分類的算法,這個 API 比其他幾個的運行速度都慢。但這也意味著,對於困難或不尋常的圖片,Cloudsight 的描述將會儘可能做到最準確,就比如之前的那「12塊西高地白梗犬形的紙杯蛋糕」。


Clarifai

Clarifai 的反饋標籤數是目前最多的(每張圖20個),然而沒有一次能正確識別出狗的品種「奇娃娃」。相反,它更常給出的是更通用的標籤比如「狗」、「哺乳動物」或乾脆就是「動物」。它做的較好的方面是添加了一些定性的主觀標籤,比如「可愛的」、「有趣的」、「超可愛的」以及「美味的」。同時它也返回一些抽象的概念,例如「面部表情」或者「沒有人」。在你為那些廣告圖片或者其他面向客戶的圖片生成更豐富的說明時,這個功能也許會派上用場。


■ 其他注意事項


正如前面提到的,為了用上這些 API,你必須清晰地界定自己的商業目標、產品使用場景,準備合適的測試資料庫以及定義成功的識別標準。同時你還得考慮諸如成本、速度以及能獲得的標籤數量等不同因素。


這裡是一份這些指標的匯總表,各項數據基於上述 16 張圖的測試結果。亞馬遜的 Amazon Rekognition 服務比其他全自動 API 的速度快上一點點。採用人機混合結構的 Cloudsight 不出意料是最慢的,而且只返回一條描述文字。Clarifai 總是默認返回 20 條標籤。


這些API的使用收費情況可以在各自的價格頁面上看到。大部分 API 都提供一個免費配額,並且按每月處理數量收費。在我寫這篇文章的時候,每項服務中處理一張圖片的基礎價格大約如下(單位是美元)。此類定價將會不定期變化,所以具體價格請以具體平臺為準。

· Amazon — $0.001

· Microsoft — $0.001

· IBM Watson — $0.002

· Google Cloud — $0.0015

· Cloudsight — $0.02

· Clarifai — $0.0015

大部分的API收費都在每張圖片$0.001 到 $0.002美金之間,如果你每月訂購幾百萬張圖片的處理量的話。Cloudsight 的價格比較誇張,如果你訂購每月3萬張圖片的話,平均每張價格達$0.02之多——如果你訂的更少的話,價格更高,最高可能達到每張$0.07!


■ 進一步的研究


如果你打算放任自己心中那既不科學又狂野的八卦之火,調戲那些圖像識別 AI,你也許會想知道:最早玩出「奇娃娃和松糕「這個梗的 Karen Zack 已經弄出了一大堆」動物vs食物「的相似對比圖片,你大可以弄來給AI搞一個跑分什麼的!



作者:Mariya Yao,商用人工智慧研究及投資策略公司 TOPBots 的首席技術官及研發設計部門主管。

譯者:歐剃

編輯:之餚

出處:https://medium.freecodecamp.org/chihuahua-or-muffin-my-search-for-the-best-computer-vision-api-cbda4d6b425d


— 完 —



人工智慧熱潮下,相關領域的人才缺口高達 500 萬。深度學習技術廣泛應用於圖像處理、文本處理等領域,加入該納米學位,跟隨 Google 無人車之父 Sebastian Thrun、GANs 之父 Ian Goodfellow 學習 Pytorch、Keras 和 TensorFlow 框架,自主搭建卷積和循環網絡、GANs 和深度強化學習模型,挑戰矽谷名企合作實戰項目,一站式全面掌握深度學習技術,成為年薪百萬深度學習專家。戳「閱讀原文」立即了解,獲取課程大綱!

相關焦點

  • 項目 | 如何用AI區分吉娃娃和小鬆餅?六大視覺API大比拼
    還有就是大招:吉娃娃和小松糕....但是,我對此始終有一個疑問,也從沒見其他人解答過,那就是:現在的AI在區分吉娃娃和小松糕上,到底能做到多好?出於寓教於樂的目的,今天我們就來詳細八一八這個問題。幾乎所有的科技巨頭和人工智慧初創企業都聲稱要「將AI大眾化」,並為此提供和簡單易用的計算機視覺應用程式接口(API)。那麼,圖像識別哪家強?為了回答這個問題,你必須清晰地界定自己的商業目標、產品使用場景、測試資料庫以及識別標準,才能以此比較各種不同的識別方案,判斷哪個更適合你。
  • 吉娃娃靠近小奶貓,小奶貓揮拳阻止,吉娃娃下一個舉動暖哭
    貓和狗是現在非常受歡迎的家庭寵物,越來越多的人喜歡在家裡養一隻貓或者狗狗來給自己的生活增加樂趣,也有不少人對貓和狗都非常喜歡,在家裡同時養貓和狗,但是貓和狗同時養在家裡的話,如何讓它們和平共處又是一個很讓人費解的問題。
  • 六大茶類的區分方法
    六大茶類是怎麼區分的六大茶類到底是怎麼區分的?具體都是通過什麼樣的方法細分而來的呢?鍶姐最開始以為,是通過茶湯的顏色來區分六大茶類。八木春紅茶現在還是有很多茶友也和鍶姐一樣,以顏色來區分六大茶類,其實是不夠準確的。
  • 家有吉娃娃,如何飼養很關鍵
    吉娃娃犬長得非常小巧可愛,就像一隻玩具一樣。吉娃娃個子雖小,但是面對大型的夠,它卻一點都不會膽怯,非常的勇敢。它對主人忠誠,聰明,眼睛大大的顯得非常可愛。小編來跟大家分享一下如何去飼養吉娃娃犬吧。 因為吉娃娃的大部分活動都是在家裡,所以,可以每個月給它洗一兩次澡。如果你家裡飼養的是長毛吉娃娃犬,就要多洗幾次了。因為長毛的吉娃娃很容易就會有髒東西粘在它的身上。狗狗的耳朵一定要經常清理乾淨,不然很容易生長細菌。
  • 吉娃娃
    三花吉娃娃人喜愛;體重1~3公斤,重量最好不超過6磅。最重要的兩個詞,「做的好」和「這樣做是錯誤的」:「做的好」和「這樣做是錯誤的」是兩個極其重要且必要的指令,為什麼說它重要呢?因為狗狗小時候就要讓它自己分辨對錯,如果叫它坐下,但它沒有坐下,或跳來跳去,你都可以叫它的名字,然後再對它說「這樣做是錯誤的」,聲音要低沉,音量要大到讓狗狗可以注意。當狗狗指令做得對的時候,你要用柔和的聲音對它說「做的好」,然後撫摸它的頭。
  • 養肉指南:吉娃娃、桃太郎、卡羅拉的分辨方法
    ★ 購買精品多肉植物★ 如何養好多肉植物★ 如何繁殖多肉植物請直接添加微信號:15038152567
  • 「車企服務大比拼」頒獎典禮在京舉行!六大獎項花落誰家?
    在這場全行業參與其中的服務大升級中,究竟誰的服務真正做到了讓用戶滿意?在由商用汽車新聞傳媒主辦的「車企服務大比拼」活動中,我們找到了答案。12月14日,「車企服務大比拼」頒獎典禮在北京成功舉辦。此外,來自車企、物流行業的近百名代表以及30餘家中央和行業媒體,也在現場共同見證了「車企服務大比拼」活動各項獎項的揭曉。實地調研 檢驗車企真實服務水平正所謂「沒有調查就沒有發言權」,服務好不好,體驗後才能有定論。
  • 純種吉娃娃幼犬價格大盤點
    如今,養狗的人群是與日俱增,如果你想要養一隻顏值智商並存的狗狗,那麼就養一隻吉娃娃吧!那麼吉娃娃多少錢一隻小崽呢?
  • 吉娃娃、桃太郎和水蜜桃
    桃太郎和吉娃娃的區別桃太郎的尺寸較大,可以較容易達到12+cm,葉前端葉背較易泛紅,而吉娃娃通常只是爪尖紅(露養一兩年的吉娃娃也可以葉前端葉緣變紅),桃太郎更易紅。下圖是吉娃娃一般吉娃娃的狀態水蜜桃應該更跟桃太郎有關係,而桃太郎是吉娃娃和卡羅拉的雜交品種,所以一般來說水蜜桃即便是桃太郎,也不會是吉娃娃,但也不能排除有些商家拿出狀態的吉娃娃當做水蜜桃出售。如果要說兩者的區別,水蜜桃葉色更偏白,有點果凍感,對比之下葉尖紅尖就很醒目,吉娃娃雖然也可以養出紅尖和紅邊,但顏色上通常不會有粉白感和果凍感。下圖是大叔養過的吉娃娃
  • 各式各樣的小鬆餅,鬆餅做法大集合
    鬆餅是蛋糕的一種,但做法要比蛋糕簡單得多,很適合烘焙新手~也很適合做早餐和給小朋友吃~一、舒芙蕾鬆餅原料:雞蛋2個,低筋麵粉45克,糖30克,牛奶20克,酸奶20克,玉米油10克,泡打粉3克做法:1、將2個雞蛋的蛋清和蛋黃分離,蛋黃內加入牛奶、酸奶、玉米油、30克糖並攪拌均勻~2、再加入過篩的泡打粉和低筋麵粉,攪拌均勻~3、30克糖分三次加入蛋清中,打發至紋路清晰,提起打蛋器有彎鉤即可~4、取三分之一的蛋白霜加入蛋黃糊中,翻版均勻之後再倒回剩餘的蛋白霜中,繼續翻拌均勻~5、平底鍋燒熱之後,倒入適量油,搖晃鍋子讓油均勻~用勺子舀入麵糊到鍋裡
  • 寵物百科圖鑑——吉娃娃
    今天小寵給大家帶來的是一種小型犬--吉娃娃,同時它也是小型犬中最小的品種哦~接下來和小寵一起了解一下吉娃娃吧~發展歷史吉娃娃從墨西哥傳到美國後到1898年的歷史至今不清。有人確定吉娃娃原產於南美,初期被印加族人視為神聖的犬種,後來傳到阿斯提克族。
  • 生活中常見的狗狗品種之一——吉娃娃
    吉娃娃是一種小型寵物犬,身高在15-23釐米,體重在1-3公斤,它們不是一開始就存在的品種,而是經過多種品種交配而來的,腦袋和眼睛一樣都很圓,在它們的頭頂有一個小小的凹洞,這個小洞也是判斷它們是否純正的標準,它們的上顎或下頜是比較突出的,這也是它們的缺陷,性格很活潑勇敢,聰明且忠誠
  • 吉娃娃的詳細簡介
    理想情況是:腳和腿上有飾毛、後腿有短褲、脖子上有毛領。長毛型失格:被毛稀疏,近乎赤裸。體型吉娃娃犬是世界上最小型的犬種之一,頭部圓形,耳大薄而直立,眼睛圓而大。體高15~23釐米,越小越受人喜愛;體重1~3公斤,重量最好不超過6磅。身體的比例為長方形;所以從肩到臀的長度略大於肩高。雄性的身體稍短一些比較理想,體重超過6磅既為失格。
  • 吃喝 全面盤點大溫鬆餅店+如何吃免費鬆餅吃到飽?!
    於是,這個節日的習俗也就成了吃鬆餅(Pancake),這天被稱為Pancake Day(鬆餅節)。這一天貝克漢姆也與孩子們共度鬆餅節,更忍不住發了一段翻鬆餅的正(帥)確(氣)姿勢小短片。無論你的關注點是貝克漢姆還是美食,也可以湊湊鬆餅節的熱鬧,知叔今天就為大家盤點一下各家鬆餅點,還有如何在鬆餅節免費吃到飽!
  • 意外的AI測試 百度顏值評分,二哈成美女
    前段時間在公眾號裡接了百度的ai顏值,今天無聊發了個二哈上去,呵竟然識別為美女,評分還不低呢 我還以為是我api接錯了,深夜debug,結果發現這就是百度給的結果,不敢相信自己,試了試他們自家小程序,狗還是那條狗,評分依舊
  • 狗中朋克吉娃娃
    最近小區告示欄張貼了禁養犬種,我尋思是否遺漏了吉娃娃這位最狠的猛獸。別看這種狗個頭小,脾氣可是巨爆。
  • 小型犬中的孿生兄弟,吉娃娃與小鹿犬,向你分析其中不同
    但是在眾多小型犬品種裡,總讓人挑的眼花繚亂,每一隻都嬌小可愛,其中小鹿犬和吉娃娃這兩隻狗子堪稱孿生兄弟,沒有什麼養犬經驗的飼養員基本上辨別不出來,它們圓溜溜的大眼睛非常具有親和力,讓人們為之傾倒。那麼以下就為你列出幾點如何分辨這兩隻犬類,到底哪一隻更適合飼養。1.
  • 吉娃娃是神
    吉娃娃作為世界上小犬型之一,受到大量的粉絲擁躉。
  • Jeff Dean親筆盤點谷歌AI 2019:日均2篇論文,縱橫16大方向
    這是姐夫作為Google AI大總管的例行年度匯報,也是全球AI——乃至前沿技術第一大廠的肌肉展示。他說,過去的2019年,是非常激動人心的一年。依舊是學術和應用兩開花,開源和新技術同步推進。這些表示形式通過用戶希望模型能夠區分的屬性來區分不同種類的示例。機器學習算法的進步,主要是為了鼓勵學習更好的表示法,以此來推廣到新的示例、問題及領域。
  • 信用卡競爭力大比拼!
    詳情可以點擊閱讀輕金融系列文章:1、六大行信用卡大比拼2、9大股份行信用卡比拼而如果把全國性銀行放在一起比,如何評價各家銀行信用卡業務的競爭力呢?中金公司的一份報告給出了可參考的數據,輕金融根據中金公司的數據進行了解讀,以幫助從業者全面了解信用卡的競爭力。