1. “卷積”的形象理解

        共 4216字,需瀏覽 9分鐘

         ·

        2024-07-27 11:06

        點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

        重磅干貨,第一時間送達(dá)


        在泛函分析中,卷積、旋積或摺積(英語:Convolution)是通過兩個函數(shù)f和g 生成第三個函數(shù)的一種數(shù)學(xué)算子,表征函數(shù)f與g經(jīng)過翻轉(zhuǎn)和平移的重疊部分函數(shù)值乘積對重疊長度的積分。


        卷積是分析數(shù)學(xué)中一種重要的運(yùn)算。簡單定義:設(shè)f(χ),g(χ)是R上的兩個可積函數(shù),作積分:

        可以證明,關(guān)于幾乎所有的實(shí)數(shù)x,上述積分是存在的。并且把卷積記做h(x)=(f*g)(x)


        這樣生硬的公式,長時間不用可能就要忘了。記下來用幾種形象的比喻來理解一下卷積到底在“卷”什么。



        一、第一層理解


        有一個人特別喜歡吃東西,一日三餐吃的特別多,總之1天24小時不斷在吃東西,橫坐標(biāo)表示時間,縱坐標(biāo)表示進(jìn)食量。


        吃進(jìn)去就得消化,因此隨著時間的延長,食物也在不斷地被消化。



        有了輸入和輸出這二者隨時間變化的關(guān)系,接下來看一個具體的問題:下午2點(diǎn),這個人的肚子里還剩多少食物?在這個過程吃和消化在不停的變化,計(jì)算起來應(yīng)該還挺麻煩的。


        想想剛剛的卷積公式,用f函數(shù)表示進(jìn)食,用g函數(shù)表示消化, 如果不考慮消化問題,計(jì)算肚子里還剩多少食物,其實(shí)就是對f(t)這個函數(shù)求積分進(jìn)行了,計(jì)算曲線下的面積。


        顯然還要再考慮消化,加入考慮12點(diǎn)的時候吃了一碗米飯,到14點(diǎn)還能剩多少呢?




        由于g函數(shù)表示食物還剩下的比例,因此用12點(diǎn)吃下去的食物,乘以2小時候消化完剩余食物的比例,就能得到還在肚子里的食物量。這還只是一個點(diǎn)的情況,再增加一個點(diǎn),上午10點(diǎn)吃了一個面包,到下午2點(diǎn)還能剩多少?




        一次類推,如果能把每個時間點(diǎn)的進(jìn)食量都和消化函數(shù)g乘一下,就能得到每個點(diǎn)進(jìn)食后再下午14點(diǎn)肚子里還剩多少食物。


        有個這個數(shù)據(jù),再把所有的點(diǎn)的剩余量再加一下,就能得到最終再14點(diǎn)肚子里剩余的食物總量。



        如果用數(shù)學(xué)公式表達(dá):

        積分后的結(jié)果表示t時刻,肚子里還剩下多少食物。這里需要注意的是兩個函數(shù)中的自變量相加只剩下時間t,這其實(shí)也算是卷積的一個標(biāo)志。那么這樣一堆變量反映到圖像中表示什么含義呢?



        總結(jié)一下:一個系統(tǒng),輸入不穩(wěn)定的,輸出是不穩(wěn)定的,這樣就能夠用卷積求存量。


        此外,還有一個問題,卷積?哪里能夠體現(xiàn)處“卷”?



        其實(shí)呢卷積的本質(zhì)就是翻轉(zhuǎn),相乘,相加的這么一個過程。



        二、第二層理解


        對于圖像的卷積操作來說,只要能夠找到函數(shù)f和g。從圖像的卷積操作來說,就是去尋找一個卷積核去從圖像上找到相關(guān)的響應(yīng),以下圖為例,拿一個3x3大小的窗口在圖像上從左到右,從上到下滑動,每次都是逐點(diǎn)相乘,最終相加的過程。



        這個可以把圖像認(rèn)為是函數(shù)f,卷積核是函數(shù)g,因?yàn)閳D像中卷積核是穩(wěn)定的,就是那9個數(shù),而卷積核每次在圖像上滑動過程中,圖像對應(yīng)的窗口時變動的,是不穩(wěn)定的。


        由于第一層理解中的具體問題還是個一維問題,而對于圖像的卷積操作是一個二維問題,而且也不再是求系統(tǒng)存量這么回事了。


        那么換個角度理解, 在t時刻發(fā)生了颶風(fēng),而產(chǎn)生的原因就是在此之前時刻,有蝴蝶煽動了翅膀,在x時刻蝴蝶煽動翅膀?qū)時刻發(fā)生颶風(fēng)產(chǎn)生影響。


        但是這個影響是會隨著時間的變化而變化的,也就是函數(shù)g,它的影響力是隨著時間不斷衰減的。



        其實(shí),這樣去看卷積的話也就是說看x時刻對于t時刻產(chǎn)生的影響,然后把t之間時刻都計(jì)算一遍再相加,就能計(jì)算所有t時刻之前對于當(dāng)前t時刻的影響有多大了。


        也就是說在某一時刻發(fā)生了一件事,但是它會受到之前發(fā)生的很多事的影響。比如x時刻蝴蝶煽動了翅膀?qū)τ趖時刻的影響還需要看從x到t經(jīng)歷的時間。


        再回頭看圖像的卷積操作,是不是就可以理解為很多像素點(diǎn)對某一個像素點(diǎn)是如何產(chǎn)生影響的?也就說卷積核其實(shí)就是如何對當(dāng)前像素點(diǎn)產(chǎn)生影響的,卷積核的大小其實(shí)就是在控制影響范圍的大小,有可能這也是空洞卷積想法的來源。


        有關(guān)圖像的二維卷積的計(jì)算公式:



        可以發(fā)現(xiàn),這兩個圖并不是一一對應(yīng)關(guān)系,那么對圖像或者卷積核做一個翻轉(zhuǎn)操作,這是不是又回來了,翻轉(zhuǎn),相乘,相加。



        也就是說卷積核旋轉(zhuǎn)180度才是真正的卷積,但是對于圖像卷積操作來說就是省去了翻轉(zhuǎn)這一操作,但這并不影響圖像操作。



        三、第三層理解



        如果想要理解上面這兩張圖是否為同一個東西的時候,對于人眼來說很容易就能認(rèn)出來,但是對于計(jì)算機(jī)比較的話,只有0和1的理解確實(shí)還挺難的,但是對于一些局部特征來說,很是很像的。



        所以,用計(jì)算機(jī)進(jìn)行圖像識別的關(guān)鍵在于挑出圖像的局部特征出來,然后根據(jù)局部特征進(jìn)行對比來識別。那么如何進(jìn)行局部特征提取呢?


        所以就有一大批人來設(shè)計(jì)各種各樣的濾波算子,從而能夠得到各種特征提取方法,比如各種邊緣檢測,角點(diǎn)檢測等等。



        其實(shí)對于濾波算子來說,其實(shí)就是對周圍像素點(diǎn)的試探,卷積核就是試探的模板,不care的點(diǎn)就設(shè)置為0。所以這么理解卷積核就是對周圍像素的點(diǎn)的主動試探和選擇,通過它把周圍有用的特征保留下來。


        回到X圖像的識別問題上來:Features match pieces of the iamge



        通過這些特征匹配的模板去圖像上找到相應(yīng)的特征響應(yīng),從而達(dá)到圖像分類和識別的問題。



        但是,人為的設(shè)計(jì)這些卷積核是很難做到遍歷且有效的,那么就有了現(xiàn)在流行的深度學(xué)習(xí)完成端到端的訓(xùn)練,從而得到這些卷積核。


        這樣雖然可以省去人為的特征設(shè)計(jì),但是也會帶來很多問題,比如自動尋找得到的卷積核無法去理解為什么要提取這樣的特征響應(yīng),比如在優(yōu)化過程中如何保證最優(yōu)解等等,都是深度學(xué)習(xí)需要解決的問題。


            
        下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
        在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
        小白學(xué)視覺公眾號后臺回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

        下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
        小白學(xué)視覺公眾號后臺回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個基于OpenCV實(shí)現(xiàn)20個實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 30
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 免费在线观看污视频网站 | 成人免费毛片 播放 | 国产操逼无码视频 | 好紧好硬好硬爽小说 | 91视频导航 |