• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 國內 >
     首頁(yè) > 新聞 > 國內 >

    在WebRTC上實(shí)現ML Kit笑容檢測

    2018-06-21 09:40:21   作者:文 / Roberto Perez, Gustavo Garcia  譯 / 元寶   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      本文來(lái)自Houseparty的WebRTC視頻專(zhuān)家Gustavo Garcia Bernardo和TokBox的WebRTC移動(dòng)端專(zhuān)家Roberto Perez,他們通過(guò)Google的ML Kit在WebRTC通話(huà)中實(shí)現了簡(jiǎn)單的笑容檢測,期間考慮到了檢測準確率、延時(shí)以及檢測頻度與CPU占用率的平衡等,實(shí)際結果表明ML Kit的檢測結果令人滿(mǎn)意。LiveVideoStack對本文進(jìn)行了摘譯。
      現在,在大部分時(shí)間里建立視頻通話(huà)變得相對簡(jiǎn)單,我們可以繼續使用視頻流做一些有趣的事情。隨著(zhù)機器學(xué)習(ML)的新進(jìn)展以及越來(lái)越多的API和庫的出現,計算機視覺(jué)也變得越來(lái)越容易。Google的ML Kit是最近提出的一個(gè)新的基于機器學(xué)習的庫,可以快速訪(fǎng)問(wèn)計算機視覺(jué)輸出。
      為了展示如何使用Google的新ML KIT來(lái)檢測實(shí)時(shí)WebRTC流上用戶(hù)的笑容,我想歡迎過(guò)去Houseparty的WebRTC視頻大師Gustavo Garcia Bernardo。與此同時(shí)歡迎TokBox的移動(dòng)WebRTC專(zhuān)家Roberto Perez。他們給出了一些關(guān)于做面部檢測的背景知識,展示了一些代碼示例,但更重要的是分享了他們實(shí)現實(shí)時(shí)通信(RTC)應用程序內的微笑檢測的最佳配置的研究。
      介紹
      在實(shí)時(shí)通信(RTC)中最常見(jiàn)的機器學(xué)習(的例子是計算機視覺(jué)。然而,除了使用人臉檢測進(jìn)行識別、跟蹤和增強之外,我們還沒(méi)有看到這些算法的許多實(shí)際應用。 幸運地是兩周前Houseparty首席執行官Ben Rubin發(fā)表的一則讓我們有機會(huì )探索人造視覺(jué)用例的評論:
      “若有人可以做一個(gè)來(lái)檢測笑臉的編外項目,以便讓我們可以開(kāi)始測量笑容并在儀表板上顯示。 我認為這在許多不同的層面上都很重要。”
      幾乎與此同時(shí),Google發(fā)布了他們用于機器學(xué)習的新的跨平臺移動(dòng)SDK,名為ML Kit。 我們想要立即測試這個(gè)。 幸運地是,所有的行星都可以讓我們在一個(gè)真正的應用上嘗試一下,即:在WebRTC對話(huà)中,在iPhone本地上通過(guò)ML檢測笑容。
      框架選擇
      我們可以一些設備上的機器學(xué)習框架和庫開(kāi)始這項任務(wù)。這種類(lèi)型的用例最有名的庫可能是OpenCV。 OpenCV是一個(gè)非常成熟的多平臺解決方案,具有多種基于傳統圖像處理技術(shù)的功能。 特別是對于iOS,Apple去年在這一領(lǐng)域開(kāi)始添加一些新的API接口。現在他們擁有高層次的Vision框架和更低層次但更靈活的CoreML。 在A(yíng)ndroid方面,ML支持主要由Tensorflow Lite提供。另外還有,在前面提到的,Google最近添加了新的ML Kit框架。
      ML Kit具有一些優(yōu)點(diǎn)。首先,它是多平臺的,支持Android和iOS。 它也有幾個(gè)不同級別的抽象概念(高級和低級的API)。另外,它提供了不同的部署和執行模型,允許在設備上和在云中進(jìn)行處理。 最后,它還能夠實(shí)時(shí)優(yōu)化和更新設備上的模型。
      實(shí)現
      從流中提取圖像
      我們需要做的第一件事是將ML Kit集成在我們的WebRTC應用程序,以便訪(fǎng)問(wèn)這些圖像。 我們需要獲取本地或遠程框架(取決于我們的用例)并將它們轉換為ML Kit支持的正確格式。
      ML Kit 人臉檢測實(shí)驗中 幀圖像朝上的方向
      在iOS中,ML Kit支持以UIImage或CMSampleBufferRef格式傳遞的幀。 注意 - 請確保旋轉圖像以保證圖像幀“朝上”。根據您使用的不同WebRTC API,獲取圖像的方法也不同。如果你使用官方WebRTC iOS框架,則可以將新的渲染器連接到本地或遠程RTCVideoTrack,以接收視頻幀作為RTCVideoFrame的實(shí)例。 通過(guò)訪(fǎng)問(wèn)YUV緩沖區,你可以輕松地將其轉換為UIImage。
      如果你使用的是像TokBox這樣的平臺上的API,那么你將使用自定義驅動(dòng)程序訪(fǎng)問(wèn)原始本地幀,然后在用戶(hù)端收到它們后將它們傳遞給WebRT和/或遠程幀。 這些幀將作為CVPixelBuffer或YUV緩沖區接收,這些緩沖區也很容易轉換為UIImage。
      人臉檢測API
      一旦你有了UIImage的框架,你可以將它傳遞給ML Kit人臉檢測器。正如我們稍后在大多數情況下會(huì )看到的那樣,您只會(huì )傳遞一定比例的幀,以減少對CPU使用率的影響。這是一段代碼,展示了訪(fǎng)問(wèn)ML Kit API的容易程度:
      概率閾值
      我們發(fā)現使用0.5作為微笑概率閾值為我們的需求提供了良好的結果。 你可以看看我們構建的示例應用程序中的完整代碼,通過(guò)利用使用OpenTok捕獲視的頻和上面的代碼來(lái)檢測微笑的概率。
      性能評估
      RTC應用程序通常是資源密集型的。 添加機器學(xué)習增加了這一點(diǎn),所以資源消耗是一個(gè)主要問(wèn)題。對于ML,通常要在準確性和資源使用之間進(jìn)行權衡。在本節中,我們從不同的角度評估這些影響,為決定如何將這些功能引入應用程序提供一些預期值和指導方針。
      注意:以下測試中的所有結果均在使用低端的iPhone 5 SE設備完成。
      時(shí)延
      要考慮的第一個(gè)重要參數是執行檢測需要多長(cháng)時(shí)間。
      ML Kit具有一系列設置:
    • 檢測模式:ML Kit在此提供兩個(gè)選項:Fast vs. Accurate(快速與準確)。
    • 標記:識別眼睛,嘴巴,鼻子和耳朵。啟用此功能會(huì )減慢檢測速度,但我們得到的結果要好得多。
    • 分類(lèi):我們需要此功能進(jìn)行笑臉檢測
    • 臉部跟蹤:跨幀跟蹤相同的臉部。啟用它可以使檢測速度更快
      檢測時(shí)間以毫秒為單位 (ms)
      精確模式和快速模式之間的差異并不大(除非跟蹤功能被禁用)。 我們用快速模式獲得的精確度非常好,所以我們決定采用以下組合:快速模式+標志+追蹤。
      CPU使用率
      接下來(lái)我們將評估CPU使用率。 我們以每秒25幀的速率來(lái)處理。 在我們的用例中(以及其他許多情況下),我們不一定需要處理每一幀。 CPU /電池節省對我們來(lái)說(shuō)比檢測每一個(gè)微笑更重要,因此我們運行了一些測試,修改了我們傳遞給ML Kit進(jìn)行識別的每秒幀數。
      正如您在下圖中看到的那樣,在默認基線(xiàn)之上的額外CPU使用率(僅從攝像頭捕獲而不進(jìn)行任何ML處理)與傳遞至ML Kit的臉部和笑臉檢測API的每秒幀數幾乎成線(xiàn)性增長(cháng)。
      ML Kit以不同幀率處理的CPU使用率
      對于我們的實(shí)驗,每1或2秒處理一幀時(shí),CPU使用率就是合理的。
      應用程序大小
      現在,我們來(lái)考慮應用程序的大小。 我們的應用程序與任何應用程序一樣,需要下載并加載。小總是好一些。隨著(zhù)ML套件的應用程序的大小“剛”增長(cháng)約15Mb。 示例應用程序大小從只使用OpenTok時(shí)的46.8Mb到ML Kit添加進(jìn)來(lái)后的61.5Mb。
      準確度
      最后我們聊聊準確性。我們注意到的第一件事情是即使在快速模式下配置ML Kit時(shí),面部檢測的準確程度也是如此。 我們的測試是在一個(gè)典型的移動(dòng)/桌面視頻會(huì )議設置中完成的,人在看相機,沒(méi)有任何物體阻擋它。 在其他情況下,檢測會(huì )更加不可靠,并且不是很有用。 ML Kit也支持在圖像中檢測多個(gè)面,但我們沒(méi)有進(jìn)行太多的測試,因為它在我們應用程序的使用中并不常見(jiàn)。
      在我們的測試中,算法的決策總是非常接近人類(lèi)可能會(huì )說(shuō)的那樣(至少在我們看來(lái))。 您可以在下面看到一個(gè)視頻以供參考,或者是自己運行示例應用并查看結果。
      結論
      即使這個(gè)用例非常簡(jiǎn)單,它也使我們有機會(huì )評估新的有前途的ML Kit框架。 它讓我們看到了向應用程序添加新計算機視覺(jué)功能的價(jià)值和便利性。 從我們的角度來(lái)看,這次評估的兩個(gè)最有意思的結果是:一,這些模型的準確性之高令人驚訝,二,無(wú)法像預期中的在當今典型的移動(dòng)設備中以全幀速率運行這些算法
      同樣重要的是要注意,這些人臉檢測用例中的一些可以用更簡(jiǎn)單的圖像處理算法來(lái)解決,而不是應用ML技術(shù)。 在這方面,像蘋(píng)果核心圖像這樣的一些API可能會(huì )提供更好的資源與精確度之間的折衷 - 至少可以在iOS平臺上進(jìn)行人臉檢測。
      然而,傳統的圖像處理方法僅限于用在那些算法設計的一些簡(jiǎn)化場(chǎng)景。 ML算法可以進(jìn)行擴展和重新訓練。 例如,使用ML來(lái)檢測自定義人員的其他特征(如性別,年齡等)也可能很好。這種分析級別超出了傳統圖像分析算法可以達到的級別。
      下一步
      從技術(shù)角度來(lái)看,這次評估的下一步將是使用定制模型(可能使用CoreML)來(lái)實(shí)現更復雜的用例。 我們想到的是基于生成對抗網(wǎng)絡(luò )的圖像重建,用于非理想網(wǎng)絡(luò )條件下的視頻傳輸。這可能是提高視頻質(zhì)量的全新方法。
      LiveVideoStackCon 2018講師招募
      LiveVideoStackCon 2018是音視頻技術(shù)領(lǐng)域的綜合技術(shù)大會(huì ),今年是在10月19-20日在北京舉行。大會(huì )共設立18個(gè)專(zhuān)題,預計邀請超過(guò)80位技術(shù)專(zhuān)家。如果你在某一領(lǐng)域獨當一面,歡迎申請成為L(cháng)iveVideoStackCon 2018的講師,讓你的經(jīng)驗幫到更多人,你可以通過(guò)speaker@livevideostack.com提交演講信息。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 北碚区| 鄯善县| 镇宁| 织金县| 柞水县| 清苑县| 祁东县| 蒲城县| 通海县| 苍溪县| 万山特区| 桃园市| 社会| 清涧县| 高要市| 桦甸市| 申扎县| 金门县| 时尚| 公主岭市| 特克斯县| 平阴县| 莫力| 天气| 金秀| 金昌市| 巴青县| 水城县| 景东| 昭苏县| 普洱| 苍梧县| 姚安县| 腾冲县| 景德镇市| 桐乡市| 竹山县| 略阳县| 漳平市| 九龙城区| 海晏县| http://444 http://444 http://444 http://444 http://444 http://444