91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

移動(dòng)端人像分割開發(fā)

張康康 ? 2018-12-21 14:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者 | Video++極鏈科技AI實(shí)驗(yàn)室謝錦濱

整理 | 包包

個(gè)人對(duì)移動(dòng)端神經(jīng)網(wǎng)絡(luò)開發(fā)一直饒有興致。去年騰訊開源了NCNN框架之后,一直都在關(guān)注。近期嘗試將分割網(wǎng)絡(luò)移植到NCNN,能夠在手機(jī)端實(shí)現(xiàn)一些有趣的應(yīng)用,本文就幾個(gè)技術(shù)話題作相關(guān)介紹。

神經(jīng)網(wǎng)絡(luò)選擇

目前做segmentation常用的一些神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)有如下幾個(gè)可以選擇:

  • MaskRCNN

  • FCN

  • UNET

  • SegNet

  • Tiramisu

在移動(dòng)端做人像分割有兩大優(yōu)勢(shì),首先是隱私,其次是可以做到實(shí)時(shí),能夠創(chuàng)造更多玩法。因?yàn)閁NET模型比較簡(jiǎn)單,干脆就從這個(gè)入手。下面是UNET網(wǎng)絡(luò)結(jié)構(gòu):


首先我采用了基于keras的版本: https://github.com/TianzhongSong/Person-Segmentation-Keras,訓(xùn)了一個(gè)基本模型,大小為39M, iphone X上15秒處理一幀。明顯這個(gè)速度太慢,需要進(jìn)行改造。

移動(dòng)端Inference框架

經(jīng)過(guò)調(diào)研,粗略比較了幾個(gè)神經(jīng)網(wǎng)絡(luò)框架:

b8e564fcbf56462381f0a476d1354f71


其中使用難易程度,主要跟我個(gè)人習(xí)慣有關(guān)。NCNN框架比較好,代碼不多,而且兼容iOS和安卓(臺(tái)式機(jī)以及嵌入式環(huán)境同樣支持),同時(shí)底層計(jì)算采用匯編做了優(yōu)化。NCNN只實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的forward部分,沒(méi)有反向傳播,所以訓(xùn)練仍舊依賴其他開源框架,現(xiàn)在幾大框架都遵守ONNX協(xié)議,理論上各種框架模型之間互相轉(zhuǎn)換并不存在什么問(wèn)題,工具也都是開源的。

不過(guò)keras沒(méi)辦法直接轉(zhuǎn)成ncnn模型,研究過(guò)通過(guò)onnx模型做中間跳板,采用了一些開源的轉(zhuǎn)換工具,也是一堆問(wèn)題。NCNN支持幾個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練框架:caffe/mxnet/pytorch,在ncnn的github有一篇issue里nihui推薦采用MXNET,因此MXNET也成為了我的首選。其他框架往NCNN轉(zhuǎn)換工具:

2b40104f5a4a45379aba0c90bf743fad


NCNN轉(zhuǎn)換Tensorflow模型有問(wèn)題; Caffe沒(méi)有Pytorch和MXNET好用; 最終在MXNet和Pytorch之間選擇了MXNet。

人像數(shù)據(jù)集

  • https://github.com/lemondan/HumanParsing-Dataset

  • https://github.com/ZhaoJ9014/Multi-Human-Parsing_MHP

  • COCO人像數(shù)據(jù)集 – 加入后效果質(zhì)的飛躍

  • ADE20K

網(wǎng)上找了上面幾個(gè)數(shù)據(jù)集,抽取出人像部分,采用基本的flip/crop/rotate操作做了擴(kuò)充,得到228423張訓(xùn)練樣本,另外湊了9064張驗(yàn)證樣本。

