1. 程式人生 > >從零開始玩人工智能—機器視覺API—02

從零開始玩人工智能—機器視覺API—02

AI Cognitive Services Computer Vision 機器視覺 人工智能

本期有福利哦!不要錯過啦!

前文簡單實現了認知服務對圖片的檢測識別。檢測識別是其他機器視覺實現的基礎,除了我們示例代碼涉及的初步“看懂”圖片,認知服務其實可以按照要求返回不同的信息,例如:

  • Categories – categorizes image content according to a taxonomy defined in documentation.

  • Tags – tags the image with a detailed list of words related to the image content.

  • Description – describes the image content with a complete English sentence.

  • Faces – detects if faces are present. If present, generate coordinates, gender and age.

  • ImageType – detects if image is clipart or a line drawing.

  • Color – determines the accent color, dominant color, and whether an image is black&white.

  • Adult – detects if the image is pornographic in nature (depicts nudity or a sex act). Sexually suggestive content is also detected.

  • Celebrities – identifies celebrities if detected in the image.

  • Landmarks – identifies landmarks if detected in the image.

有一項功能信息,Adult,我們可以把它理解為成人圖像識別。互聯網太強大,但很多時候,我們不希望在不合適的時候看到成人圖像,例如不想讓孩子看到成人內容。據說,有個職業叫做鑒黃師,以後是不是可以讓AI來做這樣的工作呢?於是,這個API的返回引起了我的興趣……

技術分享圖片

首先想試試機器視覺,於是找了Cortana的照片讓它識別。還挺鐵面無私的,盡管是自家的,Computer Vision API 還是告訴我,它覺得這張圖有點輕度猥褻(0.342),但不算成人內容。

那怎樣算是成人內容呢?坦白說,我覺得目前準確度還不是很高吧,以科學的名義,我嘗試了露點的人體藝術照片,甚至無碼高清的AV截圖……它一直告訴我是猥褻內容,卻沒說是成人內容…直到我突然想到,也許是目前人工智能訓練的圖片不多?換個知名些的圖片呢?腦海裏想到了“德藝雙馨”的蒼老師…行動起來!

技術分享圖片

終於,成人內容評分上去了,機器視覺告訴我這是張×××了,淚目……

技術分享圖片

還是挺強大的,不光知道是張×××,而且告訴我,圖中是 Sola Aoi lying on a bed。蒼老師躺在床上…… 你不信 Sola Aoi 就是蒼老師?來,上Wiki~

技術分享圖片

沒錯吧?機器視覺很準確的認出了蒼老師,以及她在幹啥,看來也是閱片無數,心中無碼的老司機啊~

技術分享圖片

不要以為我是嘩眾取寵哦,看看百度圖片,已經開始在圖片搜索中加入了機器視覺了,可以通過圖片了解到對應的信息了。臉盲癥的我有救了……

福利聊完了,再看看別的。上期聊了機器視覺能夠從圖片中分辨86類事物,其實有些事物是我們特別註意的,比如著名的地方和人。在機器視覺API的接口中,就有針對這兩種的特定領域識別。

上期我對把天安門識別為:A large red building with tiananmen square in the background 耿耿於懷,所以我特意在使用celebrity和landmark之前試了試白宮的圖片。很好~一視同仁,白宮也被識別為:A large white building with grass and trees with white house in the background 看來,是機器視覺的語言能力還不太好,哈哈。

技術分享圖片

我們來指定機器視覺識別一個地理標誌 Landmark。我找了一張西雅圖的照片,表達我沒能參加正在西雅圖舉辦的2018第25屆MVP全球峰會的遺憾。這張照片跟之前我去峰會時,在Kerry Park凍了四小時拍的那些照片角度很接近。

代碼和之前的類似,只是POST的URL不太一樣。我嘗試修改一下matplotlib裏畫圖的參數,看看能不能把標記寫到右上方。

技術分享圖片

果然,太空針還是被識別出來了,給出了相似度評分:


{
'result': {
'landmarks':
[{
'name': 'Space Needle',
'confidence': 0.985418438911438
}]
},
'requestId': '28210182-6b2b-422b-b94d-daa482d20c92',
'metadata': {
'height': 428,
'width': 665,
'format': 'Jpeg'
} }

Space needle

把返回的Caption寫到圖片上。

技術分享圖片

挺簡單吧。接下來看看人物識別的。為了考考人工智能,也為了有點戲劇效果,我找了張和寵物“撞臉”的照片給機器視覺。原本想找孫紅雷和×××梗的,一時沒找到,也怕機器視覺不認識。薩繆爾.傑克遜是為人熟知的演員,在漫威電影裏他是S.H.I.E.L.D.神盾局的局長。那就用他了~

技術分享圖片 機器視覺很聰明,沒有認錯,哈哈哈。返回了簡單明了的人名、相似度評分和臉部取樣區域。

{
'requestId': '22d4ff5a-be22-4714-819c-16cb0b4ec8a6',
'metadata': {
'width': 888,
'format': 'Jpeg',
'height': 525
},
'result': {
'celebrities':
[{
'confidence': 0.9998701810836792,
'name': 'SAMUEL L. JACKSON',
'faceRectangle': {
'width': 280,
'height': 280,
'top': 152,
'left': 25
}
}]
}
}

SAMUEL L. JACKSON

前面蒼老師做識別的時候,不是畫了個框顯示面部識別的區域嗎?我們也來畫一個,然後把識別出來的名字寫在框上。幹這個需要用到返回的臉部坐標,然後使用matplotlib來繪制。

技術分享圖片

這就是輸出的結果了。一共也沒幾行代碼,是不是很簡單?



從零開始玩人工智能—機器視覺API—02