【綜述】相位解包裹算法對比分析

引言

相位解包裹是基于干涉的位相測量技術中的重要環節,如合成孔徑雷達干涉、光學干涉測量技術、醫學成像技術、數字全息三維成像、相干衍射成像等技術中都涉及位相解包裹。位相解包裹也稱為位相展開、位相解截斷、位相解纏繞等。與之相反的過程謂之包裹位相、截斷位相、纏繞位相等。近年來,隨著數字全息術和其他三維成像技術的發展,位相解包裹也得到了很快的發展,研究者提出了很多算法。雖然所提出的算法針對的具體領域不同,但由于解決的問題本質相同,位相解包裹算法具有通用性。

相位解包裹算法研究匯總分類

近年來,國外對于位相解包裹算法的研究很多,基本理論日趨成熟。下表對目前國際及國內出現的位相解包裹算法研究進行了初步的總結。

表1 國外相位解包裹算法研究匯總

序號作者方法積分路徑優點缺點
1Jonahan M. Huntley枝切法PF使用奇異點環,抗噪能力強枝切線容易設置不當
2Antonio Baldi四叉樹NPF分塊再合并,速度較快噪聲厲害區域效果不好
3Curtis W. Chen統計模型解費用函數NPF抗噪能力強需要先驗圖,費時
4Curtis W. Chen統計費用網絡流法NPF圖像分割合并算法,效果好需先驗知識
5Mark Jerkimson網絡流法NPF每一維分別操作,省時,準確較適合于處理 MRI 數據
6Vyacheslav V. Volkov2 次 FFT 方法NPF只需要三次 FFT 變換,省時欠采樣厲害的區域出錯
7Marvin A. Schofield4 次 FFTNPF編程簡單,易于實現需要對圖像進行鏡像操作,費時
8Rene Schone加窗技術和最小費用匹配NPF抗噪能力強運行速度比較慢
9Mariano Rivera半正定費用函數,正則化法NPF抗噪聲能力強位相出現不連續現象
10Y. Sasaki統計力學方法,1 - Ising 模型NPF適合處理含有欠采樣圖像運行速度比較慢
11Myung K. Kim雙波長光學法NPF解包裹易實現會存在 “拉線” 現象
12Lei Ying馬爾科夫隨機場模型NPF對噪聲、位相跳變區域處理效果好運行速度比較慢
13Wang Huailiang蒙特卡羅算法PF抗噪能力比較強易產生 “拉線” 現象
14S Kanat奇異點 - 矢量圖作為質量圖PF比其他質量圖好產生 “孤島區域”
15Jose M. Biurrun - Dias最大流最小割算法PF適合處理含有欠采樣的圖像運行速度比較慢
16Sheng Liu基于條紋估計和圖像分割的區域濾波NPF精度較高運行速度比較慢
17Juan J. Martinez - Espla基于網絡濾波器和枝切法PF抗噪能力強濾波會丟失信息,存在 “孤島區域”
18Juan J. Martinez - Espla粒子濾波和 Isodata 算法PF抗噪能力強濾波會丟失高頻信息,會產生 “拉線” 現象
19Handford C. Herndargo合成波長技術NPF精度較高只適用于光學干涉領域
20Gonzalo Valado貝葉斯方法NPF適合處理含有陰影、高斯噪聲數據需要后驗概率
21Miguel Arevalillo質量導向、區域增長和蟻切PF精度較高運行速度比較慢
22Rizardo Legarda Senz傅里葉相位包裹變換,時間里的正定變換NPF算法簡單,速度較快只適合于跟時間有關系的數據
23A. Plyush Shanker改進的最小費用流法NPF用邊代替閉合路徑,可用于多維數據較適用于處理 INSAR 時間序列
24A. Khmaladze改變再現距離NPF消噪效果較好不適合于處理含有欠采樣的數據
25Jesús Mu?oz Maciel傅里葉方法NPF運行速度較快干涉圖須含有封閉條紋
26Satoshi Tomioka旋轉補償器、不約束的奇異點定位和虛擬奇異點PF抗噪能力強運行速度比較慢
27Sai Siva Gorthi立方位相方程NPF位相跳變厲害的區域效果也好適合于光學干涉
28黃源浩傅里葉位相濾波和柵格位相解包裹PF抗噪能力強,適合于動態物體易產生 “拉線” 現象和 “孤島區域”
29Batuhan OsmanogluFD 路徑PF比其他路徑好易產生 “拉線” 現象和 “孤島區域”
30丁毅利用兩幅干涉圖恢復位相NPF算法簡單運行時間短需選定兩幅圖像干涉的頻率

