本文介紹使用Intelligent Media Management過程中可能遇到的圖片管理相關問題。
資料集圖片數量是否有限制?
資料集圖片數量不能超過資料集設定的最大檔案數量。其他限制資訊,請參見限額配置。
資料集的粒度如何設計?
不支援跨資料集進行搜尋查詢和人臉聚類,建議以此為依據進行劃分。例如雲相簿情境,建議每個終端使用者建立一個媒體集。
人臉聚類為什麼無法產生人臉分組?
為了確保人臉分組的準確性,產生分組需要滿足如下條件:
使用IndexFileMeta - 索引檔案元資訊介面將圖片添加到資料集。
同一個人物在媒體集中的圖片必須大於或等於3張,並且至少有3張符合如下標準的高清人臉圖片:
人臉尺寸大於75×75像素。
人臉的偏轉角HeadPose的三個子項的絕對值均小於30°。
人臉的品質FaceQuality大於0.8。
分組產生後,資料集中不滿足上述高清人臉標準的圖片,也有機會被劃分為同一組人臉。
如何查詢某個人臉分組中的圖片列表?
調用SimpleQuery - 簡單查詢介面,在參數Query傳入分組ID,可以查詢分組中的圖片列表,具體內容如下所示。
您可以調用QueryFigureClusters - 查詢人物聚類介面擷取FigureClusters參數中的ObjectId,即為分組ID。
{
"Field ": "Figures.FigureClusterId ",
"Operation ": "eq ",
"Value ": "人臉分組ID"
}為什麼產生的人臉分組無法搜尋到?
由於中繼資料索引機製為非同步處理,從圖片索引、人臉分組、人臉分組能被搜尋到均需要一定的時間,所以在設計商務邏輯時,請考慮延遲帶來的資料一致性問題。
圖片索引:通常調用IndexFileMeta - 索引檔案元資訊介面對圖片進行索引需要10秒 。
人臉分組:調用CreateFigureClusteringTask - 建立人物聚類任務介面進行人臉聚類分組操作最多需要180秒。時間和單次索引的圖片數量有關,一般數秒完成。
重要CreateFigureClusteringTask介面依賴IndexFileMeta介面完成圖片中人臉的檢測。如果您使用MNS訊息訂閱了IndexFileMeta介面調用返回結果,則應當在IndexFileMeta介面調用完成後,至少等待10秒再調用CreateFigureClusteringTask介面,以便CreateFigureClusteringTask介面能夠獲得最新的圖片中的人臉資訊。
調用IndexFileMeta、CreateFigureClusteringTask等非同步介面完成後,您可以通過SimpleQuery介面搜尋到最新結果的時間間隔為10秒。
每次索引圖片後都需要調用一次CreateFigureClusteringTask介面嗎?
不建議如此操作。CreateFigureClusteringTask - 建立人物聚類任務介面為增量分組介面,您可以在一批圖片完成索引後,一次性調用CreateFigureClusteringTask介面來進行批量聚類。推薦如下兩個方案:
簡單方法:對每一個資料集,每隔固定間隔(例如5分鐘)調用一次CreateFigureClusteringTask介面進行聚類。
更佳方案:每次調用IndexFileMeta - 索引檔案元資訊介面時,將對應的資料集推入一個延遲隊列,定時從該隊列中擷取
DatasetName,即可得到有新圖片的資料集。在最後一次調用IndexFileMeta介面的10秒後調用CreateFigureClusteringTask介面。
一張圖片中有很多人會怎麼分組?
人臉聚類是按照人臉的維度來分組的,如果一張圖片中有多個人物,每個人臉均有機會被分到某個組。
SimpleQuery介面按照聚類分組(FigureClusterId)搜尋,為什麼返回結果中有其他人臉?
SimpleQuery介面返回的維度是圖片,因此圖片內的所有人臉、標籤均會被返回。如果需要找到圖片中所搜尋的組(人物)的人臉資訊,請通過遍曆結果中的Figures欄位,並檢索其中的FigureClusterId和您搜尋的FigureClusterId一致的人臉Object,即可瞭解對應人臉的位置、表情、年齡等資訊。