論文閱讀筆記:ArcFace: Additive Angular Margin Loss for Deep Face Recognition

論文閱讀筆記:ArcFace: Additive Angular Margin Loss for Deep Face Recognition

  • 1 背景
  • 2 創新點
  • 3 方法
  • 4 模塊
    • 4.1 Softmax
    • 4.2 權重歸一化
    • 4.3 乘性角度間隔
    • 4.4 特征歸一化
    • 4.5 加性余弦間隔
    • 4.6 加性角度間隔
    • 4.7 二值化情況下的比較
    • 4.8 目標Logit分析
  • 5 效果
    • 5.1 消融實驗
    • 5.2 和SOTA方法對比

論文:https://arxiv.org/pdf/1801.07698

代碼:https://github.com/deepinsight/insightface

1 背景

通過深度卷積網絡嵌入的人臉表示被認為是目前最先進的人臉驗證、人臉聚類和人臉識別方法。深度卷積網絡負責將人臉圖像(通常經過姿態歸一化步驟)映射為嵌入特征向量,使得同一個人的特征具有較小的距離,而不同個體的特征具有相當大的距離。

通過深度卷積網絡嵌入的各種人臉識別方法在三個主要屬性上是不同的。

第一個屬性是用于訓練模型的訓練數據。雖然公開可用的訓練數據有大量的ID,但它們存在注釋噪聲和長尾分布。由于在訓練數據規模上存在數量級上的差異,來自工業界的人臉識別模型的性能要遠遠優于來自學術界的模型。訓練數據的差異也使得一些深度人臉識別結果不完全具有可重復性。

第二個屬性是網絡架構和設置。高容量深度卷積網絡,如Resnet和Inception-ResNet可以獲得比VGG和Inception V1更好的表現。不同的深度人臉識別應用在速度和精度之間的均衡是不同的。對于移動設備上的人臉驗證,實時的運行速度和緊湊的模型尺寸至關重要,對于十億級別的安防系統,高精度和效率同等重要。

第三個屬性是損失函數的設計。

  1. 基于歐式間隔的損失。一個Softmax分類層在一組已知的ID上訓練,然后從網絡的中間層提取特征向量,并用于在訓練集ID之外的泛化識別。中心損失,范圍損失,間隔損失等通過增加額外的懲罰來壓縮類內差距或增加類間差距來提高識別率,但都是結合Softmax來訓練識別模型。然而,當身份數量增加到百萬級別時,基于分類的方法在分類層上 承受這巨大的GPU內存小號,并且需要為每個身份提供平衡和充足的訓練數據。對比損失和三元組損失使用了成對訓練策略。對比損失函數由正對和負對組成。損失函數的梯度拉攏正對,推開負對。三元組損失最小化錨與正樣本之間的距離,最大化錨與來自不同身份的負樣本之間的距離。然而,由于選擇有效的訓練樣本,對比損失和三元組損失的訓練過程非常困難。

  2. 基于角度和余弦間隔的損失。L-Softmax損失通過為每個身份添加乘性角度約束來提高特征區分度。SphereFace c o s ( m θ ) cos(m\theta) cos(mθ) 將L-Softmax應用于權值歸一化的深度人臉識別。由于余弦函數的非單調性,在SphereFace中應用分段函數來保證單調性。在SphereFace的訓練過程中,結合了Softmax損失,以方便和保證收斂。為了克服SphereFace的優化難度,加性余間隔際 c o s ( θ ) ? m cos(\theta)-m cos(θ)?m 將角間隔際移入余弦空間。加性余間隔際的實現和優化比SphereFace容易很多。與基于歐間隔際的損失相比,基于角和余間隔際的損失顯式地增加了對超球面體流形的判別性約束,這與人臉位于流形上的先驗是內在匹配的。

眾所周知,數據、網絡和損失這3個屬性對人臉識別模型的性能有著從高到低的影響。

2 創新點

在本文中,作者從上述的三個屬性為提高深度人臉識別做出貢獻。

  1. 作者以自動和手動兩種方式精細了訓練數據和測試數據。

  2. 本文提出的網絡結構在年齡和姿態的巨大變化下仍然具有魯棒性。并探索了速度和精度之間的權衡

  3. 作者提出了一種新的損失函數,加性角度間隔(ArcFace),用于學習高判別性的特征,以實現魯棒的人臉識別。

