日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

技術類問題

本文列舉了使用美顏特效SDK過程中可能遇到的技術問題及解決辦法。

目錄

美顏SDK的API使用要求?

美顏SDK所有API,包括創建、配置、使用、銷毀,在整個使用過程中,必須確保滿足如下兩個條件:

  • 始終在同一個線程中調用。

  • 該線程必須要有GL上下文。若沒有,可通過接口,改由Queen內部去創建。

問題排查調試方法?

Android端:

engine創建完成后,打開debug開關。

engine.enableDebugLog();

可以通過過濾“Queen”關鍵字來查看當前美顏SDK運行狀態的日志輸出,如下:12

其中,過濾d級日志,信息較多,過濾i級日志,信息集中。

輸入輸出參數怎么填?

SDK內置了智能自動檢測當前畫面最佳輸入參數的算法,通過如下兩個步驟,可以開啟查看當前所預期需要的輸入參數。

  1. 創建engine時,指定算法輸入模式為自動模式。config.algInputMode = AlgInputMode.kModeAutomatic;3

  2. 開啟debugLog模式,即engine創建完成后,打開debug開關。

    engine.enableDebugLog();

    通過過濾日志,可以看到如下的Logcat輸出。

    4

    其中,input_angle,out_angle,out_flip即為算法計算得出的,當前畫面預期的輸入參數值。

重要

智能算法檢測畫面會有額外性能開銷,測試驗證完畢后,請及時還原該兩步的操作。

SDK性能表現如何?

美顏特效SDK歷經多年迭代,在性能優化、效果優化、效率優化方面力求做到業內領先。尤其,性能優化一直是美顏特效SDK在技術側最為看重的方面,經過多輪優化,已達到性能水平領先,尤其在低端機和東南亞地區較老系統版本中,進行專項優化與迭代。對同一功能提供多種版本,例如美顏模塊,提供高級模式、省電模式、智能調節模式等更好去適配客戶實際場景。同時,日常迭代中,每個版本均有專門的多維度性能測試報告,并在多個內外部客戶中得到大規模驗證與應用。

如何解決屏幕黑屏問題?

出現原因:常見是由于紋理ID錯誤或生成紋理錯誤所致,偶爾會出現個別客戶對返回后的紋理ID使用不當或使用無效紋理ID進行自身業務層的繪制而產生黑屏的問題。

解決方法:美顏特效SDK的渲染層基于OpenGL實現,只要確保傳入美顏特效SDK接口的紋理ID是正常顯示,則美顏特效SDK可以保障傳出的畫面紋理是正常可顯示的。即便沒有應用任何效果甚至是參數錯誤或者是沒有授權情況下,美顏特效SDK也會保證將原始紋理進行返回。

接入美顏特效SDK后,畫面純色閃爍,移動手機后,畫面顏色變化,但仍然沒有畫面?

出現條件:engine的構造參數toScreen為true,input紋理為oes紋理,render采用無參render()。

解決方法:render()改為renderTexture(matrix) ,如果輸入紋理是oes的,則需要使用renderTexture,其中參數matrix是需要從surfaceTexture中獲取的。

啟動后閃退問題?

檢查engine.setInputTexture中的textureId是否正確,確保正確后,重新啟動。

貼紙/美妝功能,人臉像呈90度橫屏后,人臉不可識別問題?

出現條件:engine的構造參數toScreen為true,input紋理為oes紋理,render采用無參render(),且算法運算采用取幀方案,而非bytebuffer方案。

解決方法:用bytebuffer方案,人臉能識別,但因為寬高的原因,會出現被錯誤拉大或拉窄情況。

基礎美顏有效,高級美顏/美妝/貼紙無效問題?

基礎美顏有效,說明Queen-engine的初始化/設參/渲染流程是通的,高級美顏無效,通常是由于設置參數錯誤,導致識別不了人臉,從而導致一切需要人臉關鍵點的效果均失效。常見的可能設置錯誤的參數,主要有三種情況:

  • 設置紋理輸入時寬高參數錯誤,如接口:setInputTexture(int texture, int width, int height, boolean isOES),其中width/height必須是當前texture的顯示寬高大小,需與texture參數匹配。第四個參數isOES直接決定了texture是否是一個oes紋理(Android特有),是否是oes紋理決定了Queen-engine內部是否需要做紋理顯示轉換(對應需要render傳入當前相機采集時正確的matrix)。此處的寬/高直接決定了顯示畫面渲染的寬高比,從而可能影響到高級功能的效果在具體渲染時的畫面縮放比。常見的影響效果是,高級功能效果可用,但尺寸被拉大且變形。

  • 設置輸入數據時的寬高參數錯誤,如接口:updateInputDataAndRunAlg(byte[] imageData, int format, int width, int height, int stride, int inputAngle, int outAngle, int flipAxis, boolean reuseData),其中的width/height指示的是當前輸入數據ImageData的實際寬/高,它和上面第1種情況中的寬/高,可能是相同參數,也可能是相反參數(如Android端直接從相機里獲取到的buffer都是旋轉90度的,寬/高剛好相反)。此處的寬/高直接決定了人臉頭像是否能正常識別,進而直接影響功能是否可用。

  • 設置輸入數據時的輸入角度/輸出角度/xy軸旋轉等參數錯誤,如接口:updateInputDataAndRunAlg(byte[] imageData, int format, int width, int height, int stride, int inputAngle, int outAngle, int flipAxis, boolean reuseData)或者幀同步接口updateInputTextureBufferAndRunAlg(int inputAngle, int outAngle, int flipAxis, boolean usePreviousFrame),其中的inputAngle/outAngle/flipAxis都是高級功能中人臉識別所必需的參數。 參數inputAngle決定了算法如何使用傳入的數據或紋理,是否需要旋轉,旋轉多少角度;參數outAngle決定了算法如何將識別結果進行渲染顯示,是否需要旋轉,旋轉多少角度;參數flipAxis是個枚舉值,Queen-engine內有定義,決定了最終渲染畫面是否需要對稱翻轉,沿x軸還是y軸翻轉;上述幾個參數,對算法識別特別關鍵,且又和當前相機角度/前后攝像頭密切相關,為方便處理,特地封裝與整理到了相關處理工具類QueenCameraHelper.java中,各應用可在此基礎上直接或適當調整使用。