注:LS:最小二乘;FFT:快速傅里葉變換;DCT:離散傅里葉變換;PF:路徑跟蹤;NPF:非路徑跟蹤;FD:Fisher距離;Itoh’s算法:行列逐點位相解包裹算法。

表2 國內相位解包裹算法研究匯總

序號作者方法積分路徑優點缺點
1蘇顯渝等條紋分析PF誤差傳遞小易產生 “拉線” 和 “孤島區域”
2錢克茂等調制度加權最小二乘法NPF算法較穩健對條紋清晰度要求高
3Chi Fung Lo 等分塊和質量導向PF抗噪能力強合并時可能導致連續性差
4康新等最小截面差NPF算法簡單,速度較快,可靠性較高不適用于處理欠采樣數據
5吳祿慎等新的區域增長算法PF抗噪能力強易產生 “拉線” 現象
6惠梅等DCTNPF速度快,不存在 “拉線” 現象具有平滑作用,產生誤差
7彭震君等模擬退火NPF抗噪能力強,易于解決欠采樣問題運行速度較慢
8彭震君等位相跳變區域劃分PF抗噪能力強易不連續
9蘇顯渝等參數導向PF抗噪能力強易產生“孤島區域”
10鄭剛等可靠性的方法 & 隊列法PF易處理含有噪聲、陰影和空洞的數據易產生 “拉線” 現象
11王燕等相鄰區域算法(菱形算法)PF算法簡單,可消除 “拉線”不適用于處理欠采樣數據
12楊亞良等確定性的 FFT 算法NPF速度較快,精度較高需要對圖像進行鏡像操作
13陳家鳳等改進的最近相鄰點連接法PF抗噪能力強,速度較快易產生 “孤島區域”
14路元剛等質量相關的 WLSNPF抗噪能力強,速度較快不適用于處理欠采樣數據
15朱勇建等局部質量導向和假設相鄰像素在一平面上PF抗噪能力強對質量圖要求高
16楊鋒濤等基于二階差分的加權最小費用流法NPF精度較高需權重,運行較慢
17楊鋒濤等模擬退火NPF抗噪能力強,適合于處理含有欠采樣的數據運行速度比較慢
18王軍等八角模型消除不連續點和多方向去包裹NPF抗噪能力強運行速度比較慢
19魏志強等蟻群算法NPF抗噪能力強運行速度比較慢
20陳家鳳等小波變換NPF速度較快,精度較高不適合用于處理欠采樣數據
21武楠等枝切法和有限元法PF+NPF精度較高區域合并影響連續性
22張婷等邊緣檢測和 flynn 算法PF抗噪能力強運行速度比較慢
23朱勇建等4 次 DCTNPF速度較快,精度較高不適合用于處理欠采樣數據
24錢克茂等加窗傅里葉濾波和質量導向PF對噪聲、奇異點處理效果好濾波會丟失一些信息
25熊六東等希爾伯特變換NPF速度較快易產生 “拉線” 現象
26錢曉凡等基于掩膜和 LS 迭代法NPF易處理含有 “空洞” 的數據多次迭代,費時
27張志斌等枝切法和有限元法PF精度較高區域合并時會影響連續性
28錢曉凡等基于橫向剪切干涉的 LS 法PF精度較高,速度較快,適合于解決欠采樣問題限于光場再現的應用領域
29張會站等改進的 Goldstein 和 Pritt 算法PF精度較高運行速度比較慢
30萬文博等菱形算法PF算法簡單可消除 “拉線” 現象不適合用于處理欠采樣數據
31范琦等傅里葉變換和橫向剪切干涉NPF適用于處理欠采樣數據抗噪能力較弱
32謝光明等不敏粒子濾波NPF精度較高,效率較高存在一定的誤差

注:LS:最小二乘;FFT:快速傅里葉變換;DCT:離散傅里葉變換;PF:路徑跟蹤;NPF:非路徑跟蹤;FD:Fisher距離;Itoh’s算法:行列逐點位相解包裹算法。