3 方法

在這里插入圖片描述
如圖1所示,所提出的損失函數 c o s ( θ + m ) cos(\theta+m) cos(θ+m) 直接基于L2歸一化權重和特征在角度(弧度)空間中最大化決策邊界。

4 模塊

4.1 Softmax

應用最廣泛的分類損失函數Softmax loss如下:
在這里插入圖片描述

其中 x i ∈ R d x_i∈R^d xi?Rd 表示第 i i i 個樣本的深層特征,屬于第 y i y_i yi? 類。本文將特征維數 d d d 設置為512。 W j ∈ R d W_j∈R^d Wj?Rd 表示最后一個全連接層中權重 W ∈ R d × n W∈R^{d×n} WRd×n 的第 j j j 列, b b b 為偏差項。批次大小和類別數分別為 m m m n n n。傳統的Softmax損失被應用于深度人臉識別。然而,Softmax損失函數沒有顯式地優化特征,使其對正樣本對具有較高的相似度得分,對負樣本對具有較低的相似度得分,從而導致性能較差。

4.2 權重歸一化

為了簡單起見,通常將固定偏差 b j = 0 b_j=0 bj?=0 。然而,對目標logit做出如下變換:
在這里插入圖片描述

然后,通過L2標準化來固定 ∣ ∣ W j = 1 ∣ ∣ ||W_j=1|| ∣∣Wj?=1∣∣ ,這使得預測結果只依賴特征向量和權重之間的夾角。
在這里插入圖片描述

在SphereFace的實驗中,L2權重歸一化對性能的提升不大。

4.3 乘性角度間隔

在SphereFace中,角度間隔 m m m 是通過角度上的乘法引入的:
在這里插入圖片描述

其中 θ y i ∈ [ 0 , π / m ] \theta_{y_i}∈[0,\pi/m] θyi??[0,π/m]。為了消除這個限制,用分段單調函數 ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi??) 代替 c o s ( m θ y i ) cos(m\theta_{y_i}) cos(mθyi??), ShereFace的表達式為:

其中 ψ ( θ y i ) = ( ? 1 ) k c o s ( m θ y i ) ? 2 k , θ y i ∈ [ k π m , ( k + 1 ) π m ] , k ∈ [ 0 , m ? 1 ] , m ≥ 1 \psi(\theta_{y_i})=(-1)^kcos(m\theta_{y_i})-2k,\theta_{y_i}∈[\frac{k\pi}{m},\frac{(k+1)\pi}{m}],k∈[0,m-1],m≥1 ψ(θyi??)=(?1)kcos(mθyi??)?2k,θyi??[m?,m(k+1)π?],k[0,m?1],m1 是控制角間隔際大小的整數。然而,SphereFace的實現過程中,為了保證訓練的收斂性,引入了Softmax損失監督,權重由一個動態的超參數 λ \lambda λ 控制。加上額外的Softmax損失后, ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi??)
實際上為:
在這里插入圖片描述

其中 λ \lambda λ 是一個額外的超參數,開始設置為1000,隨著訓練過程減小到5,以便每個類的角度空間更加緊湊。這種額外的動態超參數 λ \lambda λ 使得訓練變得相對棘手。

這里的符號有點亂。 Σ \Sigma Σ 處的 m m m 前文指出是batch size。 c o s cos cos 處的 m m m 是角間隔際。

SphereFace使用角度間隔,使得同類樣本的角度更小,不同類樣本的角度更大。對于同類樣本,當 m > 1 m>1 m>1 c o s ? ( m θ y i ) cos?(mθ_{yi}) cos?(mθyi?) 相比于 c o s ( θ y i ) cos(θ_{yi}) cos(θyi?) 更小,從而產生更大的損失迫使 θ y i θ_{yi} θyi? 變小來增加同類特征相似度。在超球面上,角度間隔 m m m 相當于在決策邊界上增加了一個額外的裕量,使得分類邊界更加嚴格。
在這里插入圖片描述

4.4 特征歸一化

