從零開始玩人工智慧 人臉 API 01

2021-09-21 00:21:41 字數 2029 閱讀 9381

說實話,邊學ai邊學python挺酸爽的。可這阻止不了我嘗試學習ai的熱情,哈哈。並且,如果我能搞出來,看到文章的您肯定也不在話下。

人臉api是azure上ai及認知服務的一項,應該是從計算機視覺分出來的吧,針對人臉的特點單獨做了特定的人工智慧機器學習及api封裝。由於是基於azure的雲端服務,所以針對人臉的一些功能封裝的很好,只需要使用http的幾類方法 (get \ put\ post\ patch\ delete) 提供資料然後呼叫即可。

首先,在azure訂閱中新增人臉api的服務。和其他的認知服務一樣,也有免費的定價,也是通過key來訪問這個服務。所以,開始學習**之前,先複製人臉api服務的key。

應該說,azure認知服務的頁面給的鏈結還是不錯的,後續大部分需要的內容,通過這些鏈結都能找到資訊。最近的文件配圖增加了,不過和其他產品的文件一樣,感覺組織有點紛亂。這和雲轉型以及大量引入不同的開源、linux、不同語言可能相關吧。

我們的目標是通過示例**盡快的了解人臉api服務是如何工作的。所以文件和不多的示例**非常有用。第乙個快速了解face api機制的示例**可以在這裡檢視:

**其實不複雜。首先,按照api的要求,使用訂閱的服務key和資料型別作為header,按照要求和需要,提供特定的引數params和指定格式的內容body,構造特定的url字串,然後用指定的方法通過https請求azure上的人臉api服務。

看看detect這個api。通過提交一張**,就能夠利用人工智慧檢測**中的人臉,進行分析和提取特徵。通過示例**,我們可以學習到挺多東西的。

首先,如圖中的body,實際上是提供一張**給ai。除了這裡的json模式的資料之外,也可以使用octet-stream模式的資料,比如從本地提供**。

對於detect的api來說,很重要的一點是params裡面說明了人臉檢測返回的三個重要的資料:faceid,facelandmarks (面部特徵) 和 faceattributes (面部屬性)。faceid後面再說,先看面部屬性。面部屬性會返回ai對人臉的判斷,例如性別,年紀,戴沒戴眼鏡,什麼眼鏡,頭髮怎樣,啥顏色,什麼表情之類。需要返回哪些屬性,可以在params裡指定。原示例**給的是一位美女的**,我換成了偉大的愛因斯坦的**~ 從返回的結果看,**裡的愛因斯坦有一點點 (0.003) 的不開心啊哈哈。七情六慾,表情屬性正好七個。

這些屬性可以做很多的事情,例如通過表情判斷人的情緒,進而改進服務、應用或者ai的互動體驗。想象一下,每天到辦公室開機,cortana會說,今天你不太開心啊,路上辛苦了,我給你講個笑話吧。是不是比你女朋友 (if girlfriend.get(): ) 還體貼?

另乙個很重要的返回,是面部特徵。我們國家的人臉識別技術非常領先,azure使用的技術很多應該也來自於我們的微軟亞洲研究院。人臉api中,對人臉進行的抽象是27點面部取樣。

按照這27點取樣,計算各點對應關係,就能夠讓人工智慧判斷人臉特點,進行識別。在這裡: 對這部分做了簡要說明。

參考 api的說明:我猜由於目前還不是個global的服務,所以構造認知服務呼叫的url的時候,需要按照服務所在站點填寫。而四類不同的api呼叫,每個api要求的url也不盡相同。如前文所說,實際上api的實現,都是構造這些url然後使用不同的http方法完成。

api參考和其他認知服務一樣,除了說明,還給出了不同常見語言的示例。通過示例**能夠很快了解如何使用這些服務。此外,對輸入和輸出的資料型別、格式以及限制也給出了詳細的說明。我想說的是,即使沒有程式設計基礎,也真的不難。

對於已經熟悉api的使用者,當然也可以直接使用封裝好的sdk。可以在github獲得:

而文件也給出了使用sdk的示例**:

從零開始玩人工智慧 人臉 API 02

前文介紹了人臉api,但沒有乙個完整的功能實現,各個功能的api始終如散開的珍珠一樣,不能串成珠鏈。到底這套api是如何工作的呢?person person group facelist face這些不同的物件是怎麼發生聯絡的呢?於是,我決定寫乙個相對完整的簡單程式,完成乙個對人臉進行識別的功能。仔...

從零開始玩人工智慧 人臉 API 02

前文介紹了人臉api,但沒有乙個完整的功能實現,各個功能的api始終如散開的珍珠一樣,不能串成珠鏈。到底這套api是如何工作的呢?person person group facelist face這些不同的物件是怎麼發生聯絡的呢?於是,我決定寫乙個相對完整的簡單程式,完成乙個對人臉進行識別的功能。仔...

從零開始學習人工智慧 python篇 (二)

mac 系統自帶python,本人系統為macos high sierra,版本為10.13.3,在終端輸入指令python v 獲得到的python版本為 2.7.15,所以mac系統是自帶python的。但是2020 年 1 月 1 日,官方宣布停止 python 2 的更新。所以本著要玩就玩最...