天天看點

智能媒體管理(IMM) 多媒體檔案中繼資料管理設計

簡介

随着存儲團隊的産品愈加豐富,我們發現處理對檔案、内容本身的高性能、穩定、安全存儲之外,使用者更多的對挖掘存儲内容對價值提出了要求。對于多媒體檔案(如圖檔、視訊、音頻、文檔等),其包含的資訊量是非常豐富的。如何将這些資訊激活,有效的進行管理和檢索,是 智能媒體管理(IMM) 嘗試解決的問題。

媒體集 Set

為此,IMM 設計了 媒體集 ( Set ) 的概念,表示媒體 元資訊 的集合。

智能媒體管理(IMM) 多媒體檔案中繼資料管理設計

在圖中我們看到,Set 實際上是中繼資料的集合,記錄了媒體檔案(來自 OSS)和其中繼資料的綁定關系,以及所有中繼資料本身。

實際開發時,可以通過

CreateSet

來建立一個 Set 。

如何界定 Set 呢?我們認為 Set 為

一組

中繼資料,它可以對應一個使用者,一個檔案夾,一個公司的所有媒體檔案等。一個 Set 内應當存放内聚的媒體檔案,可以盡量縮小 Set 對應的檔案範圍。Set 建立數量沒有限制,Set 内檔案數量越少,整體管理性能越好。

同時需要注意,Set 是内聚的,是以不同 Set 之間的資料是隔離的,不能在不同 Set 間進行操作。

我們分具體場景看:

雲相冊場景

對雲相冊來說,一個顯然的方案是根據使用者來劃分。每個使用者獨享一個 Set 。如果雲相冊産品的設計邏輯中,區分了媒體類型,如視訊相冊、照片相冊等,也可以每個相冊一個 Set 。

使用者照片 Feed 流

這類應用有兩個分類方式。一種是依然按照使用者來劃分。但對于一些興趣社群場景,則可以考慮按照社群進行分類。如

健身社群

足球社群

這個次元區分 Set 。這樣使用者可以搜尋所有健身社群的圖檔。

如何解決社群内按使用者搜尋的問題呢?對 Set 内的媒體檔案,IMM 提供了 Remarks 字段( RemarksA 和 RemarksB 兩個)作為應用的标記位。對于這個場景,我們可以如下方式配置設定:

  • RemarksA:使用者ID
  • RemarksB:可見度:private / public

這樣我們在搜尋時,可以滿足如下場景(後文會介紹

資料搜尋

):

  • 足球社群内圖檔:

    FindImages

    API,限定

    SetId = soccer

  • 使用者檢視自己社群内的圖檔:

    FindImages

    API,同時限定

    SetId = soccer

    RemarksA = {UserID}

  • 其他使用者檢視某使用者社群内的圖檔:

    FindImages

    API ,同時限定

    SetId = soccer

    RemarksA = {UserID}

    RemarksA = public

如果仍有疑問,或需要更複雜的篩選,可以 聯系我們

Indexing 索引

我們建立好 Set 後。接下來就是向 Set 中添加媒體檔案。Set 内的引擎會自動将檔案的

中繼資料

檢測出來并格式化儲存,用于後續管理、檢索。

目前 IMM 提供了

IndexImage

用于索引圖檔,

IndexVideo

用于索引視訊。我們以

IndexImage

為例詳細介紹。

IndexImage

被調用時,IMM 首先檢查圖檔的合法性,并且将圖檔的基礎 Meta 資訊存入 Set 中。包括

  • 圖檔格式
  • 圖檔尺寸
  • 圖檔 EXIF 資訊
    • 圖檔旋轉資訊
    • 圖檔拍攝時間
    • 圖檔地理位置資訊
  • 圖檔檔案大小
  • 建立時間

等等。這一步在

IndexImage

接口傳回值之前全部處理完成。即使用者看到該接口的傳回值時,上述資訊已經被格式化好并存儲了。

随後是一個異步過程。IMM 會對該圖進行 AI 檢測,包括:

  • OCR
  • 人臉檢測分析,包括表情、年齡、特征等等
  • 标簽檢測
  • 名人檢測

等等。這些資訊會在接下來的幾秒内處理完成,并更新到該圖檔的 Meta 資訊中。即完成了圖像中繼資料的分析儲存。

中繼資料管理

Set

内已有中繼資料後,接下來就是對這些中繼資料進行擷取。IMM 主要通過搜尋、分析接口,供應用端擷取、篩選中繼資料。針對圖檔舉例,我們可以擷取:

  • 搜尋 體育運動 的照片
  • 搜尋 人物表情為高興 的照片
  • 搜尋 夏天拍攝 的照片
  • 搜尋 包含特定文字 的照片
  • 搜尋 有小孩兒 的照片
  • 搜尋 在杭州西湖拍攝 的照片

等等,且以上條件可以任意組合。我們具體展開一些例子。

使用

FindImages

接口:

POST https://imm.cn-shanghai.aliyuncs.com
?Action=FindImages
&Project=test-project
&SetId=test-set
&TagNames=["體育運動"]
...           

POST https://imm.cn-shanghai.aliyuncs.com
?Action=FindImages
&Project=test-project
&SetId=test-set
&Emotion=HAPPY
...           

首先我們找到杭州西湖的地理位置坐标。這一步可以使用高德等地圖 API 擷取。

例如西湖的大緻坐标左上角為:

120.137446,30.252502

,右下角為

120.154697,30.233854

POST https://imm.cn-shanghai.aliyuncs.com
?Action=FindImages
&Project=test-project
&SetId=test-set
&LocationBoundary={"TopLeft":"120.137446,30.252502","BottomRight":"120.154697,30.233854"}
...           

搜尋 去年夏天拍攝 的照片

POST https://imm.cn-shanghai.aliyuncs.com
?Action=FindImages
&Project=test-project
&SetId=test-set
&ImageTimeRange={"Start":"2018-06-01T00:00:00.0Z","End":"2018-09-01T00:00:00.0"}
...           

當然,上述搜尋條件均可自由組合,進行聯合搜尋。同時可以配合

Remarks

進行自定義過濾。

如果有其他搜尋需求,或目前的方式無法滿足您的業務需求,您可以

以上就是 IMM 元資訊管理的設計方式介紹。IMM 是一個比較年輕的産品,對外提供的能力也在不斷擴充。希望能夠幫助客戶便捷地管理媒體檔案,挖掘媒體檔案背後的價值。