特征歸一化被廣泛應用于人臉驗證,特征和權重歸一化背后的直觀解釋是去除徑向變化,并推動每個特征分布在超球流形上。作者通過L2歸一化和縮放 ∣ ∣ x i ∣ ∣ ||x_i|| ∣∣xi?∣∣ s s s 來固定 ∣ ∣ x i ∣ ∣ ||x_i|| ∣∣xi?∣∣,其中 s s s 是超球半徑。本文采用 s = 64 s=64 s=64 進行人臉識別實驗。基于特征和權重歸一化,我們可以得到 W j T x i = c o s θ j W_j^Tx_i=cos\theta_j WjT?xi?=cosθj?

如果將特征歸一化應用到SphereFace中,我們可以得到歸一化的SphereFace,記為SphereFace-FNorm:
在這里插入圖片描述

直接歸一化后,梯度可能過小,導致訓練速度變慢甚至停滯,引入縮放系數 s s s 可以增大梯度,保證訓練穩定性。

4.5 加性余弦間隔

在加性余弦間隔中,角度間隔被移到 c o s θ cos \theta cosθ 的外側。因此他們提出角度間隔損失:
在這里插入圖片描述

余弦間隔 m m m 設置為0.35。相比與SphereFace,加性余弦間隔(Cosine-Face)有三個優點:

  1. 非常容易實現,無需復雜的超參

  2. 在沒有Softmax監督的情況下,更加清晰,能夠收斂

  3. 性能提升明顯

c o s θ y i cos\theta_{y_i} cosθyi?? 需要大于 m m m 才能保證相似度為正,從而拉近了同類別特征。

4.6 加性角度間隔

雖然加性余弦間隔具有余弦空間到角度空間的一一對應關系,但這兩種間隔之間仍然存在差異。事實上,與余弦間隔相比,角度間隔具有更明確的幾何意義,角度空間中的間隔對應于超球面流形上的弧距離。

本文在 c o s θ cos \theta cosθ 內增加了一個間隔 m m m。當 θ ∈ [ 0 , π ? m ] \theta∈[0,\pi-m] θ[0,π?m] 時, c o s ( θ + m ) < c o s ( θ ) cos(\theta+m)<cos(\theta) cos(θ+m)<cos(θ) ,因此改約束對分類更加嚴格,提出的ArcFace定義為:
在這里插入圖片描述

如果將提出的加性角度間隔 c o s ( m + θ ) cos(m+\theta) cos(m+θ) 展開,則 c o s ( θ + m ) = c o s θ c o s m ? s i n θ s i n m cos(\theta+m)=cos\theta cosm-sin\theta sinm cos(θ+m)=cosθcosm?sinθsinm,與加性余弦間隔 c o s ( θ ) ? m cos(\theta)-m cos(θ)?m 相比,本文提出的 ArcFace 類似,但由于 s i n θ sin \theta sinθ 的緣故,間隔是動態的。

在圖2中,作者對所提出的ArcFace進行了說明。ArcFace不僅可以壓縮特征區域,還可以對應超球面上的測地距離。
在這里插入圖片描述

4.7 二值化情況下的比較

為了更好的理解從Softmax到ArcFace的過程,作者在表1和圖3中給出了二分類情況下的決策邊界。基于權重和特征歸一化,這些方法之間的區別在于把間隔放在了哪里。
在這里插入圖片描述

4.8 目標Logit分析

為了研究為什么SphereFace,CosineFace和ArcFace可以提高人臉識別性能,作者分析了訓練過程中的目標 logit 曲線和 θ \theta θ 分布。

如圖4(a)中,作者繪制了Softmax,SphereFace,CosineFace和ArcFace的logit曲線。對于SphereFace,最佳設置為 m = 4 , λ = 5 m=4,\lambda=5 m=4,λ=5,與 m = 1.5 , λ = 0 m=1.5,\lambda=0 m=1.5,λ=0 的曲線類似。然而,SphereFace的實現要求 m m m 為整數。當嘗試最小乘法間隔, m = 2 m = 2 m=2 λ = 0 λ = 0 λ=0 時,訓練不能收斂。因此,從Softmax中略微減小目標logit曲線,可以增加訓練難度,提高性能,但減小過多會導致訓練發散。

CosineFace和ArcFace都遵循了這一觀點。從圖4(a)中可以看出,CosineFace沿著 y y y 軸的負方向移動目標logit曲線,而ArcFace沿著 x x x 軸的負方向移動目標logit曲線。現在我們可以很容易的理解從Softmax到CosineFace和ArcFace的性能提升。

