谷歌新發布的Video Intelligence API究竟怎么用

jopen 7年前發布 | 6K 次閱讀 Google

谷歌新發布的Video Intelligence API究竟怎么用

3 月初,谷歌在 Google Cloud Next 2017 大會上對外公布了 Cloud Machine Learning API 更新。此次更新覆蓋了包括計算機視覺、智能視頻分析、語音識別、自然語音處理、機器翻譯和職位搜索等在內的諸多領域,被認為是谷歌云近段時間最大規模的一次升級。在此次更新中,最受關注的可能就是能夠進行視頻識別的 Video Intelligence API 了。

在發布會上,谷歌云工程師 Sara Robinson 曾針對 Video Intelligence API 登臺演示了一個應用樣例(演示視頻見文末),用于說明該 API  的具體功能。近日,Sara Robinson 在 GitHub 上公開了該樣例的源代碼,并對 API 本身和樣例的實現做了簡要說明。現雷鋒網編譯如下,希望對各位開發者有所幫助。

為了向大家充分展示我們新發布的 Video Intelligence API 的具體功能,我曾編寫了一個樣例。目前樣例源碼已經上傳到了 GitHub,感興趣的朋友可以在下面的鏈接查看詳情:

http://t.cn/RXVBuoE 

通過這個樣例,我們將看到 Video Intelligence API 的兩個重要功能:

  1. 識別目標視頻中每一幀的內容;
  2. 在龐大的視頻庫中搜索當前視頻的元數據。

  關于 Video Intelligence API

總體上說,Video Intelligence API 向開發者開放了一種接入谷歌預訓練模型的方法,該模型不但可以從宏觀上識別當前視頻中每一幀的具體內容,同時還能給出相關內容的顆粒數據(granular data)表述。如下圖所示,假設視頻在 0:07 的時間點出現了一只小狗。

谷歌新發布的Video Intelligence API究竟怎么用

則 Video Intelligence API 就可以識別這只狗,并同時識別出整段視頻中所有出現小狗的數據幀。以下代碼展示了在一個標簽下的 JASON(JavaScript Object Notation)表述:

{
      "description": "Dog",
      "language_code": "en-us",
      "locations": [ {
        "segment": {
          "start_time_offset": 7090474,
          "end_time_offset": 8758738
        },
        "confidence": 0.99793893,
        "level": "SHOT_LEVEL"
}

這段 JASON 代碼以微秒級的時間分割展示了該視頻片段,從代碼中可以看到,API 對該數據幀的識別結果為“dog”,并且標明正確率為 99%。在該段視頻的其他相關片段中,該 API 甚至還能識別出小狗的具體品種(識別結果是 Dashchund,即達克斯獵狗,正確率為 81%)。

看到這里你可能要問,我可以按照 1fps 的幀率將視頻分解,然后對每一幀數據做圖像識別,不也能達到同樣的效果么?的確如此。對每一幀數據做圖像識別,在上述 JASON 描述的層面的確能和 Video Intelligence API 達到一樣的效果,但后者的功能卻不止于此,而這也是 Video Intelligence API 的核心競爭力之一。

除了上述針對每一幀的解釋之外,此次發布的 Video Intelligence API 還能通過特定的分析模型給出不同視頻幀之間的聯系和區別。例如視頻中如果出現了足夠多的禮服和糖果鏡頭,則 API 就可以識別出這是一段關于萬圣節的視頻并標記。不僅如此,此次更新的 API 還具有鏡頭變更檢測功能,即可以分辨視頻中的場景轉換。通過這一功能,開發者可以將視頻按場景完全自動化地按照內容分割成不同的片段,并返回相應片段的 JASON 描述,非常方便。

關于 Video Intelligence API 更詳細的介紹請參見以下視頻(需KX上網),視頻中的演講嘉賓是 Video Intelligence API 的產品經理和研發工程師:http://t.cn/RXfjO6t 

  關于樣例

以下是本次樣例的原理圖,我在 3 月初的 Google Cloud Next 2017 上曾經做過演示。

谷歌新發布的Video Intelligence API究竟怎么用

如圖所示,整個樣例分為前端(圖片上半部分)和后端(圖片下半部分)兩部分。

關于后端:本樣例將待處理視頻存儲在谷歌云 Bucket 中,這里我實現了一個函數,每當用戶添加一個新視頻到該 Bucket 時,該函數會被觸發,一方面檢查文件的合法性(例如是否是視頻文件,文件是否完整等),同時負責將合法的視頻文件傳遞到 API 進行分析。這里 API 提供了一個非常方便的選擇參數,即用戶可以傳入另一個谷歌云 Bucket 地址,當 API 分析完成后,可以將分析結果,即 JASON 表述存儲在該 Bucket 地址中。我在樣例中即應用了這一點,將分析結果存儲在了另一個谷歌云 Bucket 中。

前端是我跟另一個同事 Alex Wolfe 共同完成的,其中用到了 ES6,Sass,Gulp,CanvasJS 等各種客戶端 JS 工具(具體可以參考 GitHub 代碼),實際上實現了一個基于谷歌 App Engine 的 Node.js 應用。

最后需要指出的是,除了樣例中的用法外,用戶還可以直接在瀏覽器端直接體驗 Video Intelligence API,地址如下:http://t.cn/Rilda3x 

或者用戶也可以在上述鏈接注冊,對 API 進行更深度的體驗。

以下是關于文中樣例的視頻演示地址:http://t.cn/RXfuXiN 

來自: 雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!