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

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

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

  • 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的返回引起了我的興趣……

image

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

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

image

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

image

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

image

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

image

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

     福利聊完了,再看看別的。上期聊了機器視覺能夠從圖片中分辨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 看來,是機器視覺的語言能力還不太好,哈哈。

temp1

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

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

image

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


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

Space needle

    把返回的Caption寫到圖片上。

DS-Landmarks

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

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

{
  '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來繪製。

DS-Celebrity

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章