這里的移動是相較于softmax的目標logits曲線來看的。

對于邊界 m = 0.5 m = 0.5 m=0.5 的ArcFace,當 θ ∈ [ 0 、 180 ° ] θ∈[ 0、180 °] θ[0180°] 時,目標logit曲線不是單調遞減的。事實上,當 θ > 151.35 ° θ > 151.35 ° θ>151.35° 時,目標logit曲線上升。然而,如圖4 ( c )所示,當從隨機初始網絡開始時, θ θ θ 具有高斯分布,其中心位于 90 ° 90 ° 90°,最大角度低于 105 ° 105 ° 105°。ArcFace的增加間隔在訓練過程中幾乎從未達到。因此,不需要對此進行明確的處理。

這里是在 θ ∈ [ π ? m , π ] \theta∈[\pi-m,\pi] θ[π?m,π] 的情況。

在圖4 ( c )中展示了CosineFace和ArcFace在訓練開始、中間和結束三個階段的 θ θ θ 分布。分布中心由 90 ° 90 ° 90° 逐漸向 35 ° ? 40 ° 35°-40° 35°?40° 移動。在圖4 ( a )中,可以發現ArcFace的目標logit曲線在 30 ° ? 90 ° 30° - 90° 30°?90° 之間低于CosineFace的目標logit曲線。因此,所提出的ArcFace在該區間內比CosineFace施加了更嚴格的邊距懲罰。

在圖4 ( b )中展示了Softmax,CosineFace和ArcFace在訓練批次上估計的目標logit收斂曲線。我們還可以發現,在開始時,ArcFace的邊距懲罰比CosineFace重,因為紅色的點線比藍色的點線更低。在訓練結束時,ArcFace比CosineFace收斂得更好,因為 θ θ θ 的直方圖在左邊(圖4(c )),目標logit收斂曲線更高(圖4(b))。從圖4 (c )中,我們可以發現在訓練結束時,幾乎所有的 θ θ θ 都小于 60 ° 60 ° 60°

該域之外的樣本是最難的樣本,也是訓練數據集的噪聲樣本。即使CosineFace在 θ < 30 ° θ < 30° θ<30°時施加了更嚴格的邊界懲罰(圖4(a)),在訓練結束時也只有很少部分 θ \theta θ 達到了這個域圖4 ( c ) )。因此,我們也可以理解為何SphereFace在這一部分中即使有比較小的余量也能獲得非常好的性能。

總之,當 θ ∈ [ 60 ° 、 90 ° ] θ∈[ 60°、90°] θ[60°90°] 時,添加過多的間隔懲罰可能會導致訓練發散,例如. Sphere Face ( m = 2 , λ = 0 m = 2 , λ = 0 m=2,λ=0 )。當 θ ∈ [ 30 ° , 60 ° ] θ∈[ 30 ° , 60 °] θ[30°,60°] 時增加間隔可以潛在地提高性能,因為這一部分對應于最有效的半難的負樣本。當 θ < 30 ° θ < 30 ° θ<30° 時,增加間隔并不能明顯改善性能,因為這段時間對應的是最簡單的樣本。當我們回到圖4(a)并對 [ 30 ° , 60 ° ] [ 30 ° , 60 °] [30°,60°] 之間的曲線進行排序時,我們可以理解為什么在它們的最佳參數設置下,性能可以從Softmax,SphereFace,CosineFace到ArcFace提高。注意,這里的 30 ° 30 ° 30° 60 ° 60 ° 60° 分別為容易和困難訓練樣本的粗略估計閾值。

在這里插入圖片描述

5 效果

5.1 消融實驗

當使用conv3 × 3和step = 1作為第一個卷積層時,網絡輸出為7 × 7。相比之下,如果使用conv7 × 7和step = 2作為第一個卷積層,網絡輸出僅為3 × 3。從表2中可以明顯看出,在訓練過程中選擇較大的特征圖可以獲得更高的驗證精度,對應SE-LResNet50E。
在這里插入圖片描述

