武迪 張思 袁中果
【摘 要】計(jì)算思維的問題解決,第一步是把握問題的核心要素,通過抽象、建模,形成問題的完整模型;第二步是求解問題,為問題求解提供約束,設(shè)計(jì)算法實(shí)現(xiàn)計(jì)算機(jī)的自動化求解;第三步是遷移應(yīng)用的思維方式,引入,他山之石可以攻玉;遷出,用于其他問題達(dá)到舉一反三、一通百通。“智能去霧問題”一課圍繞信息時代的核心素養(yǎng)之一——計(jì)算思維展開,通過一個前沿、有趣、創(chuàng)新、交叉的研究問題培養(yǎng)學(xué)生的問題解決能力及思維方式,將國際頂級前沿研究的原始創(chuàng)新之美引入中學(xué)課堂,讓學(xué)生體會、體驗(yàn)、實(shí)踐,經(jīng)歷發(fā)現(xiàn)創(chuàng)新的問題并解決的思維過程。
【關(guān)鍵詞】計(jì)算思維;人工智能;建模;智能除霧;欠定問題;跨學(xué)科
【中圖分類號】G434 【文獻(xiàn)標(biāo)識碼】A
【論文編號】1671-7384(2021)02、03-102-04
計(jì)算思維教育是信息時代發(fā)展的需要,融合創(chuàng)新是信息時代發(fā)展的重要途徑。教師可以引導(dǎo)學(xué)生用計(jì)算思維促進(jìn)信息科技創(chuàng)新。
分析問題:建立成像模型
“智能去霧問題”一課引入環(huán)節(jié),教師首先請學(xué)生思考:霧到底引起了什么樣的問題?霧的出現(xiàn)可能會導(dǎo)致交通、安防監(jiān)控、甚至國防戰(zhàn)場上的難題,即主要會產(chǎn)生能見度低的問題。再請學(xué)生思考:如何解決能見度低的問題?
以開車舉例,學(xué)生可能會提到借助一些外部的硬件,如超聲、雷達(dá)等,通過增加其他維度的輸入信息,幫助解決能見度低導(dǎo)致看不清的問題。再請大家進(jìn)一步思考:如果沒有任何額外的輸入信息,在只有原始圖像的情況下能否解決問題。至此,明確智能去霧的研究問題是輸入一幅僅有的原始有霧圖像,我們希望輸出對應(yīng)的去霧后的清晰圖像。
教學(xué)活動:請學(xué)生在具體問題解決之前建立STEAM多學(xué)科領(lǐng)域分解模型,在后續(xù)問題求解的過程中,讓學(xué)生分組關(guān)注不同的領(lǐng)域。在跟隨教師探究問題求解的過程中,將學(xué)生按行分組,聚焦每個領(lǐng)域在問題解決中的重要作用,在課程進(jìn)行的過程中,重點(diǎn)關(guān)注去霧問題如何與這個領(lǐng)域相結(jié)合。在問題求解完成反思回顧階段,將學(xué)生按列分組,聚焦跨學(xué)科融合創(chuàng)新,如用到了這個領(lǐng)域的什么知識,還是未來可以用于這個領(lǐng)域的發(fā)展等。重新分組,每個組都有之前STEAM的成員,每個新的組都可以從各個學(xué)科領(lǐng)域交流、探討這個問題是如何解決的。在這里,學(xué)生們的思維碰撞、交叉創(chuàng)新可能會有一些有趣的想法產(chǎn)生。
1.圖像表示的建模
教師引導(dǎo)學(xué)生思考去霧問題的研究對象。去霧問題主要研究對象就是圖像,因此,首先要對數(shù)字圖像進(jìn)行建模。針對這一問題,我們從簡單到復(fù)雜,分步驟分階段逐步建立完整的圖像表示模型——單通道圖像:二維信息;三通道彩色圖像:三維信息;帶有透明度通道的彩色圖像:四維圖像。
單通道的灰度圖,在增加了顏色信息后變成了三通道的彩色圖,而在真實(shí)世界場景中可能有類似半透明的效果。教師請學(xué)生思考在計(jì)算機(jī)中是如何實(shí)現(xiàn)圖像建模的,并通過課堂實(shí)踐,用Python程序?qū)⒉噬珗D像進(jìn)行各通道分解。
對于帶有透明度通道的圖像模型,如果某個像素位置的透明度通道是白色,表示該像素不透明;反之,如果透明度通道為黑色,表示該像素完全透明;如果是灰色,表示介于中間狀態(tài)的某種半透明效果。教師可以引導(dǎo)學(xué)生建立已有知識之間的映射,透明度通道就是學(xué)生在Photoshop軟件中用過的“圖層蒙版”。
教學(xué)活動:探究帶有透明度通道的彩色圖像模型。學(xué)生運(yùn)行程序,觀察程序運(yùn)行結(jié)果,思考在三通道彩色圖的基礎(chǔ)上增加了什么信息?多出的這個通道是什么?
2.有霧場景的成像模型
學(xué)生完成圖像建模之后,接下來分析第二個子問題:有霧的圖片是如何形成的,即如何對有霧情形下的成像過程進(jìn)行建模。光從物體表面出發(fā),在到達(dá)成像平面的過程中,并非是真空的理想情況,往往要在介質(zhì)中傳播。同一個場景的成像結(jié)果,在晴天、陰霾、濃霧、雨天等不同天氣條件下明顯不同。當(dāng)有霾、有霧時,空氣中還會有比空氣分子更大的微粒,如灰塵、水滴和來自污染物的顆粒。這些微粒的尺寸基本接近或大于入射光波長,這時候發(fā)生的散射作用使大部分能量向前,小部分能量向后,說明由于散射的作用,在光線原本傳播方向上的能量有一定的衰減。這種散射叫米散射(也叫粗粒散射)。它的作用是使得光線的能量在原本方向上有所衰減。
有了散射粒子的物理模型,教師引導(dǎo)學(xué)生來看成像的場景,如圖1所示,假設(shè)物體表面發(fā)出的光線強(qiáng)度為J,在空氣中傳播,經(jīng)過空氣中的粗粒散射,入射到人眼中時,光線的輻射強(qiáng)度會變?nèi)?,這說明光線發(fā)生了衰減。將輻射強(qiáng)度J乘以一個小于1的系數(shù),叫透射系數(shù),用符號t表示,距離近,透射多,t就大,距離遠(yuǎn),透射少,t就小。根據(jù)物理上的大氣散射模型,透射系數(shù)和場景深度是指數(shù)衰減的關(guān)系。我們見到的有霧圖像中感覺有灰白的一層,這是為什么?光是射向四面八方的,不管我們想要與否,總有一些原來其他方向的光線被微粒介質(zhì)不小心散射,傳播方向發(fā)生了變化,入射到和被衰減光線同樣的方向上,進(jìn)入圖像上同一個像素中。這種意外的巧合來自方方面面,我們把它總稱為空氣光部分。
散射作用讓我們有失有得,“失”對應(yīng)于目標(biāo)光線(想要的場景光線)被衰減,“得”對應(yīng)于來自四面八方的意外空氣光(不想要的意外噪聲)。這兩部分共同作用,讓場景圖像降質(zhì),形成一幅有霧的“看不清”的圖像。
真實(shí)圖像為I,想得到的目標(biāo)圖像為J,透射系數(shù)t的圖像和深度圖d有直接對應(yīng)關(guān)系,是符合衰減規(guī)律的指數(shù)關(guān)系??諝夤獾念伾獳是一個常數(shù)。(x,y)表示像素的行列坐標(biāo)位置。
求解問題:暗通道先驗(yàn),求解欠定問題
1.明確問題求解的難點(diǎn)
智能去霧問題的輸入是只有一幅有霧的圖像I,輸出是清晰的去霧圖像J,同時副產(chǎn)品還有透射系數(shù)t,也就等價(jià)于直接和它相關(guān)的深度圖d。已知一個條件,求解兩個未知數(shù),已知信息不夠,這類問題屬于欠定問題。
教師在此可以向?qū)W生介紹什么是正定問題、欠定問題和超定問題。正定問題是條件數(shù)量與未知數(shù)的數(shù)量一樣多,欠定問題是條件數(shù)量少于未知數(shù)的數(shù)量,超定問題恰好相反,指的是條件數(shù)量多于未知數(shù)的數(shù)量,也即條件可能是相互矛盾的。欠定問題因?yàn)闂l件(約束)不足,可能有多種可能性的解,即解具有不確定性。本例的去霧問題就是一個欠定問題,具體分析如下:已知僅有I,未知有J和t(或者說d),這樣的情況下,解有無窮多種組合,如深度為0,t為1,J就是I;d比真實(shí)值要小,求出來的J就還是有霧,但是比原來的淡一點(diǎn)點(diǎn);再如d是真實(shí)值,J的結(jié)果就是期望的去霧結(jié)果。
欠定問題的求解必須要增加條件(或約束)。本課例中,學(xué)生學(xué)習(xí)的去霧算法最重要的創(chuàng)新點(diǎn)就是通過大量數(shù)據(jù)統(tǒng)計(jì)提出圖像的先驗(yàn)知識,用于約束欠定問題的求解。
2.建立問題求解的約束
暗通道先驗(yàn)是去霧問題最重要的創(chuàng)新點(diǎn),是解決上面的欠定問題的關(guān)鍵。我們從圖2來看,上左列為輸入圖像,上右列為計(jì)算得到的暗通道圖,下圖是暗通道圖對應(yīng)的統(tǒng)計(jì)直方圖。圖中可以看到無霧圖暗通道的像素值絕大部分都是接近黑色的,有霧圖暗通道的分布則比較分散,大多數(shù)像素的值在50~200之間。
教學(xué)活動:探究暗通道先驗(yàn)的實(shí)踐。學(xué)生執(zhí)行相應(yīng)程序,輸入圖片為10張圖,5張無霧,5張有霧。由于圖片眾多,教師組織分組實(shí)踐,每個學(xué)生對比兩張輸入圖片,并在石墨共享文檔的相應(yīng)位置中,填出相應(yīng)的運(yùn)行結(jié)果。思考無霧圖的暗通道與有霧圖的暗通道圖像有何區(qū)別?它們的直方圖有何區(qū)別?為什么?
對一張圖求暗通道,本質(zhì)上就是兩次求最小:對顏色通道求最小,對空間小區(qū)域求最小。暗通道先驗(yàn)就是兩次求最小操作之后得到的結(jié)果,趨近于0。去霧研究工作對5000張無霧圖像進(jìn)行了大規(guī)模直方圖統(tǒng)計(jì),結(jié)果是86%的像素都接近于0。因此,暗通道先驗(yàn)得到了很好的驗(yàn)證。接下來從物理角度解釋暗通道的產(chǎn)生,即暗通道圖低亮度主要來源于3個原因:陰影、彩色物體或者表面以及黑色物體或者表面。
教學(xué)活動:基于暗通道先驗(yàn)的去霧模型求解。學(xué)生執(zhí)行程序,觀察結(jié)果。學(xué)生在不同圖片上運(yùn)行去霧算法,對照算法探究程序的實(shí)現(xiàn)。請學(xué)生思考當(dāng)前算法的結(jié)果在哪些情況下效果較好,哪些情況下還需要改進(jìn)?為什么?
遷移應(yīng)用:暗通道先驗(yàn)與其他問題
以上第二部分的求解是去霧算法的核心,基于暗通道先驗(yàn)的去霧算法既創(chuàng)新也簡單,得到的去霧效果圖像在大部分區(qū)域的接受范圍內(nèi)。然而在某些地方還有明顯的瑕疵,這些地方主要是場景深度有明顯變化的地方,因?yàn)檫@種情況下求解算法中假設(shè)的“區(qū)域小塊中所有像素的值都相同”的條件不再成立,深度有突變,透射系數(shù)t也會有突變,常數(shù)的假設(shè)不再成立,因此算法需要對現(xiàn)有的結(jié)果進(jìn)一步改進(jìn)。智能去霧的改進(jìn)算法也非常巧妙,這個改進(jìn)算法并非是作者原創(chuàng),而是將其他領(lǐng)域的算法引入進(jìn)來,他山之石可以攻玉。
在第一部分,教師已經(jīng)引入透明度通道,這里可以拓展一下,在計(jì)算機(jī)視覺、圖形學(xué)、圖像處理領(lǐng)域,有一大類研究專門做自動摳圖的算法,將圖像中的前景從背景中分離出來。如果場景都是由完全不透明的物體組成,摳圖相對比較容易,前景和背景用二值進(jìn)行區(qū)分即可,然而真實(shí)情形下,場景中或多或少存在部分透明的情況,如毛發(fā)、皮膚等,其核心思想是一幅圖由前景色和背景色混合,且不同地方透明度不同。摳圖的問題已經(jīng)有成熟有效的算法,這些算法可以遷移應(yīng)用于去霧的優(yōu)化,得到的結(jié)果如圖3所示。
教學(xué)活動:回歸課程開始,每個組都會重點(diǎn)聚焦STEAM某一領(lǐng)域,先請每個組總結(jié)整個問題解決中各領(lǐng)域的基礎(chǔ)和應(yīng)用。接著,全體學(xué)生重新分組,按照新的分組,每個新的分組都有來自各領(lǐng)域的學(xué)生,在新的分組下,進(jìn)行跨學(xué)科交叉的討論與思考,從跨學(xué)科的角度思考智能去霧算法的融合創(chuàng)新。每個小組制作一張海報(bào),呈現(xiàn)整體的總結(jié)與思考。
在本課例中,教師引導(dǎo)學(xué)生發(fā)現(xiàn)智能去霧問題并不是單獨(dú)某個學(xué)科可以解決的,它是真實(shí)世界中的復(fù)雜問題,需要多學(xué)科背景知識做基礎(chǔ),這個問題的解決需要跨學(xué)科的思維、跨學(xué)科的創(chuàng)新。此外,在學(xué)習(xí)過程中學(xué)生能夠?qū)υ紕?chuàng)新、簡單之美建立自己的感知,對計(jì)算思維的問題解決過程和思維方式有自己的理解。大道之行在于簡。
注:本文系全國教育科學(xué)“十三五”規(guī)劃2019年度教育部青年課題“面向未來高階能力和智能素養(yǎng)的中學(xué)跨學(xué)科人工智能課程體系建設(shè)與教學(xué)研究”(課題號:EHA190519)研究成果
作者單位:中國人民大學(xué)附屬中學(xué)