Page 32 - EV Hypercar突破重量與動力極限
P. 32
DESIGN FEATURES
相機的開銷和過熱問題
了能夠使用這項功能,我們只能 使用其所支援的分層。
兩個數字看起來都非常小,甚 至可以忽略,但是在累積一整 天的差異後,它們對整個效能 的影響至關重要。 儘可能利用足以完成任務的最 小化網路。由於推論時間通常 與網路的規模成比例,最好小 心謹慎以避免利用大規模網 路,以免為了流暢地進行即時 運算而花費太多時間。 利用Metal套件進行可視化以 取代UIKit。由於我們致力於 每秒至少產出25格影像,程式 碼就必須盡可能地快速。採用 Metal套件著色器(shader)的 運算可視化比UIKit快了好幾 十倍。因為UIKit是高階架構, 主要用於多半處於靜態的介 面和使用者介面(UI)元素。另 一方面,Metal顧名思義,它相 當接近硬體,能夠為高效能繪 圖渲染提供所需的低階且低 營 運 成 本 A P I。除 此 之 外,為了 呈現與UIKit的覆蓋層,我們 首先需要運算UIImage;在多 數情況下這是由一個相對慢 速的CPU完成。另一方面,利 用Metal套件,我們能夠在提 供Metal著色器的同時計算許 多畫素值,所有的這些運算都 可在GPU上完成,因而能夠更 快地渲染覆蓋層。 同時利用低階的C++和 Objective-C++,以取代像 Swift等高階程式語言。即使 Swift在效能上已經追趕上來 了,它仍然無法達到C++的水 準。一般的經驗法則是越關注
我們所開發的SDK最近遇到 了這樣的使用案例:為了讓相機 能夠保持長時間的開啟狀態,使 得手機變得過熱。特別是在炎熱 的夏天,這個問題更加值得注意。
裝置上機器學習最具價值的 應用之一是即時視覺化。為了達 到流暢且即時的視覺化而不至於 讓裝置過熱,下列是一些需要考 慮的事項:
3. 4.
我們也利用蘋果(Apple) 的MetalKit和AVFoundation API,但這些API通常讓GPU和 CPU的負荷變得沉重。在擷取一段 360度的環景視訊之後,接著利用 電腦視覺和Core ML等工具,在所 擷取的視訊媒體上執行內部處理。 如果未能妥善地均衡處理,所有的 這些舉動都會導致手機過熱。所 以,我們想出了許多解決方案,以 便將這個問題進行最佳化處理。
1. 2.
跳格(Skipping frames)—無需 在每一格影像上都執行機器學 習模式。通常在精確度和流暢 度之間的最佳權衡是每秒25 格(25fps)。 在讀取機器學習輸出時,利用 直接的資料指標以取代下標 陣列(subscripting array)。這 兩種方法的時間差一開始似乎 可被忽略,而當執行每格數千 次之後,所耗費的時間累加起 來就很可觀。例如,我們有一 款App即利用指標補償法來解 壓縮,需要耗時0.000000012 秒;相形之下,利用陣列下標 法耗時約0.00000076秒。這
在iOS裝置上進行機器學習 時,最重要的是利用神經引擎,這 顯然是專為加速機器學習推論而 設計的。其處理速度平均比GPU 快十倍,且隨著效能的提升,你也 能夠感受到較低的能耗。然而,為
圖1:利用iPhone檢查車輛的損壞情形。 (圖片來源:Fyusion)
28 www.edntaiwan.com
5.