通過比較,不難發現,國內對于位相解包裹算法大多是在國外基礎上進行改進得到的,因此,國內在這方面的研究和國外還有很大的差距。通過觀察表1和表2中各種算法的優缺點,可以發現:①各類位相解包裹算法都存在一定的優勢,也存在一些不足。到目前為止,還沒有發現一種能解決所有問題的算法;②噪聲、欠采樣問題是位相解包裹面臨的兩個主要困難,解決好這兩個主要困難,可以提高位相解包裹精度,獲得更準確的三維形貌信息。

常用算法基本思想

(1)路徑跟蹤算法:路徑跟蹤算法是依賴路徑的局部算法,通過選擇合適的積分路徑,繞開噪聲區,阻止誤差的全程傳遞,采用逐點比較的方法,計算量小,效率高,但處理噪聲、誤差嚴重的位相圖效果較差。該類算法主要包括六種:
①行列逐點解包裹算法,該算法是路徑跟蹤算法中最基本的算法,具有簡單易行、耗時少、效率高、理想情況下位相解包裹精度高等優點,但噪聲嚴重時,出現“拉線”現象,使解包裹結果出現嚴重的錯誤;
②枝切法(branch cut,BC),是最經典的路徑跟蹤算法,1986年由美國JPL實驗室Goldstein等人提出。該算法通過識別正負殘差點,然后連接鄰近的殘差點對,使殘差點的“極性”達到平衡,形成最優枝切線,確定不經過枝切線的積分路徑,防止誤差傳遞,但若該算法速度快、效率高,枝切位置放置不當,會形成“孤島區域”,從而導致嚴重錯誤;
③質量導向路徑跟蹤算法(quality guide,QG),是利用質量圖指導積分路徑的生成,使積分路徑開始于高質量的像素,避開低質量的像素,最大限度地阻止誤差傳播。該算法最初由Bone于1991年提出,利用相位的二次偏導數作為質量圖來指導位相解包裹。1995年,Querenga等提出了自適應的閾值,改進了Bone的方法。然后,Xu和Cumming首次將相干系數圖作為質量圖對像素進行排序,實現位相解包裹。這種算法不需要識別出殘差點,準確性比枝切法要好,但速度比枝切法慢,而且需要高質量的質量圖作為保證,若質量圖選取的不好,在噪聲過多的區域,會產生不能解調的“孤島區域”;
④掩模 - 切割法(mask - cut),該算法是枝切法與質量圖導向路徑跟蹤算法的結合,它首先識別殘差點,并用枝切線將殘差點連接起來,與Goldstein枝切法不同的是,它利用相位質量圖指導枝切線的設置,從這一點上來說它又與質量圖導向的路徑跟蹤法相似。該算法準確性較高,但速度比枝切法慢,且需要高質量的質量圖作為保證。在噪聲過多的區域,會形成“孤島”現象;
⑤區域生長算法(region grow),區域生長法從高質量的像素出發,根據已經經解包裹的像元和質量圖來決定下一個解包裹方向(從相鄰的八個方向中選),同時通過設定閾值來評定相鄰八個方向的平均偏差,優先選取平均偏差最小的方向進行解包裹。該算法可以實現同步位相解包裹。運算速度快,抗噪能力強,精度較高,但可能會形成“孤島區域”;
⑥菱形算法(rhombus algorithm,RA),該算法是通過識別1個種子點,然后依次向相鄰4點擴展,再把這4個點作為第二批種子點,依次向各自的4點鄰域擴展,以菱形軌跡遍歷所有的有效信息點,以達到整幅圖像位相解包裹的目的。算法速度較快,但在噪聲較多的區域,容易出現“拉線”現象。

(2)最小范數法:最小范數法是求出展開位相的相鄰像素位相差和包裹位相的相鄰像素位相差最小(L^{p})范數意義上的解,它是一種路徑獨立的全局算法,不需要識別殘差點。該算法計算量大,但是對誤差點的控制很好。