模型轉(zhuǎn)換(MXNET->NCNN

MXNET的UNET版本并沒(méi)有現(xiàn)成可用的合適版本。參照其他版本的UNET,自己coding完成一個(gè)版本。代碼請(qǐng)參考: https://github.com/xuduo35/unet_mxnet2ncnn。

在這個(gè)基礎(chǔ)上訓(xùn)練完成,用來(lái)測(cè)試ncnn轉(zhuǎn)換基本可用。這里提一下轉(zhuǎn)換過(guò)程遇到的一些問(wèn)題和解決方案。

一個(gè)是調(diào)用ncnn extract函數(shù)會(huì)crash,經(jīng)過(guò)調(diào)查,發(fā)現(xiàn)mxnet2ncnn工具也有bug,blob個(gè)數(shù)算錯(cuò),其次是input層one_blob_only標(biāo)志我的理解應(yīng)該是false,不知道什么原因轉(zhuǎn)換過(guò)來(lái)的模型這邊是true,導(dǎo)致forward_layer函數(shù)里面bottoms變量訪問(wèn)異常。后來(lái)一層層extract出來(lái)打印輸出的channel/width/height調(diào)查后又發(fā)現(xiàn),自己代碼里unet.py里的name為pool5寫成了pool4,前面的crash跟這個(gè)致命錯(cuò)誤有關(guān)系也有直接關(guān)聯(lián)。

第二個(gè)問(wèn)題是轉(zhuǎn)成ncnn后的預(yù)測(cè)結(jié)果死活不對(duì)。只能一層層去檢查,寫了幾個(gè)簡(jiǎn)單的工具可以打印中間隱藏層的結(jié)果(代碼: https://github.com/xuduo35/unet_mxnet2ncnn/check.py)。在這個(gè)基礎(chǔ)之上,發(fā)現(xiàn)是第一次反卷積就出了問(wèn)題(mxnet神經(jīng)網(wǎng)絡(luò)trans_conv6的輸出)。結(jié)果完全不一致,按個(gè)人理解,反卷積算法會(huì)出問(wèn)題的可能性基本為0,所以把mxnet這一層的權(quán)重值打印了出來(lái)。再在mxnet2ncnn的代碼里把對(duì)應(yīng)的參數(shù)打印,最后發(fā)現(xiàn)是num_group出了問(wèn)題,簡(jiǎn)單處理就是把mxnet2ncnn.cpp里的反卷積num_group固定為1,終于解決問(wèn)題。得到正確的輸出結(jié)果:


中間還遇到一些ncnn和mxnet之間圖像格式之類的轉(zhuǎn)換問(wèn)題,特別是浮點(diǎn)數(shù)的處理,就不啰嗦了。另外,調(diào)試過(guò)程發(fā)現(xiàn),ncnn的中間層輸出和mxnet的輸出不是完全一致,可能是有一些參數(shù)或者運(yùn)算細(xì)節(jié)問(wèn)題,不影響最后mask結(jié)果,暫時(shí)忽略。

幾個(gè)問(wèn)題

到目前為止還存在幾個(gè)問(wèn)題,1. 模型比較大;2. 單幀處理需要15秒左右的時(shí)間(Mac Pro筆記本,ncnn沒(méi)有使用openmp的情況);3. 得到的mask結(jié)果不是特別理想。針對(duì)這三個(gè)問(wèn)題,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整。

1. 模型比較大

采取將網(wǎng)絡(luò)卷積核數(shù)量減少4倍的方式,模型大小下降到2M,粗略用圖片測(cè)試,效果也還可以。同時(shí)把之前用0值填充圖片的方式,改成用邊界值填充,因?yàn)闇y(cè)試的時(shí)候發(fā)現(xiàn)之前的方式總在填充的邊界往往會(huì)出現(xiàn)檢測(cè)錯(cuò)誤。

2. 單幀處理需要15秒左右的時(shí)間

按照第一步處理之后,基本上一張圖片只要1秒鐘就處理完成,。在手機(jī)上由于NCNN做了優(yōu)化,經(jīng)過(guò)測(cè)試速度是Mac Pro的好幾倍。

3. 得到的mask結(jié)果不是特別理想

在權(quán)衡模型大小和準(zhǔn)確率的基礎(chǔ)上修改UNET網(wǎng)絡(luò)結(jié)構(gòu),具體不再贅述。

最終結(jié)果




聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 移動(dòng)端
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    4750
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用ExecuTorch和Arm SME2加速側(cè)機(jī)器學(xué)習(xí)推理

    交互式圖像分割已成為全球主流應(yīng)用中極具代表性的移動(dòng)體驗(yàn)。簡(jiǎn)單來(lái)說(shuō),用戶只需在圖片上輕點(diǎn)一下(或粗略勾畫),應(yīng)用就能立刻生成像素蒙版,把目標(biāo)對(duì)象“摳”出來(lái)。這項(xiàng)技術(shù)支撐了許多常見(jiàn)功能,比如制作個(gè)性化
    的頭像 發(fā)表于 03-03 10:27 ?403次閱讀
    利用ExecuTorch和Arm SME2加速<b class='flag-5'>端</b>側(cè)機(jī)器學(xué)習(xí)推理

    格靈深瞳靈感實(shí)驗(yàn)室推出開發(fā)平臺(tái)AI Edge Studio

    在AI定制化開發(fā)過(guò)程中,開發(fā)者往往遇到模型訓(xùn)練門檻高、邊緣部署難度大、項(xiàng)目難以實(shí)現(xiàn)閉環(huán)等共性問(wèn)題,影響AI應(yīng)用
    的頭像 發(fā)表于 12-17 15:28 ?652次閱讀

    Flutter 移動(dòng)開發(fā):集成淘寶 API 實(shí)現(xiàn)商品數(shù)據(jù)實(shí)時(shí)展示 APP

    在電商蓬勃發(fā)展的當(dāng)下,移動(dòng)購(gòu)物成為主流趨勢(shì)。對(duì)于開發(fā)者而言,利用 Flutter 構(gòu)建一個(gè)能夠?qū)崟r(shí)展示淘寶商品數(shù)據(jù)的 APP,既能滿足用戶便捷獲取商品信息的需求,也能為電商業(yè)務(wù)拓展新的渠道
    的頭像 發(fā)表于 11-13 09:36 ?382次閱讀

    設(shè)備管理系統(tǒng)移動(dòng)應(yīng)用(APP):外勤維保效率提升6大實(shí)操技巧

    對(duì)企業(yè)而言,落地移動(dòng)的關(guān)鍵不是“功能多全”,而是“是否貼合外勤需求”,只要掌握這6個(gè)技巧,就能讓外勤維保效率翻倍。
    的頭像 發(fā)表于 10-24 16:09 ?726次閱讀
    設(shè)備管理系統(tǒng)<b class='flag-5'>移動(dòng)</b><b class='flag-5'>端</b>應(yīng)用(APP):外勤維保效率提升6大實(shí)操技巧

    福州移動(dòng)與華為聯(lián)合推出國(guó)內(nèi)首個(gè)智能化體驗(yàn)經(jīng)營(yíng)系統(tǒng)

    近日,福州移動(dòng)與華為聯(lián)合推出國(guó)內(nèi)首個(gè)智能化體驗(yàn)經(jīng)營(yíng)系統(tǒng),通過(guò)多智能管理系統(tǒng)協(xié)同,實(shí)現(xiàn)場(chǎng)景化體驗(yàn)套餐的可預(yù)估、可保障、可保護(hù)、可評(píng)估,分層分級(jí)保障用戶在熱門景區(qū)、大型演唱會(huì)和體育賽事的流暢
    的頭像 發(fā)表于 10-24 09:46 ?500次閱讀

    手機(jī)板 layout 走線跨分割問(wèn)題

    初學(xué)習(xí)layout時(shí),都在說(shuō)信號(hào)線不可跨分割,但是在工作中為了成本不能跨分割似乎也非絕對(duì)。 在后續(xù)工作中,跨分割的基礎(chǔ)都是相鄰層有一面完整的GND參考,跨分割發(fā)生在相鄰的另外一層。 但
    發(fā)表于 09-16 14:56

    美光宣布:停止移動(dòng) NAND開發(fā),包括終止UFS5開發(fā)

    產(chǎn)品的開發(fā),包括終止UFS5的開發(fā)。 此項(xiàng)決策僅影響全球移動(dòng) NAND 產(chǎn)品的開發(fā)工作,美光將繼續(xù)開發(fā)并支持其他 NAND 解決方案,如S
    的頭像 發(fā)表于 08-12 13:39 ?3157次閱讀

    移動(dòng)電源 PCBA 開發(fā)方案全解析

    移動(dòng)設(shè)備普及的當(dāng)下,移動(dòng)電源已成為人們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡呐浼?。?b class='flag-5'>移動(dòng)電源的性能與可靠性,很大程度上取決于其內(nèi)部的 PCBA(印刷電路板組件)。本文將全面解析移動(dòng)電源 PCBA
    的頭像 發(fā)表于 07-28 11:02 ?858次閱讀

    北京迅為itop-3588開發(fā)板NPU例程測(cè)試deeplabv3 語(yǔ)義分割

    北京迅為itop-3588開發(fā)板NPU例程測(cè)試deeplabv3 語(yǔ)義分割
    的頭像 發(fā)表于 07-22 15:51 ?1008次閱讀
    北京迅為itop-3588<b class='flag-5'>開發(fā)</b>板NPU例程測(cè)試deeplabv3 語(yǔ)義<b class='flag-5'>分割</b>

    迅為RK3576開發(fā)板攝像頭實(shí)時(shí)推理測(cè)試-ppseg?圖像分割

    迅為RK3576開發(fā)板攝像頭實(shí)時(shí)推理測(cè)試-ppseg 圖像分割
    的頭像 發(fā)表于 07-11 14:31 ?887次閱讀
    迅為RK3576<b class='flag-5'>開發(fā)</b>板攝像頭實(shí)時(shí)推理測(cè)試-ppseg?圖像<b class='flag-5'>分割</b>

    HarmonyOS 代碼工坊的指尖開發(fā),讓 APP 開發(fā)所見(jiàn)即所得

    過(guò)去,移動(dòng) APP 的開發(fā),往往是開發(fā)者在桌面仿真界面上的一場(chǎng)“隔空演練”。 雖然市面上已經(jīng)有一些簡(jiǎn)化開發(fā)的工具,可以在
    的頭像 發(fā)表于 06-24 12:08 ?832次閱讀
    HarmonyOS 代碼工坊的指尖<b class='flag-5'>開發(fā)</b>,讓 APP <b class='flag-5'>開發(fā)</b>所見(jiàn)即所得

    【正點(diǎn)原子STM32MP257開發(fā)板試用】基于 DeepLab 模型的圖像分割

    STM32MP257 開發(fā)板基于 DeepLab 模型實(shí)現(xiàn)圖像分割的項(xiàng)目設(shè)計(jì),包括 DeepLab 模型介紹、官方Demo例程測(cè)試、USB 攝像頭采集畫面的動(dòng)態(tài)圖像分割、板圖片靜態(tài)
    發(fā)表于 06-21 21:11

    labview使用tcp接收下位機(jī)數(shù)據(jù),最大也就200Hz,如何提高速率到500Hz?

    labview使用tcp采集數(shù)據(jù),使用了生產(chǎn)者-消費(fèi)者模式,將接收功能和存儲(chǔ)、顯示功能分割開來(lái),用隊(duì)列在中間傳輸數(shù)據(jù),但是這樣速率也很慢,最多也就達(dá)到200Hz,有沒(méi)有別的辦法能夠提升接收速率到500Hz呢?
    發(fā)表于 06-11 16:18

    Arm 公司面向移動(dòng)市場(chǎng)的 ?Arm Lumex? 深度解讀

    子系統(tǒng)(CSS)? ? 在移動(dòng)的落地形態(tài),Lumex 旨在通過(guò)高度集成化的軟硬件方案,解決移動(dòng)設(shè)備在 AI 性能、能效比與開發(fā)效率上的挑戰(zhàn)。以下從技術(shù)架構(gòu)、性能突破、應(yīng)用場(chǎng)景、生態(tài)系
    的頭像 發(fā)表于 05-29 09:54 ?4395次閱讀

    MWC2025亮點(diǎn)放送 探索Arm如何塑造移動(dòng)技術(shù)未來(lái)

    ,彰顯了人工智能 (AI) 和移動(dòng)技術(shù)之間的共生關(guān)系。 ?Arm 計(jì)算平臺(tái)賦能從云到邊的 AI 體驗(yàn)。Arm 通過(guò)提供的高能效、高性能計(jì)算,致力于不斷演進(jìn)的技術(shù)領(lǐng)域,MWC 正
    的頭像 發(fā)表于 03-14 15:40 ?1476次閱讀
    MWC2025亮點(diǎn)放送 探索Arm如何塑造<b class='flag-5'>移動(dòng)</b><b class='flag-5'>端</b>技術(shù)未來(lái)