網絡結構設置實驗,多種設置如下:

  • Option-A:使用全局池化層( GP )

  • Option-B:在GP后使用一個全連接( FC )層

  • Option-C:在GP后使用FC -批標準化( BN )

  • Option-D:在GP后使用FC - BN -參數化校正線性單元( PReLu)

  • Option-E:在最后一個卷積層后使用BN - Dropout - FC - BN
    在這里插入圖片描述

權重衰減值實驗效果。
在這里插入圖片描述

角度間隔 m m m 的消融實驗。
在這里插入圖片描述

不同的損失的效果對比。
在這里插入圖片描述

不同backbone的消融實驗。
在這里插入圖片描述

5.2 和SOTA方法對比

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

通過使用Triplet Loss微調后的效果。
在這里插入圖片描述

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

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

相關文章

代碼隨想錄算法訓練營 | 圖論 | DFS

98. 所有可達路徑// DFS #include <bits/stdc.h> using namespace std;vector<vector<int>> result; vector<int> path;void dfs(const vector<list<int>> &graph, int i, int target) {if (i target) {result.push_back(path);retu…

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推薦指數&#xff1a;#paper/??#? 動機 本文探討了圖神經網絡&#xff08;GNN&#xff09;在遷移學習中“預訓練-微調”框架的局限性及改進方向。現有方法通過預訓練&#xff08…

迷你世界腳本方塊接口:Block

方塊接口&#xff1a;Block 彼得兔 更新時間: 2024-08-27 11:04:56 具體函數名及描述如下&#xff1a; 序號 函數名 函數描述 1 isSolidBlock(...) 是否是固體方塊 2 isLiquidBlock(...) 是否是液體方塊 3 isAirBlock(...) 是否是氣體方塊 4 getBl…

Windows下git疑難:有文件無法被跟蹤

Windows下git疑難&#xff1a;有文件無法被跟蹤 最近在寫一個c# WinFrom程序&#xff0c; 奇怪的是&#xff0c;frmMain.cs這個文件一直無法被跟蹤 研究了很久&#xff0c; 參考這一篇 https://blog.csdn.net/m0_37315653/article/details/83064810 git rm --cached ./ -r 之…

Live2d官方項目運行

Live2d官方項目運行 1-參考網址 教程網址&#xff1a;https://blog.csdn.net/qq_39123467/article/details/131735085live2d官方地址&#xff1a;https://live2d.com/cubism-sdk/download/ 2-上手實踐 1&#xff09;先打開官方項目-全部路徑打開2&#xff09;cd /CubismSdkFo…

BUU43 [BJDCTF2020]The mystery of ip 1

前置知識&#xff1a; X - Forwarded - For注入 X - Forwarded - For&#xff08;XFF&#xff09;是一個 HTTP 頭字段&#xff0c;用于記錄客戶端的真實 IP 地址。當客戶端請求經過代理服務器時&#xff0c;代理服務器會將客戶端的 IP 地址添加到 X - Forwarded - For 頭中。…

張岳教授:語言模型推理與泛化研究 | ICLR 2025 特邀報告與團隊專場

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入&#xff01; AITIME 01 ICLR 2025預講會特邀報告 AITIME 02 ICLR 2025預講會西湖大學張岳老師實驗室專場 01 AI生成文本的自動化檢測 Glimpse: Enabling White-Box Methods to Use Proprietary Models for Zero-Shot LLM-Ge…

MySQL SQL 優化專題

MySQL SQL 優化專題 1. 插入數據優化 -- 普通插入&#xff08;不推薦&#xff09; INSERT INTO tb_user VALUES(1,tom); INSERT INTO tb_user VALUES(2,cat); INSERT INTO tb_user VALUES(3,jerry);-- 優化方案1&#xff1a;批量插入&#xff08;推薦&#xff0c;不建議超過1…

【AI深度學習基礎】NumPy完全指南進階篇:核心功能與工程實踐(含完整代碼)

NumPy系列文章 入門篇進階篇終極篇 一、引言 在掌握NumPy基礎操作后&#xff0c;開發者常面臨真實工程場景中的三大挑戰&#xff1a;如何優雅地處理高維數據交互&#xff1f;如何在大規模計算中實現內存與性能的平衡&#xff1f;怎樣與深度學習框架實現高效協同&#xff1f;…

Python學習第十八天之深度學習之Tensorboard

