一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

TensorFlow.js制作了一個(gè)僅用 200 余行代碼的項(xiàng)目

lviY_AI_shequ ? 來源:機(jī)器之心 ? 2020-05-11 18:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

只需網(wǎng)頁端,秒速消失不留痕。

Jason Mayes 是一名在谷歌工作的資深網(wǎng)頁工程師,他長期致力于運(yùn)用新興技術(shù)提供物聯(lián)網(wǎng)解決方案。近日,充滿奇思妙想的 Mayes 又使用 TensorFlow.js 制作了一個(gè)僅用 200 余行代碼的項(xiàng)目,名為 Real-Time-Person-Removal。它能夠?qū)崟r(shí)將復(fù)雜背景中的人像消除,而且僅基于網(wǎng)頁端。 現(xiàn)在,Mayes 在 GitHub 上開源了他的代碼,并在 Codepen.io 上提供了演示 Demo。從視頻中看到,你現(xiàn)在只需要一臺能上網(wǎng)的電腦和一個(gè)網(wǎng)絡(luò)攝像頭就能體驗(yàn)它。

項(xiàng)目地址:https://github.com/jasonmayes/Real-Time-Person-Removal

Demo 地址:https://codepen.io/jasonmayes/pen/GRJqgma

目前,該項(xiàng)目異?;馃?,在 Github 上已經(jīng)獲得了 3.4k 的 Star 量。 實(shí)時(shí)隱身不留痕項(xiàng)目作者:Jason Mayes 我們先來看一下運(yùn)行的效果。下圖中,上半部分是原始視頻,下半部分是使用 TensorFlow.js 對人像進(jìn)行消除后的視頻??梢钥吹?,除了偶爾會在邊緣處留有殘影之外,整體效果還是很不錯(cuò)的。 為了展現(xiàn)這個(gè)程序在復(fù)雜背景下消除人像并重建背景的能力,Mayes 特意在床上放了一臺正在播放視頻的筆記本電腦。當(dāng)他的身體遮擋住筆記本電腦時(shí),可以看到消除算法暫停在電腦被遮擋前的播放畫面,并能在人移開時(shí)迅速地重建出當(dāng)前畫面。

此外,Mayes 還在 Codepen.io 上提供了能夠直接運(yùn)行的示例。只需要點(diǎn)擊 Enable Webcam,離開攝像頭一段距離確保算法能夠較全面的收集到背景圖像,之后當(dāng)你再出現(xiàn)在攝像頭前時(shí)就能從下方的預(yù)覽窗口看到「隱形」后的畫面了。

網(wǎng)友表示有了這個(gè)程序,像之前 BBC 直播中孩子闖進(jìn)門來那樣的大型翻車現(xiàn)場就有救了。 項(xiàng)目運(yùn)行機(jī)制 Mayes 開發(fā)的這個(gè)人像消除程序背后的運(yùn)行機(jī)制十分簡單,他使用了 TensorFlow.js 中提供的一個(gè)預(yù)訓(xùn)練的 MobileNet,用于人像分割。

constbodyPixProperties={ architecture:'MobileNetV1', outputStride:16, multiplier:0.75, quantBytes:4 };

TensorFlow.js 提供的部分計(jì)算機(jī)視覺預(yù)訓(xùn)練模型。 MobileNet 是谷歌在 2017 年針對移動端和嵌入式設(shè)備提出的網(wǎng)絡(luò),針對圖像分割。其核心思想是使用深度可分離卷積構(gòu)建快速輕量化的網(wǎng)絡(luò)架構(gòu)。Mayes 選擇使用它的原因也是出于其輕量化的原因,假如使用 YOLO 或者 Fast-RCNN 這類物體檢測算法的話,在移動端就很難做到實(shí)時(shí)性。 通過 MobileNet 的輸出獲得檢測到人物像素的邊界框。