最小范數法從原理上來說就是進行曲面擬合,其關鍵就是范數的選取問題。當(p>2)時,解包裹位相的曲面過于平滑,與真實位相梯度誤差較大;當(p<2)時,解包裹的結果與局部位相梯度較匹配,而對權重的要求就很高,確定噪聲比較嚴重的區域權重是一個很困難的問題;當(p = 2)時,成為目前研究最多的最小范數法,即最小二乘位相解包裹方法,因為該類算法可盡量保證解包裹梯度和真實梯度一致,并且這時的位相解包裹問題可以轉化為求解離散泊松方程的問題,求解該方程的方法有很多,擴展了位相解包裹的思路。

最小二乘法中有一種特殊情況,即無權最小二乘位相解包裹算法。求解此種情況下的離散泊松方程的方法有:①基本迭代法,它包括(omega - Jacobi)迭代法、高斯 - 賽德爾(Gauss - Seidel)迭代法、超松弛(SOR)迭代法,迭代法收斂速度比較慢,因而目前應用較少;②基于快速傅里葉變換的最小二乘法(簡稱FFT - LS),該算法需要對包裹位相圖進行“鏡像”操作,也即對包裹位相進行周期延拓,從而使泊松方程滿足周期性,適合用FFT算法進行求解。由于采用的是FFT變換,該算法速度較快,抗噪能力強,不會出現“拉線”現象,但需要進行周期延拓會影響計算時間,而且由于采用FFT變換,所以要求圖像滿足(2^m+1)× (2^n+1)大小,有局限性;③基于離散余弦變換的最小二乘法(DCT - LS),該算法的原理和基于FFT的算法原理相同,它的優點是不需要進行周期延拓,但是它需要有紐曼邊界條件進行約束,因而速度比FFT算法快,抗噪能力也比較強,不會出現“拉線”現象,由于該算法具有平滑作用,會導致誤差傳遞;④多級格網法(multi - grid),該算法是對Gauss - Seidel迭代法進行改進得到的,目的是為了加快其收斂速度,基本算法與Gauss - Seidel法一致;⑤基于橫向剪切干涉的最小二乘法(LS - LS),橫向剪切干涉是指被測光場與其平移后的光場相干涉而形成的光場。對于數字全息來說,由于具有數字化優點,可以通過將數字全息重構光場做橫向和縱向平移即可實現剪切干涉,得到幾乎沒有包裹的剪切位相分布,大幅度降低了位相解包裹的難度。

在實際應用中,常常會出現位相跳變厲害、調制度低以及欠采樣的問題,使位相解包裹面臨著比較大的困難。為了解決欠采樣的問題,2011年,昆明理工大學錢曉凡老師等提出了一種基于橫向剪切干涉的最小二乘位相解包裹算法,該算法的思路為:對重構光場的復振幅分布沿(X(Y))方向上平移(s)個像素(通常取(s = 1)),得到光場復振幅的新分布;由于平移量極小,可忽略原光場在((m,n))與((m + s,n))點處的差異,兩光場相除可得到它們在((m,n))點處的位相差值,然后利用基于離散余弦變換的最小二乘法解包裹,即可獲得光場的展開位相分布。該算法優點:速度快,抗噪能力強,精度更高,適合解決還有欠采樣的圖像。算法缺點:由于使用基于DCT的最小二乘法進行解包裹運算,所以會造成誤差傳遞。

無權最小二乘位相解包裹算法沒有考慮殘差點的影響,因此會造成誤差傳遞,這種誤差可以通過加權來彌補。比較經典的加權最小二乘法主要有:演化的Gauss - Seidel迭代法、Picard法和預條件共軛梯度法(PCG)。對于加權最小二乘法,由于引入了迭代運算,運算時間比較長,且需要高質量的質量圖作保證,實際應用價值不大。然而,由于引入權重,所以抗噪能力較強。

綜上所述,最小二乘位相解包裹算法是最小范數算法中最常用的算法。由于加權算法引入了權重,可以減弱噪聲對位相解包裹的影響,因此從解包裹精度上來說,加權最小二乘法要比無權最小二乘法精度高,但是加權算法的運行速度比無權算法的慢。