Tensorboard 1.TensorBoard詳解2.安裝3.使用4.圖像數據格式的一些理解 后續會陸續在詞博客上更新Tensorboard相關知識 1.TensorBoard詳解 TensorBoard是一個可視化的模塊&#xff0c;該模塊功能強大&#xff0c;可用于深度學習網絡模型訓練查看模型結構和訓練效果&#xff08;…

【GraphQL API 漏洞簡介】

GraphQL API 漏洞簡介 一、漏洞原理與分類二、漏洞檢測方法三、典型利用方式四、工具推薦防御建議 GraphQL API 因其靈活性和高效性被廣泛應用&#xff0c;但也因設計和實現缺陷存在多種安全風險。以下從漏洞原理、檢測方法及利用方式三個維度進行詳細分析&#xff1a; 一、漏洞…

Windows逆向工程入門之MASM數據結構使用

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> ???鏈接點擊跳轉博客主頁 目錄 第一章&#xff1a;MASM數據定義體系精要 1.1 基礎數據類型全景 1.1.1 整型數據規范 1.1.2 浮點數據編碼 1.2 復合數據結構 1.2.1 多維數組定義 1.2.2 復雜結構體 第二章&#xf…

筑牢安全防線:工商業場所燃氣泄漏防護新方案

燃氣安全是企業經營不可逾越的生命線。在餐飲后廚、化工車間、酒店鍋爐房等場所&#xff0c;可燃氣體一旦泄漏&#xff0c;極易引發嚴重事故。如何實現精準監測、快速響應&#xff0c;成為工業及商業領域安全管理的核心訴求。旭華智能深耕安全監測領域&#xff0c;推出的工業及…

本地部署大數據集群前置準備

1. 設置VMware網段 虛擬網絡編輯器——更改設置——選擇VMnet8——子網改成192.168.88.0——NAT設置——網關設置為192.168.88.2 2. 下載CentOS操作系統 下載CentOS 7.6(1810)版本 3. 在VMware中安裝CentOS操作系統 創建新的虛擬機——典型——安裝光盤映像文件——輸入賬…

【藍橋杯單片機】第十二屆省賽

一、真題 二、模塊構建 1.編寫初始化函數(init.c) void Cls_Peripheral(void); 關閉led led對應的鎖存器由Y4C控制關閉蜂鳴器和繼電器 由Y5C控制 2.編寫LED函數&#xff08;led.c&#xff09; void Led_Disp(unsigned char ucLed); 將ucLed取反的值賦給P0 開啟鎖存器…

PyCharm接入本地部署DeepSeek 實現AI編程!【支持windows與linux】

今天嘗試在pycharm上接入了本地部署的deepseek&#xff0c;實現了AI編程&#xff0c;體驗還是很棒的。下面詳細敘述整個安裝過程。 本次搭建的框架組合是 DeepSeek-r1:1.5b/7b Pycharm專業版或者社區版 Proxy AI&#xff08;CodeGPT&#xff09; 首先了解不同版本的deepsee…

CSS 系列之:grid 布局

基本概念 <template><div class"parent"><div class"box">p1-1</div><div class"box">p1-2</div><div class"box">p1-3</div></div><div class"parent"><…

數學軟件Matlab下載|支持Win+Mac網盤資源分享

如大家所了解的&#xff0c;Matlab與Maple、Mathematica并稱為三大數學軟件。Matlab應用廣泛&#xff0c;常被用于數據分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人&#xff0c;控制系統等領域。 Matlab將數值分析、矩陣計算、科學…

水仙花數(華為OD)

題目描述 所謂水仙花數&#xff0c;是指一個n位的正整數&#xff0c;其各位數字的n次方和等于該數本身。 例如153是水仙花數&#xff0c;153是一個3位數&#xff0c;并且153 13 53 33。 輸入描述 第一行輸入一個整數n&#xff0c;表示一個n位的正整數。n在3到7之間&#x…

物聯網同RFID功能形態 使用場景的替代品

在物聯網&#xff08;IoT&#xff09;和自動識別技術領域&#xff0c;除了RFID標簽外&#xff0c;還有一些其他技術產品可以在形態和大小上與RFID標簽相似&#xff0c;同時提供類似或更強大的功能。以下是幾種能夠替代RFID標簽的產品&#xff1a; 一、NFC標簽 NFC&#xff08;…