//Gothroughpixelsandfigureoutboundingboxofbodypixels. for(letx=0;xmaxX){ maxX=x; } if(y>maxY){ maxY=y; } foundBody=true; } } } 為避免人物沒有被檢測完全的現(xiàn)象,這里使用變量額 scale 對檢測區(qū)域進(jìn)行適當(dāng)放縮。這個(gè) 1.3 的參數(shù)是測試出來的,感興趣的讀者可以調(diào)整試試看。 //Calculatedimensionsofboundingbox. varwidth=maxX-minX; varheight=maxY-minY; //Definescalefactortousetoallowforfalsenegativesaroundthisregion. varscale=1.3; //Definescaleddimensions. varnewWidth=width*scale; varnewHeight=height*scale; //Caculatetheoffsettoplacenewboundingboxsoscaledfromcenterofcurrentboundingbox. varoffsetX=(newWidth-width)/2; varoffsetY=(newHeight-height)/2; varnewXMin=minX-offsetX; varnewYMin=minY-offsetY; 之后對人物 bounding box 之外的區(qū)域進(jìn)行更新,并且當(dāng)檢測到人物移動時(shí),更新背景區(qū)域。 //Nowloopthroughupdatebackgoundunderstandingwithnewdata //ifnotinsideaboundingbox. for(letx=0;xnewXMin+newWidth)||(ynewYMin+newHeight)){ //Convertxyco-ordstoarrayoffset. letn=y*canvas.width+x; data[n*4]=dataL[n*4]; data[n*4+1]=dataL[n*4+1]; data[n*4+2]=dataL[n*4+2]; data[n*4+3]=255; }elseif(!foundBody){ //Nobodyfoundatall,updateallpixels. letn=y*canvas.width+x; data[n*4]=dataL[n*4]; data[n*4+1]=dataL[n*4+1]; data[n*4+2]=dataL[n*4+2]; data[n*4+3]=255; } } } ctx.putImageData(imageData,0,0); if(DEBUG){ ctx.strokeStyle="#00FF00" ctx.beginPath(); ctx.rect(newXMin,newYMin,newWidth,newHeight); ctx.stroke(); } } 至此為算法的核心部分,用了這個(gè)程序,你也可以像滅霸一樣彈一個(gè)響指(單擊一下鼠標(biāo))讓人憑空消失。 熱門的「視頻隱身術(shù)」 其實(shí),這并非機(jī)器之心報(bào)道的第一個(gè)消除視頻中人像的項(xiàng)目。 2019 年,我們也曾報(bào)道過「video-object-removal」項(xiàng)目。在此項(xiàng)目中,只要畫個(gè)邊界框,模型就能自動追蹤邊界框內(nèi)的物體,并在視頻中隱藏它。 項(xiàng)目地址:https://github.com/zllrunning/video-object-removal

但從項(xiàng)目效果來看,也會有一些瑕疵,例如去掉了行人后,背景內(nèi)的車道線對不齊等。 與 Mayes 的這個(gè)項(xiàng)目類似,video-object-removal 主要借鑒了 SiamMask 與 Deep Video Inpainting,它們都來自 CVPR 2019 的研究。通過 SiamMask 追蹤視頻中的目標(biāo),并將 Mask 傳遞給 Deep Video Inpainting,然后模型就能重建圖像,完成最終的修復(fù)了。 對此類技術(shù)感興趣的讀者可自行運(yùn)行下這兩個(gè)項(xiàng)目,做下對比。

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

    關(guān)注

    2930

    文章

    46201

    瀏覽量

    391821
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    330

    瀏覽量

    61159