3)基于最優估計的位相解包裹算法:最經典的基于最優估計的位相解包裹算法就是1996年Costantini提出的基于網絡規劃的最小費用流算法(minimum cost flow,MCF),這種算法的基本思想是最小化解包裹位相導數和包裹位相導數差的范數。該算法比較費時,而且隨著數據塊的增多,運行時間急劇增加。郭春生博士提出了改進算法,將數據分塊操作,然后再將解包裹后的位相合并起來。雖然可以提高速度,但是合并時的連續性受到了影響。為了提高位相解包裹的精度,王超等提出了一種基于不規則網絡下的網絡規劃算法,但是該算法增加了生成Delaunay三角網的時間開銷,使得運行速度更慢。后續提出的基于最優估計的算法有:遺傳算法、模擬退火算法等,這些算法也同樣存在運行速度慢的問題,不適合實時處理和動態監測領域,也不適合處理大面積的包裹位相圖。

(4)基于特征提取的位相解包裹算法:基于特征提取的位相解包裹方法是直接從位相圖干涉條紋入手,首先識別出位相條紋;然后根據條紋之間的相互關系,積分時每通過一個干涉條紋就加上或減去2π,最終實現整幅圖的位相解包裹。條紋識別的常見方法有兩種:①通過干涉圖的特征提取位相條紋,可以通過各種算子進行特征提取,如羅伯斯(Roberts)算子、索貝爾(Sobel)算子、拉普拉斯(Laplacian)算子等;②也可以通過區域分割,即通過相鄰像素位相差來獲取,條紋之間的相互關系在區域分割過程中就可以獲取。該算法不需要判斷殘差點,也不對誤差點進行任何處理,因而簡單快捷,但對條紋圖要求較高,需要有連續的、明顯的干涉條紋,條紋不連續的區域需要進行人工干預。必然會引入誤差,實際應用嚴重受限。

(5)基于傅里葉變換的位相解包裹算法:該類算法運算速度比較快,這是FFT自身的特點所決定的,特別是當圖像的大小是2的偶數次冪時,運算速度會更快。此外,由于在頻域中對數據進行操作不是點點一一對應的,能夠圓滿解決空域中的噪聲等問題。

基于傅里葉變換的經典算法有四種:基于四次傅里葉變換的算法(四次FFT)、基于二次傅里葉變換的算法(二次FFT)、基于四次離散余弦變換的算法(四次DCT)和基于橫向剪切干涉與傅里葉變換相結合的算法(LS - FFT)等。基于橫向剪切干涉與傅里葉變換相結合的算法比較適合解決欠采樣的問題,基于四次和二次傅里葉變換的算法比較適合處理強噪聲的情況,由此可見,將傅里葉變換引入到位相解包裹算法中來是很有發展前景的。

該類算法并不是無權最小二乘算法中的基于傅里葉變換的位相解包裹算法,不過也可以把基于傅里葉變換的最小二乘解包裹算法歸為這類算法中來。

解包裹算法的分類比較

每類算法各有優缺點,它們的具體情況列于下表。

表3 相位解包裹算法比較

算法分類算法原理優點缺點前景
路徑跟蹤算法通過識別殘差點或者依靠質量圖尋找最佳積分路徑來實現位相解包裹對于噪聲少的情況,可以得到比較滿意的結果噪聲比較強,就會出現 “拉線” 和 “孤島” 區域對于處理一些噪聲弱的圖像是不錯的選擇
最小Lp范數算法即求出解包裹位相的相鄰像素位相差和包裹位相的相鄰像素位相差最小Lp范數意義上的解運算穩定性好,速度較快,不需要識別誤差點,抗噪能力強誤差嚴重的區域,容易造成誤差傳遞,導致精度降低最小二乘算法是目前比較常用的算法,有待進一步發展
基于最優估計算法即最小化解包裹位相導數和包裹位相導數的差異能有效抑制誤差點導致的位相誤差傳播,且不需要識別誤差點,效果較好由于計算量非常大,運行速度非常慢,不適合做大面積處理理論復雜,研究進展較慢,不適合于實時動態監測
基于特征提取算法識別出位相條紋,積分時每通過一個干涉條紋就加上或減去2π,最終實現整幅圖的解包裹不需要識別誤差點條紋必須清楚,條紋不連續區域需要進行人工干預,會引入誤差限制太大,實際應用性不強
基于傅里葉變換的算法將傅里葉變換引入位相解包裹算法中,即將空域引入到頻域中來,有其獨特的優勢處理速度非常快,尤其是處理 2 的偶數次冪的圖像,解包裹精度較高有些相關算法不適合于解決欠采樣問題速度較快,該類算法是比較有發展前景的一類算法

