Cascadeur團隊的Evgeny Dyabin討論了使用標準深度學習方法實現自動定位功能背後的邏輯。
介紹
深度學習工具在軟件開發中變得越來越重要。從Nekki的新角色動畫工具Cascadeur的示例中可以看出,遊戲開發還受益於計算機科學的這一新領域。在他備受關注的2019年博客文章中,Cascadeur的團隊負責人Evgeny Dyabin已經談到了Cascadeur的AutoPosing工具的開發進度。但是,此功能強大的工具有許多有趣的細微差別值得討論。特別是,葉夫根尼(Evgeny)在去年的博客文章中從未談到過多個神經網絡如何共同構成一個完整的儀器。在以下Evgeny為80.lv寫的文章中,他描述了他們用於僅使用標準深度學習方法來實現相對高級功能的方法。
定義問題
葉夫根尼(Evgeny):我們的目的是為用戶提供一種快速設置角色姿勢的方法。用戶將只能控制少數幾個主要點,而該工具將自動定位其他每個點,從而保持姿勢逼真。
使用完全連接的神經網絡意味著輸入和輸出是固定的,因此我們創建了幾個輸入點數量不同的網絡:一個字符的43個總點中的6、15、20和28個點。下圖顯示了用作每個網絡級別的輸入點的綠色。
使用細節級別的問題在於,如果我們想在第4個級別上移動一個點,則必須輸入所有28個點。但是我們不想強迫用戶編輯所有這些點。我們的目標是提供僅移動其中一些的選項。如何才能做到這一點?
我們的解決方案是考慮輸入數據的嵌套,使用物理模型並組合結果。
輸入數據嵌套
我們選擇了具有層次嵌套的獨特功能的細節級別。
每個級別的神經網絡的一組輸入點包括上一個級別的每個點,並添加幾個新點。這使我們可以將一個網絡的輸出用作下一個網絡的輸入。
結合成果
讓我們看一下該工具的工作方式。在我們的示例中,用戶已定位所有6個主要點,並嘗試使用來自第二個詳細程度的點來調整左手的空間方向。
當您更改除主要點6以外的任何點的位置時,該工具會記住該點,並開始在其他點的位置計算中使用它。
該工具分幾個階段工作,具體取決於編輯的點。下圖說明了此過程。
最初,第一級網絡以6個主要點為基礎來定位角色的所有43個點。然後,更高級的網絡被一個接一個地調用。每個連續的網絡都使用更詳細的輸入數據,這些數據可以由用戶更新,也可以由上一級網絡輸出。這樣,我們可以同時使用具有不同詳細程度的多個網絡。
物理精度
有時,機器學習模型的不完善以及我們的網絡預測點的全局位置這一事實會導致輸出姿勢中的邊沿長度不正確。通過運行迭代物理仿真將邊緣恢復為其初始長度,可以解決此問題。如果我們減少軟件設置中的迭代次數,我們將能夠看到它如何影響結果。
為防止將不正確的姿勢用作輸入數據,請在每個網絡級別完成工作後調用此過程。
結論和未來計劃
我們創建的工具已經證明了其有用性,特別是在動畫製作流程的早期階段,需要粗糙,近似的姿勢。我們計劃及時增加對定制人形骨骼的支持,並使該工具更加精確和穩定。
我們還將探索通用的深度學習解決方案,這些解決方案已在其他領域中用於完成任務,例如還原圖像的一部分或在圖像之間傳遞視覺樣式。這些解決方案可用於將所需的特性添加到姿勢和動畫中。
在cascadeur.com上關注新聞!
Evgeny Dyabin,Cascadeur的團隊負責人
該文章最初發佈在DTF上,請單擊此鏈接以俄語閱讀。