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

在圖中我們看到,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
這樣我們在搜尋時,可以滿足如下場景(後文會介紹
資料搜尋):
- 足球社群内圖檔:
API,限定FindImages
SetId = soccer
- 使用者檢視自己社群内的圖檔:
API,同時限定FindImages
,SetId = soccer
RemarksA = {UserID}
- 其他使用者檢視某使用者社群内的圖檔:
API ,同時限定FindImages
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 是一個比較年輕的産品,對外提供的能力也在不斷擴充。希望能夠幫助客戶便捷地管理媒體檔案,挖掘媒體檔案背後的價值。