文:https://www.smashingmagazine.com/2019/07/margins-in-css/
譯者:前端小智
為了保證的可讀性,本文采用意譯而非直譯。
為了回饋?zhàn)x者,《大遷世界》不定期舉行(每個(gè)月一到三次),現(xiàn)金抽獎(jiǎng)活動(dòng),保底200,外加用戶贊賞,希望你能成為大遷世界的小錦鯉,快來試試吧
當(dāng)我們學(xué)習(xí)CSS時(shí),我們大多數(shù)人學(xué)到的第一件事是CSS中盒子的各個(gè)部分的細(xì)節(jié),這部分通過叫做 CSS盒、模型。“盒模型”中的元素之一是margin,即盒子周圍的透明區(qū)域,它會(huì)將其他元素從盒子內(nèi)容中推開。
CSS1中描述了 margin-top、margin-right、margin-bottom和margin-left屬性,以及一次設(shè)置所有四個(gè)屬性的簡寫 margin。
margin看起來是一個(gè)相當(dāng)簡單的事情,但是,在本文中,咱們將看一些在使用margin一些讓人迷惑有有趣的事情。 特別是,margin之間如何相互作用,以及 margin 重疊效果。
想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你!
CSS 盒模型
CSS 盒模型指的是一個(gè)盒子的各個(gè)部分——content、padding、border和margin,它們各自之前是如何布局及相互作用的, 如下所示:
盒子的的四個(gè)margin屬性和maring縮寫都在CSS1中定義。
CSS2.1規(guī)范有一個(gè)演示盒模型的插圖,還定義了用來描述各種盒子的術(shù)語,其中包括 content box、填padding box、border box和 margin box。
現(xiàn)在有一個(gè) Level 3 Box Model specification 的草案。這個(gè)規(guī)范引用了CSS2作為盒模型和margin的定義,因此我們將在本文的大部分內(nèi)容中使用CSS2定義。
margin 重疊
CSS1 規(guī)范定義了margin,也定義了垂直 margin 重疊。如果考慮到在早期,CSS被用作文檔格式語言,那么 margin 重疊是有意義的。 margin 重疊意味著,當(dāng)一個(gè)有底部margin的標(biāo)題后面跟著一個(gè)有頂部 margin 的段落時(shí),它們之間就不會(huì)出現(xiàn)較大的空白。
當(dāng)兩個(gè) margin 發(fā)生重疊時(shí),它們將組合在一起,兩個(gè)元素之間的空間取較大的一個(gè)。 較小的 margin 在較大的里面。
在以下情況下,margin 會(huì)重疊:
依次來看看這些場景。
相鄰的兄弟姐妹
對 margin 重疊的最初描述是演示相鄰兄弟姐妹之間的 margin 是如何重疊的。除了下面提到的情況之外,如果有兩個(gè)元素在正常流中依次顯示,那么第一個(gè)元素的底部 margin 將與下面元素的頂部 margin 一起重疊。
在下面示例中,有三個(gè)div元素。第一個(gè) div 的頂部和底部的margin都是50px。第二個(gè) div 的頂部和底部 margin 都是20px。第三個(gè) div 的頂部和底部 margin 都是3em。前兩個(gè)元素之間的 margin 是50px,因?yàn)檩^小的頂部 margin 與較大的底部 margin 相結(jié)合。第二個(gè)元素與第三個(gè)元素之間的 margin 是 3em,因?yàn)?em大于第二個(gè)元素底部margin 20px。
html
<div class="wrapper"> <div class="box example1"> margin-top: 50px; margin-bottom: 50px; </div> <div class="box example2"> margin-top: 20px; margin-bottom: 20px; </div> <div class="box example3"> margin-top: 3em; margin-bottom: 3em; </div> </div>
css
.wrapper { border: 5px dotted black; } .example1 { margin: 50px 0 50px 0; } .example2 { margin: 20px 0 20px 0; } .example3 { margin: 3em 0 3em 0; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; } .box { background-color: rgb(55,55,110); color: white; padding: 20px; border-radius: .5em; }
運(yùn)行效果:
完全空盒子
如果一個(gè)盒子是空的,那么它的頂部和底部 margin 可能會(huì)相互重疊。在下面的示例中,class為empty的元素的頂部和底部 margin 各為50px,但是,第一項(xiàng)和第三項(xiàng)之間的 margin不是100px,而是50px。這是由于兩個(gè) margin 重疊造成的。如果向空盒子中放入內(nèi)容就會(huì)阻止 margin 合并。
html
div class="wrapper"> <div class="box"> A box </div> <div class="box empty"></div> <div class="box"> Another box </div> </div>
css
.wrapper { border: 5px dotted black; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; } .box { background-color: rgb(55,55,110); color: white; border-radius: .5em; } .empty { margin: 50px 0 50px 0; }
運(yùn)行效果:
父元素和第一個(gè)或最后一個(gè)子元素
margin 重疊讓人猝不及防,因?yàn)樗袝r(shí)候不是很直觀。在下面的示例中,有一個(gè)類名為 wrapper 的div,給這個(gè)div一個(gè)紅色的outline,這樣就可以看到它在哪里了。
這個(gè)div里面的三個(gè)子元素的 margin 都是50px。但是你會(huì)發(fā)現(xiàn)實(shí)際的效果是第一項(xiàng)和最后一項(xiàng)與父元素的的margin齊平,好像子元素和父元素之間沒有50px的margin一樣。
html
<div class="wrapper"> <div class="box"> Item 1 </div> <div class="box"> Item 2 </div> <div class="box"> Item 3 </div> </div>
css
.wrapper { outline: 1px solid red; } .box { margin: 50px; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; } .box { background-color: rgb(55,55,110); color: white; padding: 20px; border-radius: .5em; }
運(yùn)行效果:
這是因?yàn)樽庸?jié)點(diǎn)上的margin會(huì)隨著父節(jié)點(diǎn)上的任何一邊的margin相互重疊,從而最終位于父節(jié)點(diǎn)的外部。如果使用DevTools檢查第一個(gè)子元素,就可以看到這一點(diǎn),顯示的黃色區(qū)域就是是 margin。
僅塊元素 margin 重疊
在CSS2中,只指定垂直方向的 margin 重疊,即元素的頂部和底部 margin。因此,上面的左右邊距不會(huì)重疊。
值得注意的,margin 只在塊的方向上重疊,比如段落之間。
阻止 margin 重疊
如果一個(gè)元素是絕對的定位,或者是浮動(dòng)的,那么它的margin永遠(yuǎn)不會(huì)重疊。然而,假設(shè)你遇到了上面示例中的幾種情況,那么如何才能阻止 margin 重疊呢?
例如,一個(gè)完全空的盒子,如果它有border或padding,它的上下 margin就不會(huì)重疊。在下面的例子中,給這個(gè)空盒子添加了1px的padding。現(xiàn)在這個(gè)空盒子的的上方和下方都有一個(gè)50px的 margin。
html
<div class="wrapper"> <div class="box"> A box </div> <div class="box empty"></div> <div class="box"> Another box </div> </div>
css
.wrapper { border: 5px dotted black; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; } .box { background-color: rgb(55,55,110); color: white; border-radius: .5em; } .empty { margin: 50px 0 50px 0; padding: 1px; }
運(yùn)行效果:
這背后是有邏輯,如果盒子是完全空的,沒有border或padding,它基本上是不可見的。 它可能是CMS中標(biāo)記為空的段落元素。 如果你的CMS添加了多余的段落元素,你可能不希望它們在其他段落之間造成較大的空白,這時(shí) margin 重疊就有一定的意義。
對于父元素和第一個(gè)或最后一個(gè)子元素 margin 重疊,如果我們向父級添加border,則子級上的margin會(huì)保留在內(nèi)部。
... .wrapper { border: 5px dotted black; } ...
同樣,這種行為也有一定的邏輯。如果出于語義目的而對元素進(jìn)行包裝,但這些元素不顯示在屏幕上,那么你可能不希望它們在顯示中引入大的 margin。當(dāng)web主要是文本時(shí),這很有意義。當(dāng)我們使用元素來布局設(shè)計(jì)時(shí),它的重疊行為就沒有多大的意義了。
創(chuàng)建格式化上下文(BFC)
BFC(Block Formatting Context)格式化上下文,是Web頁面中盒模型布局的CSS渲染模式,指一個(gè)獨(dú)立的渲染區(qū)域或者說是一個(gè)隔離的獨(dú)立容器。
BFC 可以阻止邊距的重疊。 如果我們再看父元素和第一個(gè)或最后一個(gè)子元素的示例,可以在 wrapper 元素加上 display: flow-root就會(huì)創(chuàng)建一個(gè)新的BFC,從而阻止 margin 合并
... .wrapper { outline: 1px solid red; display: flow-root; } ...
display: flow-root 是CSS3新出來的一個(gè)屬性,用來創(chuàng)建一個(gè)無副作用的 BFC。將overflow屬性的值設(shè)為auto也會(huì)產(chǎn)生同樣的效果,因?yàn)檫@也創(chuàng)建了一個(gè)新的BFC,盡管它也可能創(chuàng)建一些在某些場景中不需要的滾動(dòng)條。
flex 和 grid 容器
flex 和 grid 容器為其子元素建立flex和grid格式化上下文,因此它們也能阻止 margin 的重疊。
還是以上面的例子為例,將 wrapper 改用 flex 布局:
... .wrapper { outline: 1px solid red; display: flex; flex-direction: column; } ...
網(wǎng)站 margin 策略
由于margin 會(huì)重疊,最好能找到一種一致的方法來處理網(wǎng)站的 margin。最簡單的方法是只在元素的頂部或底部定義 margin。這樣,就很少會(huì)遇到 margin 重疊的問題,因?yàn)橛衜argin的邊總是與沒有margin的邊相鄰。
這個(gè)解決方案并不能解決你可能遇到的問題,因?yàn)樽釉氐膍argin會(huì)與父元素相互重疊。這個(gè)特定的問題往往不那么常見,但知道它為什么會(huì)發(fā)生可以幫助你想出一個(gè)解決方案。
對此,一個(gè)理想的解決方案是給元素設(shè)置 display: flow-root,但有的瀏覽器并不支持,可以使用overflow創(chuàng)建BFC、或?qū)⒏冈卦O(shè)置成flex容器,當(dāng)然還可以設(shè)置padding來解決。
百分比 margin
當(dāng)你在CSS中使用百分比的時(shí)候,它必須是某個(gè)元素的百分比。使用百分比設(shè)置的 margin(或 padding)始終是父元素內(nèi)聯(lián)大小(水平寫入模式下的寬度)的百分比。這意味著在使用百分比時(shí),元素周圍的padding大小都是相同的。
在下面的示例中,有一個(gè)200px 寬的 d當(dāng),里面是一個(gè)類名為 box 的div,它的 margin值為10%,也就是 20px (200*10%)。
html
<div class="wrapper"> <div class="box"> I have a margin of 10%. </div> </div>
css
* { box-sizing: border-box; } .wrapper { border: 5px dotted black; width: 200px; } .box { background-color: rgb(55,55,110); color: white; padding: 20px; border-radius: .5em; margin: 10%; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; }
我們在本文中一直在討論垂直 margin ,然而,現(xiàn)代CSS傾向于以相對于流的方式而不是物理方式來考慮事情。因此,當(dāng)我們討論垂直邊距時(shí),我們實(shí)際上是在討論塊維度的邊距。如果我們在水平寫作模式下,這些 margin 將是頂部和底部,但在垂直寫作模式下,這些 margin 將是右側(cè)和左側(cè)。
一旦使用邏輯的、流相關(guān)的方向,就更容易討論塊的開始和結(jié)束,而不是塊的頂部和底部。為了簡化這一過程,CSS引入了邏輯屬性和值規(guī)范。這將流的相關(guān)屬性映射到物理屬性上。
還有兩個(gè)新的快捷鍵,可以同時(shí)設(shè)置兩個(gè)塊或者兩個(gè)內(nèi)嵌塊。
在下面示例中,使用了這些流相關(guān)關(guān)鍵字,然后更改了盒子的編寫模式,你可以看到 margin 是如何遵循文本方向的:
html
<div class="wrapper horizontal-tb"> <div class="box"> A box with a horizontal-tb writing mode. </div> </div> <div class="wrapper vertical-rl"> <div class="box"> A box with a vertical-rl writing mode. </div> </div>
css
* { box-sizing: border-box; } .wrapper { border: 5px dotted black; inline-size: 200px; } .horizontal-tb { writing-mode: horizontal-tb; margin-bottom: 1em; } .vertical-rl { writing-mode: vertical-rl; } .box { background-color: rgb(55,55,110); color: white; padding: 20px; border-radius: .5em; margin-block-start: 30px; margin-block-end: 10px; margin-inline-start: 2em; margin-inline-end: 5%; } body { font: 1.4em/1.3 "Gill Sans", "Gill Sans MT", Calibri, sans-serif; margin: 2em 3em; }
需要了解更多,可以閱讀有關(guān)MDN上的邏輯屬性和值的更多信息。
代碼部署后可能存在的BUG沒法實(shí)時(shí)知道,事后為了解決這些BUG,花了大量的時(shí)間進(jìn)行l(wèi)og 調(diào)試,這邊順便給大家推薦一個(gè)好用的BUG監(jiān)控工具 Fundebug。
交流
干貨系列文章匯總?cè)缦拢X得不錯(cuò)點(diǎn)個(gè)Star,歡迎 加群 互相學(xué)習(xí)。
https://github.com/qq449245884/xiaozhi
我是小智,公眾號「大遷世界」作者,對前端技術(shù)保持學(xué)習(xí)愛好者。我會(huì)經(jīng)常分享自己所學(xué)所看的干貨,在進(jìn)階的路上,共勉!
關(guān)注公眾號,后臺回復(fù)福利,即可看到福利,你懂的。
山河依舊,網(wǎng)站、App 從此再無灰色、黑色情況!!!
夢中清醒,哦,又是一個(gè)陽光明媚的早上。
致敬英雄,市面上 App、網(wǎng)站等都已置灰。
緬懷的同時(shí),突然冒出一個(gè)問題,怎么做到的?難不成一個(gè)個(gè)調(diào)整圖片,調(diào)整對應(yīng)的控件色值?
顯然不應(yīng)該。想來想去還不如直接調(diào)試一番,找找感覺。
Chrome 打開 B 站,直接打開開發(fā)者模式,html 根節(jié)點(diǎn)有個(gè) class=“gray”,好奇點(diǎn)點(diǎn)看看有什么反映:
一個(gè) class 搞定嗎?抱著懷疑的心態(tài)找了掘金:
共同點(diǎn),都是使用了 filter:grayscale。
filter CSS屬性將模糊或顏色偏移等圖形效果應(yīng)用于元素。濾鏡通常用于調(diào)整圖像,背景和邊框的渲染。
官方給出一個(gè)小例子:
找到對應(yīng)將圖像轉(zhuǎn)為灰色圖像屬性:
俗話說得好,好記性不如爛筆頭,自己親自動(dòng)手才是最實(shí)際的。
效果很明顯,如果想讓整個(gè)頁面圖片灰度發(fā)生變化,只需要按照前輩們的方案,直接在 html 設(shè)置 class 即可,方案采用掘金:
附上對應(yīng) CSS 樣式:
.mourning {
-webkit-filter: grayscale(100%); /* 兼容 Chrome、Safari 瀏覽器 */
-moz-filter: grayscale(100%); /* 兼容 FireFox 火狐瀏覽器 */
-ms-filter: grayscale(100%); /* 兼容 IE 瀏覽器 */
-o-filter: grayscale(100%); /* 兼容 Opera 瀏覽器 */
filter: grayscale(100%);
filter: #808080;
}
哪有什么歲月靜好,不過是有人替你負(fù)重前行。
心懷感恩。
最后,再次希望所有的網(wǎng)站再也不要有變成灰色、黑色的情況!!!
永遠(yuǎn)也不要有了!!!
/ Google研究院軟件工程師,Tingbo Hou & Tyler Mullen
譯者 / Alpha
技術(shù)審校:斗魚前端專家,王興偉
原文 /https://ai.googleblog.com/2020/10/background-features-in-google-meet.html
在人們的工作和生活中,視頻會(huì)議變得越來越重要。我們可以通過增強(qiáng)隱私保護(hù),或者添加有趣的視覺效果來改善視頻體驗(yàn),同時(shí)幫助人們將注意力集中在會(huì)議內(nèi)容上。我們最近宣布的在Google Meet中模糊和替換背景的方法,就是為了實(shí)現(xiàn)這一目標(biāo)而邁出的一小步。
我們利用機(jī)器學(xué)習(xí)(ML)來更好地突出參與者,從而忽略他們周圍的背景環(huán)境。盡管其他的解決方案需要安裝額外的軟件,但Meet的功能是由尖端的Web ML技術(shù)提供支持的,這些技術(shù)是用MediaPipe構(gòu)建的,可以直接在你的瀏覽器中工作——不需要額外的步驟。
開發(fā)這些功能,有一個(gè)關(guān)鍵目標(biāo),即它可以給幾乎所有現(xiàn)代設(shè)備提供實(shí)時(shí)的瀏覽器內(nèi)性能,通過XNNPACK和TFLite,我們將高效的設(shè)備上ML模型、基于WebGL的效果渲染,還有基于Web的ML推理結(jié)合起來,進(jìn)而實(shí)現(xiàn)了這一目標(biāo)。
背景模糊和背景替換,由網(wǎng)頁端的 MediaPipe 提供支持。
網(wǎng)絡(luò)Web ML方案概述
Meet中的新功能是與MediaPipe一起開發(fā)的,MediaPipe是谷歌的開源框架,用于為直播和流媒體提供跨平臺的,可定制的ML解決方案,它還支持設(shè)備上實(shí)時(shí)性的手、虹膜和身體姿勢追蹤等ML解決方案。
任何設(shè)備上解決方案的核心需求,都是實(shí)現(xiàn)高性能。為了實(shí)現(xiàn)這一點(diǎn),MediaPipe的Web工作流利用了WebAssembly,這是一種專為網(wǎng)絡(luò)瀏覽器設(shè)計(jì)的底層二進(jìn)制代碼格式,可以提高計(jì)算繁重任務(wù)的速度。在運(yùn)行時(shí),瀏覽器將WebAssembly指令轉(zhuǎn)換為本機(jī)代碼,執(zhí)行速度比傳統(tǒng)JavaScript代碼快很多。此外,Chrome84最近引入了對WebAssembly SIMD的支持,每條指令可以處理多個(gè)數(shù)據(jù)點(diǎn),性能提升了2倍以上。
首先,我們的解決方案通過將用戶,和他們的背景進(jìn)行分割(稍后將詳細(xì)介紹我們的分割模型),來處理每個(gè)視頻幀,使用ML推理來計(jì)算出一個(gè)低分辨率的蒙版。或者,我們還可以進(jìn)一步細(xì)化蒙版,以使其與圖像邊界對齊。然后通過WebGL2使用蒙版來渲染視頻,實(shí)現(xiàn)背景的模糊或替換。
WebML Pipeline:所有計(jì)算繁重的操作都是用C++/OpenGL實(shí)現(xiàn)的,并通過WebAssembly在瀏覽器中運(yùn)行。
在當(dāng)前版本中,模型推理在客戶端的CPU上執(zhí)行,以實(shí)現(xiàn)低功耗和最大的設(shè)備覆蓋范圍。為了達(dá)到實(shí)時(shí)性能,我們設(shè)計(jì)了高效的ML模型,通過XNNPACK庫加速推理,XNNPACK庫是第一個(gè)專門為新的WebAssembly SIMD規(guī)范設(shè)計(jì)的推理引擎。在XNNPACK和SIMD的加速下,該分割模型可以在Web上以實(shí)時(shí)速度運(yùn)行。
在MediaPipe靈活配置的支持下,背景模糊/替換解決方案可根據(jù)設(shè)備能力,調(diào)整其處理過程。在高端設(shè)備上,它運(yùn)行完整的工作流,以提供最佳的視覺質(zhì)量,而在低端設(shè)備上,通過使用輕量級的ML模型進(jìn)行計(jì)算,并且繞過蒙版細(xì)化,它仍然可以保持較高的性能。
分割模型細(xì)分
設(shè)備上的機(jī)器學(xué)習(xí)模型必須是超輕量級的,以實(shí)現(xiàn)快速推理、低功耗和較小的下載大小。對于在瀏覽器中運(yùn)行的模型,輸入分辨率會(huì)極大地影響處理的每一幀所需的浮點(diǎn)運(yùn)算(FLOP)的數(shù)量,由此也必須很小。我們將圖像下采樣,得到較小的尺寸,然后再將其提供給模型。從低分辨率圖像中,盡可能精確地恢復(fù)分割蒙版,這增加了模型設(shè)計(jì)的挑戰(zhàn)。
整個(gè)分割網(wǎng)絡(luò)具有關(guān)于編碼和解碼的對稱結(jié)構(gòu),而解碼器塊(淺綠色),也與編碼塊(淺藍(lán)色)共享對稱層結(jié)構(gòu)。具體地說,在編碼器和解碼器模塊中,都采用了應(yīng)用有全局池化層技術(shù)的通道注意力機(jī)制,這有利于高效的CPU推理。
采用MobileNetV3編碼器(淺藍(lán)色)和對稱解碼器(淺綠色)的模型架構(gòu)。
我們修改MobileNetV3-Small為編碼器,經(jīng)過網(wǎng)絡(luò)結(jié)構(gòu)搜索的優(yōu)化,以最低的資源需求,獲得最佳的性能。為了減少50%的模型尺寸,我們使用Float16量化技術(shù)將模型導(dǎo)出到TFLite,僅權(quán)重精度略有下降,但對質(zhì)量沒有明顯的影響。得到的模型有193K參數(shù),大小只有400KB。
效果渲染
分割完成后,我們使用OpenGL著色器進(jìn)行視頻處理和效果渲染,其中的挑戰(zhàn)就是在不引入偽影的情況下進(jìn)行高效渲染。在細(xì)化階段,我們采用聯(lián)合雙邊濾波器對低分辨率蒙版進(jìn)行平滑處理
渲染效果時(shí)會(huì)減少瑕疵減少的渲染效果。左:聯(lián)合雙邊過濾器平滑分段分割蒙版。中:可分離濾鏡移除背景模糊中的光暈瑕疵。右:替換背景中的燈光包裹包裝(light wrapping)。
模糊著色器通過與分割蒙版值成比例的方式,調(diào)整每個(gè)像素的模糊強(qiáng)度,來模擬波克(bokeh)效果,類似于光學(xué)中的混淆圓(CoC)。像素按其CoC半徑加權(quán),因此前景像素不會(huì)滲入背景。我們?yōu)榧訖?quán)模糊實(shí)現(xiàn)了可分離的過濾器,而不是流行的高斯金字塔,因?yàn)樗コ巳酥車墓鈺瀭斡啊榱颂岣咝剩:缘头直媛蕡?zhí)行,并以原始分辨率與輸入幀混合
背景模糊示例
對于背景替換,我們采用了一種稱為燈光包裹(Light wrapping)的合成技術(shù),用于混合分割的人物和定制的背景圖像。光線包裹允許背景光溢出到前景元素上,從而使合成更具沉浸感,這有助于柔化分割邊緣。當(dāng)前景和替換的背景之間,存在較大的對比度時(shí),它還有助于最大限度地減少光暈偽影
背景替換示例
性能
為了優(yōu)化不同設(shè)備的體驗(yàn),我們提供多種輸入尺寸(即當(dāng)前版本中的256x144和160x96)的模型變體,根據(jù)可用的硬件資源自動(dòng)選擇最佳模型。
我們在兩款常見設(shè)備上評估了模型推理和端到端傳遞的速度:搭載2.2 GHz 6核英特爾酷睿i7的MacBook Pro 2018和搭載英特爾賽揚(yáng)N3060的宏碁Chromebook 11。對于720p的輸入,MacBook Pro可以以120 FPS的速度,運(yùn)行較高質(zhì)量的模型,以70 FPS的速度運(yùn)行端到端的傳遞途徑;而Chromebook則以62 FPS的速度運(yùn)行推理,使用較低質(zhì)量的模型,端到端運(yùn)行在33 FPS。
高端(MacBook Pro)和低端(Chromebook)筆記本電腦上的模型型號推斷速度和端到端管線傳遞。
為了定量評估模型的精度,我們采用了目前流行的交集-并集(IOU)和邊界F-度量。這兩種型號都有不俗的表現(xiàn),而且還是在這樣一個(gè)輕量級網(wǎng)絡(luò)的情況下
模型準(zhǔn)確性的評估,通過 IOU 借條和邊界 F-分?jǐn)?shù)來衡量。
我們還為我們的分割模型發(fā)布了隨附的模型卡,其中詳細(xì)介紹了我們的公平性評估。我們的評估數(shù)據(jù)包含來自全球17個(gè)地理分區(qū)的圖像,并附有膚色和性別的注釋。我們的分析表明,該模型在不同地區(qū)、膚色和性別上的表現(xiàn)是一致的,只有很小的IOU指標(biāo)偏差。
結(jié)論
我們推出了一個(gè)全新的瀏覽器端的機(jī)器學(xué)習(xí)解決方案,用于模糊和替換你在Google Meet中的背景。使用這個(gè)方案,機(jī)器學(xué)習(xí)模型和OpenGL著色器就可以在Web上高效運(yùn)行。所開發(fā)的功能即使在低功耗設(shè)備上也能以低功耗實(shí)現(xiàn)實(shí)時(shí)性能
致謝:特別感謝Meet團(tuán)隊(duì)的成員和參與此項(xiàng)目的其他人員,特別是Sebastian Jansson,Rikard Lundmark,Stephan Reiter,F(xiàn)abian Bergmark,Ben Wagner,Stefan Holmer,Dan Gunnarson,Stéphane Hulaud以及所有與我們一起從事技術(shù)工作的團(tuán)隊(duì)成員:Siargey Pisarchyk,Karthik Raveendran,Chris McClanahan, Marat Dukhan,F(xiàn)rank Barchard,Ming Guang Yong,Chuo-Ling Chang,Michael Hays,Camillo Lugaresi,Gregory Karpiak,Siarhei Kazakou,Matsvei Zhdanovich,Matthias Grundmann。
*請認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。