通過表可知,目前各類算法都有自己的優缺點,因此,相互借鑒、相互組合優化,尋找合適的適用范圍是以后的必然趨勢。

實驗指導與matlab代碼獲取

博主(博士研究生)在上述領域可提供實驗指導、實驗系統研發以及相關Matlab程序開發服務。如有需求,請私信博主, 聯系方式見文章底部。


??◎??◎??◎?? · · · **博 主 簡 介** · · · ??◎??◎??◎??
?

▁▂▃▅▆▇ 博士研究生 ,研究方向主要涉及定量相位成像領域,具體包括干涉相位成像技術(如**全息干涉?**、散斑干涉?等)、非干涉法相位成像技術(如波前傳感技術?相位恢復技術?)、條紋投影輪廓術(相位測量偏折術)、此外,還對各種相位解包裹算法?相干噪聲去除算法?等開展過深入的研究。

程序獲取、程序開發、實驗指導,軟硬系統開發,科研服務,請私信博主,聯系方式如下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79153.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rust 學習筆記:關于枚舉與模式匹配的練習題

Rust 學習筆記:關于枚舉與模式匹配的練習題 Rust 學習筆記:關于枚舉與模式匹配的練習題以下程序能否通過編譯?若能,輸出是什么?考慮這兩種表示結果類型的方式,若計算成功,則包含值 T&#xff1b…

C++負載均衡遠程調用學習之QPS性能測試

目錄 1.昨日回顧 2.QPS_TEST_PROTOBUF協議的集成 3.QPS_TEST_SERVER端實現 4.QPS_TEST_QPS簡單介紹 5.QPS_TEST_QPS客戶端工具編寫和性能測試 1.昨日回顧 2.QPS_TEST_PROTOBUF協議的集成 ## 14) Reactor框架QPS性能測試 ? 接下來我們寫一個測試用例來測一下我們…

【MySQL數據庫】視圖

1,視圖的基本介紹 視圖是一個虛擬表,其內容由查詢定義。與真實表一樣的是,視圖包含帶有名稱的列和行數據;與真實表不一樣的是,視圖本身并不在數據庫中存儲數據。視圖的數據變化會影響到基表,基表的數據變化…

Linux系統安裝方式+適合初學者的發行版本

Linux系統安裝方式適合初學者發行版—目錄 一、Linux系統的安裝方式1. 物理機直接安裝2. 虛擬機安裝3. 雙系統安裝4. Live USB試用5. 云服務器安裝 二、適合初學者的Linux發行版1. Ubuntu2. Linux Mint3. Zorin OS4. Pop!_OS5. Elementary OS6. Fedora7. Manjaro 三、選擇建議場…

Linux C++ JNI封裝、打包成jar包供Java調用詳細介紹

在前面 Android專欄 中詳細介紹了如何在Android Studio中調用通過jni封裝的c庫。 在Android使用 opencv c代碼,需要準備opencv4android,也就是c的任何代碼,是使用Android NDK編譯的,相當于在windows/mac上使用Android stdido交叉…

4.1 模塊概述

1.Python結構 工程 > 包 > 模塊 Python工程: “Python項目中最大的文件夾(本質就是一個文件夾)” --- 左側的 CODE文件夾 為Python工程 Python包: 本質就是一個文件夾,但是python包中具備具體的標識,如果沒有標識則不能導入 --- 左側的 01.Python基礎 文件夾為python包 P…

AJAX 實例

AJAX 實例 引言 Ajax(Asynchronous JavaScript and XML)是一種在無需重新加載整個頁面的情況下,與服務器交換數據并更新部分網頁的技術。Ajax通過在后臺與服務器交換數據,實現了頁面的動態更新,從而提高了用戶體驗和…

相機的基礎架構

📷 相機相關基礎架構學習路徑 一、了解手機相機系統架構 Android Camera HAL(如果你是做 Android 平臺) 學習 Camera HAL3 架構(基于 camera_device_t, camera3_device_ops 接口) 熟悉 CameraService → CameraProvid…

MLX Chat - 基于 Streamlit 的 MLX 前端界面

