要訓練計算機視覺識別住宅內部裝修是一項非常複雜的任務。若想要訓練資料具備一定的多樣性和準確性,那麼則必然需要耗費大量的成本、時間,有時甚至還會涉及隱私問題。在本篇文章中我們將就如何透過Unity的合成數據生成工具和服務,訓練出更為強大的計算機視覺應用,從而解決開發障礙與難題進行深入探討。
在開發高效能計算機視覺(Computer Vision,簡稱CV)模型時,最難點往往是需要獲取足夠多樣、標註準確的資料集。而最近興起的合成數據可以最小化資料獲取、註釋所需的時間與成本,這也使合成數據成為了資料收集問題的一種較為可行的解決方案。
Unity一直是合成數據推廣的引領者。對於各個專業的合成數據技術Unity也都十分有經驗,其中一個重要行業便是家裝。
合成的家裝資料可用於智慧家居、防火防盜、生活輔助、醫療保健、寵物與嬰兒監控、室內設計等各種應用。
在開發家居應用時,獲取真實的標註資料常常會因為隱私問題而受到阻礙。除此之外,資料集在材料、顏色、光照和傢俱等組成要素上要求有一定的多樣性,讓資料進一步複雜化。
為了解決這些難題,滿足客戶需求,Unity已在開發用於生成逼真家居環境的工具和3D內容庫。藉助程式化方法,能夠實現在資料集中擺放傢俱,在諸如鏡頭位置、傢俱材料、光照、時間變化、天空和室外環境等組成上新增隨機元素,除此之外Unity還添加了自定義物件的支援。下圖展示了其中四種元素的隨機化。
其他引數不變,四種場景組成的隨機化
Home Interiors資料集是用工具生成的一個數據樣本。這個資料集包含以用途與例項劃分的影象(分別標註為傢俱、裝飾、牆壁、天花板和地板),傢俱皆以2D或3D邊框框選。相較於參考資料稀少的訓練資料,帶有更多標籤型別的資料可以大幅拓寬CV的應用範圍。
接下來我們來了解幾個家居應用案例。Unity在這些案例中幫助客戶克服了獲取真實資料集的難題。
Home Interiors資料集所包括的四種參考資料。左上:2D選框,左下:3D選框,右上:用途劃分,右下:例項劃分
智慧化家居
在自動化家居和生活輔助等應用上,計算機視覺技術有著極大的吸引力。在應用領域,傳統的感測器陣列也正在轉向以CV驅動的攝像機,從而更加高效的執行任務。
掃地機器人就是一個很好的例子。掃地機器人自發明以來已近30年,而傳統型號的主要缺點之一是無法分辨垃圾和其他物體,並且很難穿梭於障礙物過多的空間裡。如今我們可以藉助Unity的力量針對這些缺點為其制定相應的解決方案。例如,Unity的物理引擎可以逼真地模擬出帶有隨機褶皺和摺痕的織物,以此用於訓練掃地機器人識別並避開衣物。
智慧掃地機器人的視角模擬。左圖:2D選框,右圖:用途劃分
利用合成數據改善CV模型的另一個用例是智慧攝像機。智慧攝像機的作用是檢測房間裡是否有人,以便控制和調整照明、氣溫等房間環境情況。Unity的工具同樣發揮了重要作用。其中的一個例子便是訓練相機模型識別寵物。要想識別寵物,就需要在居家環境下獲取大量不同姿勢、動作、毛色等的寵物影象。作為一個遊戲引擎,Unity完全可以藉助包括骨骼動畫、動態模糊等效果生成高度逼真的影象。
並且,Unity還可以合成不同位置與視角、透視投影、長寬比、鏡頭扭曲和其他影象屬性(對比度、飽和度等)等符合真實攝像機特徵的資料。例如在一個合成環境裡,引擎可以輕鬆模擬夜視攝像機及普通RGB攝像機。此外,Unity所具有的使合成數據快速迭代的這一特點也能讓兩種攝像機間的切換非常輕鬆。
模擬一臺帶有魚眼鏡頭的夜視攝像機。左圖:2D選框,右圖:用途劃分
安全與防盜
CV另一個佔據主導地位的領域在於以醫療保健和生活輔助技術改善家庭安全與生活質量。
比如,為了需要幫助視力障礙者安全地在屋內行走,CV模型需要全面地瞭解房屋的佈局及物品擺放。模型需要透過檢測傢俱、牆壁、樓梯和門等元素來識別出安全路線,並且需要測量出牆壁及其他障礙物的距離,在使用者靠得太近時發出警告。為了解決這個問題,在資料集中我們採用了多種單層和多層住宅佈局,隨機化了傢俱的型別和擺放、門窗的開放程度。除了資料集的多樣性之外,這種複雜程度需要多種型別的基礎行為來訓練,包括分割、邊界框和深度圖等,這使得編制高度多樣化和準確標記的真實資料集更加困難。
同樣的家居場景也可用於訓練CV模型以用來檢測人類,我們可在模擬中加入3D人體模型,並隨機化其姿勢、身高、身材、頭髮、面板等。這些CV模型可用於監測人的體態,並檢測異常的步態和靈巧度等。如果住戶在特殊位置或臥榻以外的地方跌倒或長時間不動,則系統也可以嚮應急服務機構發出警報。同樣地,CV模型還能學習人在服藥時的肢體和手臂動作,在使用者忘記服藥時發出提醒。
居家環境內的3D人體模型。左圖:2D選框,右圖:監測物件
室內設計
機器學習賦予了計算機一定的藝術創作能力,計算機室內設計便是其中的一個例子。一些線上傢俱經銷商已經在利用智慧手機攝像頭於消費者家中展示其產品。經過訓練的CV模型可以識別和測量室內表面(包括地板、桌子、牆壁)的範圍和麵積,以在空間內準確地展示產品模型。
此外借助CV強化AR的例子還有很多。比如,Unity曾使用使用者上傳的圖片來訓練CV模型檢測室內的裝修材料和設計風格。此類模型可用於線上推薦系統,幫助使用者快速找到契合自家裝修的產品。Unity模擬真實物理的渲染引擎可以渲染出多種逼真的裝修材料(如各種木材和膠合板)。並且,前邊提到的隨機化工具還能在每張生成的影象中輕鬆修改材料的各種引數。
CV模型還可以檢測室內傢俱的總體形狀和尺寸,據此來推薦傢俱,或更準確地展示類似尺寸的傢俱。類似地,我們也能製作一個配色工具,為傢俱配置各種顏色,如果消費者決定要為裝修風格重新定調,可藉助工具來挑選想要的顏色。
更多應用
我們在本文中討論的CV應用只是滄海一粟,合成數據完全可以在更廣的領域內進一步釋放CV模型的潛力。除了文中的例子外,其它一些例子還包括老建築翻新(繪製精確的內部結構圖)、位置識別及合成環境的程式化生成。合成數據集具有極大的定製自由,其應用範圍只有你想不到。本文的主題是家居裝修,但程式化的合成數據工具完全可以生成大量帶有隨機化要素的環境。