原文標(biāo)題:Github 3.4k星,200余行代碼,讓你實(shí)時(shí)從視頻中隱身

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用CY3014USB芯片組制作了臺相機(jī),視頻顯示延遲怎么解決?

    我使用 CY3014USB 芯片組制作了臺相機(jī),視頻從相機(jī)流向計(jì)算機(jī),顯示屏上顯示出精美的圖像。 我注意到攝像機(jī)前發(fā)生的事情和信息在屏幕上更新/流動之間存在延遲。 延遲時(shí)間幾乎持續(xù) 1 秒。 這
    發(fā)表于 05-06 09:11

    在樹莓派上構(gòu)建和部署 Node.js 項(xiàng)目

    探索在RaspberryPi上構(gòu)建和部署Node.js項(xiàng)目的最佳實(shí)踐。通過我們的專業(yè)提示和技巧,克服常見挑戰(zhàn),使您的項(xiàng)目順利運(yùn)行。去年圣誕節(jié),我收到了份極其令人著迷的禮物,它占據(jù)了我
    的頭像 發(fā)表于 03-25 09:44 ?261次閱讀
    在樹莓派上構(gòu)建和部署 Node.<b class='flag-5'>js</b> <b class='flag-5'>項(xiàng)目</b>

    如何將firware安裝到使用MC9S08JS16CWJ的新USBDM中?

    我正在根據(jù)您名為 USBDM_SWD_SER_JS16CWJ_V3_1 的文件制作個(gè) USBDM。 現(xiàn)在,我遇到了
    發(fā)表于 03-24 07:46

    開源項(xiàng)目!Open Echo:個(gè)開源的聲納項(xiàng)目

    與 Arduino 兼容的回聲測深儀用于另一個(gè)水深 GPS 記錄設(shè)備項(xiàng)目??勺x取 Arduino 的回聲測深儀很難買到,所以我想,為什么不自己制作呢?基本工作原理很簡單,但底層的電子學(xué)和物理學(xué)并不總是那么簡單
    發(fā)表于 03-20 13:37

    開源項(xiàng)目!手把手教你制作個(gè)互動式LED墻壁時(shí)鐘!

    在這篇教程中,將教你使用Arduino創(chuàng)建個(gè)互動式LED墻壁時(shí)鐘。這個(gè)項(xiàng)目結(jié)合了創(chuàng)意和技術(shù),設(shè)計(jì)出個(gè)功能性強(qiáng)且視覺效果驚人的時(shí)鐘,它配
    發(fā)表于 02-08 17:47

    Node.js小科普和Node.js安裝常見管理工具

    Node.js個(gè)JavaScript的運(yùn)行環(huán)境,用來執(zhí)行JavaScript代碼。 為什么會出現(xiàn)這么
    的頭像 發(fā)表于 11-23 15:37 ?406次閱讀
    Node.<b class='flag-5'>js</b>小科普和Node.<b class='flag-5'>js</b>安裝常見管理工具

    TPA3123制作了個(gè)音頻功放,無法工作怎么解決?

    我按照TPA3123的用戶指南上的原理圖,制作了個(gè)音頻功放,但是無論左右輸入都接地的時(shí)候,或者有信號輸入,在Lout和Rout都有這樣的波形,無法工作。希望得到大家的幫助。
    發(fā)表于 11-04 06:06

    使用LM3886制作了個(gè)最基礎(chǔ)的反相放大器,出現(xiàn)交越失真如何解決?

    使用LM3886制作了個(gè)最基礎(chǔ)的反相放大器,增益為20,輸入三角波信號,出現(xiàn)交越失真。信號頻率在幾百Hz到十幾kHz變化,現(xiàn)象相同。請問這是什么原因,如果解決?
    發(fā)表于 09-29 07:00

    真格基金宣布捐贈開源AI項(xiàng)目vLLM

    個(gè)通用人工智能項(xiàng)目,Hugging Face 上有超過 40 萬個(gè)模型。每周,有超過 100 萬
    的頭像 發(fā)表于 09-24 16:13 ?771次閱讀

    用opa2228制作了個(gè)同向加法器,可輸出出現(xiàn)了震蕩怎么解決?

    請問下,我用opa2228制作了個(gè)同向加法器,可輸出出現(xiàn)了震蕩(其中正向輸入的兩個(gè)信號分別是峰峰值為1.36V頻率4kHZ的正弦波,和
    發(fā)表于 09-20 06:58

    制作了個(gè)0.6HZ低通濾波器,濾波后的噪聲峰峰值達(dá)到了20mv,為什么?

    制作了個(gè)0.6HZ低通濾波器(用來將濾除交流信號分量中的直流分量)。但是濾波后的噪聲峰峰值達(dá)到了20mv。
    發(fā)表于 09-19 07:35

    推薦個(gè)支持js的嵌入式設(shè)備開發(fā)平臺

    控制gpio,pwm,藍(lán)牙,nfc,二維碼識別,人臉識別,網(wǎng)絡(luò),mqtt,tcp,看門狗,ui等等,支持多線程 也支持多種設(shè)備。 以下是個(gè)代碼示例和效果圖示例 import log from
    發(fā)表于 09-04 14:04

    開源項(xiàng)目!用ESP32做一個(gè)可愛的無用機(jī)器人

    簡介 作者在完成碩士論文答辯后,利用空閑時(shí)間制作了個(gè)直想做的機(jī)器人——可愛無用機(jī)器人。 無用機(jī)器人原理是
    發(fā)表于 09-03 09:34

    開源項(xiàng)目!用ESP32做一個(gè)可愛的無用機(jī)器人

    簡介 作者在完成碩士論文答辯后,利用空閑時(shí)間制作了個(gè)直想做的機(jī)器人——可愛無用機(jī)器人。 無用機(jī)器人原理是
    發(fā)表于 08-30 14:50

    用OPA549T制作了個(gè)改進(jìn)型的Howland恒流源,Howland恒流源帶寬可以有多大?

    最近用OPA549T制作了個(gè)改進(jìn)型的Howland恒流源,電流峰峰值可達(dá)6A。但是恒流帶寬有限(接近2KHz)低頻時(shí)(大概在10Hz以內(nèi))電流大小也會衰減。有什么辦法可以提高恒流帶寬嗎?
    發(fā)表于 08-15 08:32