本文翻譯整理自:https://github.com/da-z/mlx-ui 一、關于 MLX Chat 一個基于 Streamlit 的簡單 UI/網頁前端,用于 MLX mlx-lm 項目。 相關鏈接資源 github : https://github.com/da-z/mlx-uiMLX 社區模型庫:https://huggingface.co/mlx-co…

el-table 自定義列、自定義數據

一、對象數組格式自定義拆分為N列 1-1、數據格式: const arrayList ref([{"RACK_NO": "A-1-001"},{"RACK_NO": "A-1-002"},{ "RACK_NO": "A-1-003"},//省略多個{"RACK_NO": "A-1-100…

JVM 如何使用性能分析工具定位代碼中的性能問題?

核心思想: 通過工具觀察程序在特定負載下的運行狀態,識別消耗資源最多的代碼段(熱點代碼)、異常的內存分配模式或線程阻塞情況,然后針對性的優化代碼。 通用步驟: 確定問題: 首先明確遇到了什…

Python虛假新聞檢測識別

程序示例精選 Python虛假新聞檢測識別 如需安裝運行環境或遠程調試,見文章底部個人QQ名片,由專業技術人員遠程協助! 前言 這篇博客針對《Python虛假新聞檢測識別》編寫代碼,代碼整潔,規則,易讀。 學習與應…

網絡原理 - 12(HTTP/HTTPS - 3 - 響應)

目錄 認識“狀態碼”(status code) 200 OK 404 Not Found 403 Forbidden 405 Method Not Allowed 500 Internal Server Error 504 Gateway Timeout 302 Move temporarily 301 Moved Permanently 418 I am a teaport 狀態碼小結: …

Spring Boot中集成Guava Cache或者Caffeine

一、在Spring Boot(1.x版本)中集成Guava Cache 注意&#xff1a; Spring Boot 2.x用戶&#xff1a;優先使用Caffeine&#xff0c;性能更優且維護活躍。 1. 添加依賴 在pom.xml中添加Guava依賴&#xff1a; <dependency><groupId>com.google.guava</groupId&…

Linux工作臺文件操作命令全流程解析

全文目錄 1 確認當前工作路徑2 導航與目錄管理2.1 關鍵命令2.2 邏輯銜接 3 文件基礎操作3.1 創建 → 備份 → 重命名 → 清理3.2 文件查看和編輯3.3 文件鏈接3.4 文件diff 4 文件權限與所有權管理5 文件打包與歸檔6 參考文獻 寫在前面 shell是一種命令解釋器&#xff0c;它提供…

LeetCode第183題_從不訂購的客戶

LeetCode 第183題&#xff1a;從不訂購的客戶 題目描述 表: Customers ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是該表的主鍵。 該表包含消費者的 id 和…

c語言的常用關鍵字

c語言的常用關鍵字 c語言的關鍵字表示數據類型的關鍵字autocharfloatdoubleintlongshortvoidsignedstruct、enum、unionunsigned 表示分支語句的關鍵字ifelseswitchbreakcasecontinuedefault 表示循環語句的關鍵字whiledoforgoto 用于修飾變量或函數的關鍵字constconst修飾變量…

MCU通用輸入輸出端口(GPIO)設計指南

在嵌入式系統開發中&#xff0c;MCU的GPIO接口是一個基礎但非常實用的功能模塊。GPIO全稱是通用輸入輸出端口&#xff0c;它讓MCU可以靈活地與外部設備進行交互。 GPIO的主要特點包括&#xff1a; 多功能性&#xff1a;每個引腳都可以單獨配置為輸入或輸出 可編程性&#xff…

STM32完整內存地址空間分配詳解

在STM32這類基于ARM Cortex-M的32位微控制器中&#xff0c;整個4GB的地址空間(從0x00000000到0xFFFFFFFF)有著非常系統化的分配方案&#xff0c;每個區域都有其特定的用途。下面我將詳細介紹這些地址區域的分配及其功能&#xff1a; STM32完整內存地址空間分配詳解(0x00000000…

實現水平垂直居中的多種方法

在前端開發中&#xff0c;元素的居中是一個常見但又經常讓人頭疼的問題。本文將全面總結各種CSS居中方法&#xff0c;特別是如何實現一個div的水平垂直居中。 為什么居中這么重要&#xff1f; 居中布局是現代網頁設計中最基礎也最重要的布局方式之一。無論是導航菜單、登錄框…