Siamrpn++論文中文翻譯(詳細!)

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

SiamRPN++:具有非常深度網絡的Siamese視覺跟蹤的進化

【siamrpn++論文地址】

https://arxiv.org/abs/1812.11703

摘要

基于Siamese網絡的跟蹤器將跟蹤表示為目標模板和搜索區域之間的卷積特征互相關。然而,與最先進的算法相比,Siamese追蹤器仍然存在精度差距,它們不能利用來自深度網絡的特征,如ResNet-50或更深層次的網絡。在本文中,我們證明了其核心原因來自于缺乏嚴格的平移不變性。通過全面的理論分析和實驗驗證,我們通過一個簡單而有效的空間感知采樣策略打破了這一限制,成功地訓練了一個具有顯著性能收益的resnet驅動的跟蹤Siamese跟蹤器。

此外,我們提出了一種新的模型架構來執行分層和深度聚合,這不僅進一步提高了精度,而且減少了模型的大小。我們進行了廣泛的消融研究,以證明所提出的跟蹤器的有效性,它目前在五個大型跟蹤基準上獲得了最好的結果,包括OTB2015、VOT2018、UAV123、LaSOT和跟蹤網。我們的模型將被發布,以促進進一步的研究。

1 介紹

視覺物體跟蹤在過去的幾十年里受到了越來越多的關注,并一直是一個非常積極的研究方向。它在視覺監控[47]、人機交互[26]和增強現實[48]等不同領域都有廣泛的應用。雖然最近取得了很大的進展,但由于光照變化、遮擋和背景雜波等諸多因素,它仍然被普遍認為是一項非常具有挑戰性的任務。

最近,基于Siamese網絡的追蹤器[40,1,15,42,41,24,43,52,44]在社區中引起了人們的廣泛關注。這些Siamese跟蹤器通過為目標模板學習的特征表示和搜索區域之間的互相關,將視覺對象跟蹤問題表述為學習一般的相似性地圖。為了保證跟蹤效率,離線學習到的Siamese相似度函數通常在運行時間[40,1,15]期間被固定下來。CFNet跟蹤器[41]和DSiam跟蹤器[11]分別通過一個正在運行的平均模板和一個快速轉換模塊來更新跟蹤模型。SiamRNN跟蹤器[24]在Siamese網絡之后引入了區域建議網絡[24],并進行聯合分類和回歸進行跟蹤。DaSiamRPN跟蹤器[52]進一步引入了干擾物感知模塊,提高了模型的識別能力。

盡管上述Siamese跟蹤器獲得了出色的跟蹤性能,特別是在平衡精度和速度方面,即使是性能最好的Siamese跟蹤器,如SiamPRN,在OTB2015 [46]等跟蹤基準上,精度仍然與最先進的[5]有顯著的差距。我們觀察到,所有這些跟蹤器都在類似于AlexNet [23]的架構上建立了網絡,并多次嘗試訓練具有像ResNet [14]這樣的更復雜架構的Siamese跟蹤器,但沒有性能提高。受此觀察結果的啟發,我們對現有的Siamese追蹤器進行了分析,發現其核心原因來自于對嚴格平移不變性的破壞。由于目標可能出現在搜索區域的任何位置,目標模板學習到的特征表示應該保持空間不變,我們進一步從理論上發現,在現代深度架構中,只有AlexNet的零填充變體滿足這一空間不變性限制。

為了克服這一限制,并使用更強大的深度架構來驅動Siamese跟蹤器,通過廣泛的實驗驗證,我們引入了一個簡單的但有效的采樣策略打破了Siamese跟蹤器的空間不變性限制。我們使用ResNet作為骨干網絡,成功地訓練了一個基于SiamRPN [24]的跟蹤器,并獲得了顯著的性能改進。得益于ResNet架構,我們提出了一種分層的特征加重結構,它有助于跟蹤器從多個層次上學習到的特征中預測相似性圖。通過對Siamese網絡結構的相互關聯分析,發現其兩個網絡分支在參數數上高度不平衡;因此,我們進一步提出了一種深度可分離的相關結構,它不僅大大減少了目標模板分支的參數數,而且穩定了整個模型的訓練過程。此外,還觀察到一個有趣的現象,即相同類別的物體在相同的通道上有較高的響應,而其余通道的響應被抑制。正交特性也可以提高跟蹤性能。

綜上所述,這項工作的主要貢獻分為四個部分:

?我們對Siamese追蹤器進行了深入的分析,并證明了在使用深度網絡時,精度的下降是由于嚴格平移不變性的破壞。

?我們提出了一種簡單而有效的采樣策略來打破空間不變性限制,成功地訓練了由ResNet體系結構驅動的Siamese跟蹤器。

?我們提出了一種用于互相關操作的分層特征聚合結構,它幫助跟蹤器從多個層次上學習到的特征中預測相似度圖。

?我們提出了一種深度可分離的相關結構來增強互相關,以產生與不同語義相關的多個相似性映射。

基于上述理論分析和技術貢獻,我們開發了一個高效的視覺跟蹤模型,建立了一個新的最先進的跟蹤精度,同時在35 FPS的速度下高效運行。提出的跟蹤器,稱為SiamRPN++,在五個最大的跟蹤基準上持續獲得最佳跟蹤結果,包括OTB2015 [46]、VOT2018 [21]、UAV123 [31]、LaSOT [10]和跟蹤網[30]。此外,我們提出了一種使用MobileNet[18]骨干的跟蹤器的快速變體,以保持在70幀/秒下運行的競爭性能。為了便于對視覺跟蹤方向的進一步研究,我們將發布SiamRPN++跟蹤器的源代碼和訓練模型。

2 相關工作

在本節中,我們將簡要介紹最近的跟蹤器,特別關注基于Siamese網絡的跟蹤器[40,1]。此外,我們還描述了深度體系結構的最新發展。

由于構建了新的基準數據集[45,46,19,21,10,30]和改進的方法[16,51,6,7,17,32,9,5,43,52,49],視覺跟蹤在過去十年中得到了快速的發展。標準化基準[45,46,10]為與不同算法的比較提供了公平的測試平臺。每年舉行的跟蹤挑戰,[22,19,20,21]一直在推動跟蹤性能。隨著這些進步,許多有前途的跟蹤算法已經被提出。Bolme等人[3]的開創性工作將信號處理場的卷積定理引入視覺跟蹤,并將對象模板匹配問題轉換為頻域內的相關操作。通過這種變換,基于相關濾波器的跟蹤器不僅可以獲得高效的運行速度,而且如果使用適當的特征是[16,50,51,8,6],還可以提高精度。隨著深度學習模型在視覺跟蹤中的廣泛應用,基于深度特征表示的相關濾波的跟蹤算法在流行的跟蹤基準[45,46]和挑戰[22,19,20]中獲得了最先進的精度。

近年來,基于Siamese網絡的跟蹤器因其良好的跟蹤精度和效率[40,1,15,42,41,12,24,43,52,44]而受到廣泛關注。這些跟蹤器將視覺跟蹤定義為一個交叉關系問題,并有望更好地利用從端到端學習中獲得的深度網絡的優點。為了從兩個分支的互相關中生成一個相似性圖,他們訓練了一個y形的神經網絡,它連接了兩個網絡分支,一個用于對象模板,另一個用于搜索區域。此外,這兩個分支可以在跟蹤階段[40,1,15,43,24,52]期間保持固定,或在線更新,以適應目標[42,41,12]的外觀變化。目前最先進的Siamese跟蹤器[24,52]提高了區域提案網絡對Siamese網絡的跟蹤性能,并產生了非常有希望的結果。然而,在OTB基準測試[46]上,他們的跟蹤精度仍然與ECO [5]和MDNet [32]等最先進的深度跟蹤器留下了相對較大的差距。

隨著Alex等人[23]在2012年提出的現代深度體系結構AlexNet,對網絡體系結構的研究迅速發展,提出了許多復雜的深度體系結構,如VGGNet [37]、谷歌Net[38]、ResNet [14]和移動網[18]。這些深度的架構不僅提供了對神經網絡設計的更深入的理解,而且推動了許多計算機視覺任務的先進水平如圖像檢測[33],圖像分割[4],和人位姿估計[39]。在深度視覺跟蹤器中,網絡體系結構通常包含不超過5個由AlexNet或VGGNet量身定制的結構層。這一現象解釋了淺層特征主要有助于物體[34]的準確定位。在這項工作中,我們認為,如果用整個Siamese網絡適當地訓練模型,使用更深入的模型可以顯著提高Siamese跟蹤器的性能。

3 Siamese Tracking with Very Deep Networks

這項工作最重要的發現是,如果基于Siamese網絡的跟蹤算法配備了更深層次的網絡,那么它的性能可以顯著提高。然而,簡單地通過直接使用像ResNet這樣更深的網絡來訓練Siamese跟蹤器并不能獲得預期的性能提高。我們發現潛在的原因很大程度上涉及到Siamese追蹤器的內在限制,因此,在提出SiamRPN++模型之前,我們首先對Siamese追蹤網絡進行了更深入的分析。

3.1. Analysis on Siamese Networks for Tracking

基于Siamese網絡的跟蹤算法[40,1]將視覺跟蹤定義為一個互相關問題,并從具有Siamese網絡結構的深度模型中學習跟蹤相似度圖,其中一個分支用于學習目標的特征表示,另一個分支用于搜索區域。目標補丁通常在序列的第一幀中給出,可以看作是一個樣本z。目標是在語義嵌入空間φ(·)中,從下面的框架x中找到最相似的補丁(實例):

其中,b用于模擬相似度值的偏移量。這個簡單的匹配函數自然意味著在設計Siamese跟蹤器的兩個內在的限制。

? Siamese追蹤器中使用的收縮部分和特征提取器具有嚴格平移不變性的內在限制,

,其中是翻譯移位子窗口Operator,保證了高效的訓練和推理。

? 收縮部分對結構的對稱性有一個內在的限制,收縮部分對結構對稱性具有固有的限制,即f(z,x?,)= f(x ,,z),適用于相似性學習。

經過詳細的分析,我們發現防止使用深度網絡進行Siamese跟蹤的核心原因與這兩個方面有關。具體地說,其中一個原因是,深度網絡中的填充會破壞嚴格的平移不變性。另一個問題是,RPN需要不對稱的特征來進行分類和回歸。我們將引入空間感知采樣策略來克服第一個問題,并在Sect.3,4節中討論第二個問題。

嚴格的平移不變性只存在于沒有填充網絡中,如修改后的AlexNet [1]。以前基于Siamese的網絡[1,42,41,24,52]被設計為淺層的,以滿足這個限制。然而,如果所采用的網絡被ResNet或MobileNet等現代網絡所取代,填充將不可避免地會使網絡更加深入,從而破壞了嚴格的平移不變性限制。我們的假設是,違反這一限制將導致空間偏差。

我們通過在一個填充網絡上的模擬實驗來驗證我們的假設。位移定義為數據增強中均勻分布所產生的最大平移范圍。我們的模擬實驗進行如下。首先,在三個分段訓練實驗中,將目標放置在具有不同移位范圍(0、16和32)的中心。收斂后,我們對測試數據集上生成的熱圖進行聚合,然后將結果可視化到圖1中。在第一次零位移的模擬中,邊界區域的概率降為零。它表明,盡管出現了測試目標,但仍能學習到強烈的中心偏差。另外兩個模擬表明,增加位移范圍將逐漸防止模型崩潰到這個平凡的解。定量結果表明,32位移的聚合熱圖更接近于測試對象的位置分布。空間感知采樣策略可以有效緩解了填充網絡對嚴格平移不變性的破壞。

圖1.當使用不同的隨機翻譯時,正樣本的先驗概率關系的可視化。在±32像素內進行隨機翻譯后,分布變得更加均勻。

為了避免對物體施加強烈的中心偏差,我們通過空間感知采樣策略,用ResNet-50主干來訓練SiamRPN。如圖2所示,在VOT2018上,零移位的性能降低到0.14,一個合適的移位(±64像素)對于訓練深度Siamese跟蹤器至關重要。

3.2. ResNet-driven Siamese Tracking

基于以上分析,可以消除中心偏差的影響。一旦我們消除了對中心位置的學習偏差,任何現成的網絡(如MobileNet,ResNet)都可以用來在領域適應后進行視覺跟蹤。此外,我們還可以自適應地構建網絡拓撲結構,揭示了深度網絡的視覺跟蹤性能。

在本小節中,我們將討論如何將一個深度網絡轉移到我們的跟蹤算法中。特別是,我們主要針對ResNet-50 [14]進行實驗。原始的ResNet有32像素的大步幅,不適合密集的Siamese網絡預測。如圖3所示,我們通過將conv4和conv5塊修改為單位空間步幅,將最后兩個塊的有效步幅從16像素和32像素減少到8像素,并通過擴張卷積[27]增加其接受域。在每個塊輸出上附加一個額外的1×1的卷積層,以將信道減少到256。

在[24]之后,我們使用互相關層和完全卷積層的組合來組裝一個頭模塊來計算分類分數(用S表示)和邊界框回歸變量(用B表示)。Siamese人的RPN塊用P表示。

此外,我們發現對ResNet仔細微調將提高性能。通過將ResNet提取器的學習速率設置為比RPN部分小的10倍,使特征表示更適合于跟蹤任務。與傳統的Siamese方法不同,深度網絡的參數是以端到端方式聯合訓練的。據我們所知,我們確實是第一個在深度Siamese網絡(> 20層)上實現端到端學習,以進行視覺跟蹤。

3.3. Layer-wise Aggregation(分層聚合)

在利用了像ResNet-50這樣的深層網絡后,聚合不同的深層就成為可能了。直觀地說,視覺跟蹤需要豐富的表示,能夠跨越從低到高的級別,從小到大的尺度,以及從精細到粗的分辨率。即使在卷積網絡中使用特征的深度,隔離一層也是不夠的:復合和聚合這些表示可以提高識別和定位的推理。

在之前的工作中,只使用像AlexNet這樣的淺層網絡,多層次特性不能提供非常不同的表示。然而,考慮到接受域的差異很大,ResNet的不同層更有意義。早期層的特征主要集中于顏色、形狀等低層次信息,對于定位至關重要,而缺乏語義信息;后者的特征具有豐富的語義信息,在運動模糊、巨大變形等挑戰場景中是有益的。假設使用這種豐富的層次信息有助于幫助跟蹤。

在我們的網絡中,提取多分支特征來協同推斷目標定位。對于ResNet- 50,我們探索了從最后三個殘差塊中提取的多層次特征,用于我們的多層聚合。我們將這些輸出分別稱為F3(z)、F4(z)和F5(z)。如圖3所示,將conv3、conv4、conv5的輸出分別輸入三個SiameseRPN模塊。

圖3.我們所提議的框架的說明。給定一個目標模板和搜索區域,該網絡通過融合來自多個Siamese區域建議(SiamRPN)塊的輸出來輸出一個密集的預測。每個SiamRPN塊顯示在右邊。

由于三個RPN模塊的輸出尺寸具有相同的空間分辨率,因此直接對RPN輸出采用加權和。一個加權融合層結合了所有的輸出。

由于組合權重的域不同,因此將分離組合權重進行分類和回歸。該權重與網絡一起離線地進行端到端優化。

與以前的工作相比,我們的方法沒有明確地結合卷積特征,而是分別學習分類和回歸。請注意,隨著主干網絡深度的顯著增加,我們可以從足夠的視覺-語義層次結構的多樣性中獲得實質性的收益。

3.4. Depthwise Cross Correlation

互相關模塊是嵌入兩個分支信息的核心操作。SiamFC [1]利用交叉相關層獲得目標定位的單通道響應圖。在SiamRPN [24]中,通過添加一個巨大的卷積層來擴展通道(UP-Xcorr),交叉關聯被擴展到嵌入更高層次的信息,如錨點。較重的上通道模塊使參數分布嚴重不平衡(即RPN模塊包含20M參數,而特征提取器在[24]中只包含4M參數),這使得SiamRPN的訓練優化困難。

在本小節中,我們提出了一個輕量級的互相關層,稱為深度互相關(DW-XCorr),以實現有效的信息關聯。DW-XCorr層包含的參數比SiamRPN中使用的UP-XCorr少10倍,而性能與之相當。為了實現這一點,我們采用了一個conv-bn塊來調整每個殘差塊的特征,以適應跟蹤任務。至關重要的是,邊界盒預測和基于錨點的分類都是不對稱的,這與SiamFC不同(見See Sect. 3.1). 為了編碼差異,模板分支和搜索分支通過兩個非共享的卷積層。然后對兩個具有相同信道數的特征圖進行逐信道的相關操作。附加了另一個conv-bn-relu塊來融合不同的通道輸出。最后,附加了分類或回歸輸出的最后一個卷積層。

圖4。不同的互相關層的說明。(a)交叉相關(XCorr)層預測了SiamFC [1]中目標模板和搜索補丁之間的單通道相似性圖。(b)上行通道交叉相關(UP-XCorr)層通過在SiamRPN [24]中級聯一個重卷積層和幾個獨立的XCorr層來輸出多通道相關特征。(c)深度交叉相關(DW-XCorr)層預測了模板和搜索補丁之間的多通道相關特征。

通過將互相關替換為深度相關,我們可以大大降低計算成本和內存使用。這樣,模板和搜索分支上的參數數量就得到了平衡,從而使訓練過程更加穩定。

此外,圖5中還說明了一個有趣的現象。同一類別的物體在同一通道上有較高的響應(148通道的車,222通道的人,226通道的臉),而其余通道的響應被抑制。這一性質可以理解為由深度互相關所產生的通道級特征幾乎是正交的,每個通道都代表一些語義信息。我們也分析了熱圖時,當使用上通道互相關和反應圖是較少解釋的。

圖5。conv4中深度相關輸出的通道。conv4共有256個通道,但只有少數通道在跟蹤過程中具有高響應。因此,我們選擇了第148、222、226個通道作為演示,即圖中的第2、3、4行。第一行包含來自OTB數據集[46]的6個相應的搜索區域。不同的通道代表不同的語義,第148通道對汽車的響應較高,而對人和臉的響應較低。第222頻道和第226頻道對人物和面孔分別有較高的反應。

4 實驗結果

4.1 培訓數據集和評估

訓練:我們的架構[14]的主干網絡在ImageNet [36]上進行了預訓練,用于圖像標記,這已經被證明是對其他任務[13,27]的一個非常好的初始化。我們在COCO [25]、ImageNet DET [36]、ImageNet VID和YouTube邊界盒數據集[35]的訓練集上訓練網絡,并學習如何測量一般對象之間的相似性的通用概念。在訓練和測試中,我們使用127像素的模板補丁,255像素的搜索區域。

評價:我們專注于在OTB2015 [46]、VOT2018 [21]和UAV123 [31]上的短期單目標跟蹤。我們使用VOT2018-LT [21]來消除長期設置。在長期跟蹤中,物體可能會離開視野或長時間被完全遮擋,這比短期跟蹤更具挑戰性。我們還分析了我們的方法在LaSOT [10]和TrackeingNet[30]上的推廣,這是最近兩個最大的單目標跟蹤基準。

4.2 實施細節

網絡架構。在實驗中,我們遵循[52]來進行訓練和推理設置。我們將兩個兄弟卷積層連接到減步的ResNet-50(部分。3.2)使用5個錨點進行方案分類和邊界盒回歸。三個隨機初始化的1×1卷積層附加到conv3、conv4、conv5上,將特征維數降到256。

優化器。最優化SiamRPN++采用隨機梯度下降(SGD)進行訓練。我們使用超過8個GPU的同步SGD,每個小批總共128對(每個GPU16對),這需要12個小時才能收斂。我們使用前5步的熱身學習率為0.001來訓練RPN剎車。在最后的15個學習周期中,對整個網絡進行端到端訓練,學習率從0.005呈指數衰減到0.0005。重量衰減為0.0005,動量為0.9。訓練損失是分類陽離子損失和回歸的標準平滑L1損失的總和。

4.3 消融實驗

骨干體系結構。特征提取器的選擇是至關重要的,因為參數的數量和層的類型直接影響跟蹤器的內存、速度和性能。我們比較了不同的網絡架構的視覺跟蹤。圖6顯示了使用AlexNet、ResNet-18、ResNet-34、ResNet-50和MobileNet-v2作為骨干的性能。我們報告了OTB2015上成功面積曲線下(AUC)與ImageNet上前1精度的性能。我們觀察到,我們的SiamRPN++可以受益于更深層次的卷積神經網絡。

圖6 . ImageNet的最高精對比。2015年OTB的預期平均重疊(EAO)得分。

層次特征聚合。為了研究分層特征聚合的影響,我們首先要在ResNet-50上訓練三個具有單一RPN的變體。我們的經驗發現,conv4單獨在EAO中可以達到0.374的競爭性能,而較深層和較淺層的性能下降了4%。通過結合conv4和conv5這兩個分支獲得了改善,但對其他兩種組合沒有觀察到改善。盡管如此,健壯性還是增加了10%,這是我們的跟蹤器的關鍵漏洞。這意味著我們的跟蹤器還有改進的空間。在聚合所有三層后,準確性和穩健性都穩步提高,VOT和OTB的收益在3.1%到1.3%之間。總的來說,分層特征聚合在VOT2018上產生了0.414的EAO得分,比單層基線高出4.0%。

深度相關性。我們將原來的上通道交叉相關層與所提出的深度交叉相關層進行了比較。如表1所示,所提出的深度相關性在VOT2018年VOT上提高了2.3%,在OTB2015年OTB上提高了0.8%證明了深度相關性的重要性。這在一定程度上是由于兩個分支的參數分布平衡,使學習過程更加穩定,收斂性更好。

表1。在VOT2018和OTB2015上對提議的跟蹤器的消融研究。L3、L4、L5分別代表conv3、conv4、conv5。微調表示骨干是否被離線訓練。Up/DW表示Up通道相關和深度相關。

4.4 與最先進技術的比較

這部分直接看論文原文效果更好。

5 結論

在本文中,我們提出了一個統一的框架,稱為SiamRPN++,用于端到端訓練一個深度Siamese網絡進行視覺跟蹤。我們展示了理論和經驗的證據,如何訓練一個深度網絡的Siamese跟蹤器。我們的網絡由一個多層聚合模塊組成,它組裝連接的層次來聚合不同層次的表示,以及一個深度相關層,這允許我們的網絡減少計算成本和冗余參數,同時也導致更好的收斂。使用SiamRPN++,我們實時獲得了VOT2018的最新結果,顯示了SiamRPN++的有效性。SiamRPN++還在LaSOT和跟蹤網等大型數據集上獲得了最先進的結果,顯示了其通用性。

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

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

相關文章

【STA】多場景時序檢查學習記錄

單周期路徑 建立時間時序檢查 在時鐘的有效沿到達觸發器之前,數據應在一定時間內保持穩定,這段時間即觸發器的建立 時間。滿足建立時間要求將確保數據可靠地被捕獲到觸發器中。 建立時間檢查是從發起觸發器中時鐘的第一個有效沿到捕獲觸發器中時鐘后面…

理解大模型的5個關鍵公式

理解大模型的5個關鍵公式_嗶哩嗶哩_bilibili PPT:https://link.excalidraw.com/p/readonly/aBWlNjEckdUlrszwwo6V

基于springboot+vue的社區醫院管理系統

博主主頁:貓頭鷹源碼 博主簡介:Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰,歡迎高校老師\講師\同行交流合作 ?主要內容:畢業設計(Javaweb項目|小程序|Pyt…

chatgpt-3的文章生成器有哪些?可以批量生成文章的生成器

GPT-3(Generative Pre-trained Transformer 3)作為人工智能領域的一項重大突破,開啟了新一代的文本生成技術。同時市面上也涌現出了一些GPT-3文章生成器,為用戶提供了快速、高效地生成各種類型文章的工具。本文將介紹一些中國的GP…

unity-unity2d基礎操作筆記(三)0.5.000

目標是:牢記以下137條操作,越級上升到中級階段 unity-unity2d基礎操作筆記(三) 一百零一、如何操作一個游戲物體由多個部分組成的動畫一百零二、如何使用rigidbody 2d進行物體移動一百零三、獲取游戲物體身上的組件方法一百零四、代碼控制物體朝向一百零五、不使用插件,純…

C#上位機調試經驗

1.使用Visual Studio的遠程工具 因為上位機軟件安裝在工控機上,不方便調試。如果直接把代碼放在工控機上,又不太安全。 可以在工控機上安裝一個Visual Studio的遠程工具,把隨身帶的筆記本電腦通過網線插在工控機上 這樣可以在筆記本上使用…

s3cmd工具使用

1. 安裝s3cmd工具 [roottestserver01 ~]# yum install s3cmd 2. 配置s3cmd, 按提示輸入相應的ak,sk,endpoint等信息 [roottestserver01 ~]# s3cmd --configure 3. s3cmd使用 [roottestserver01 ~]# s3cmd mb s3://abc (創建一個桶&am…

python筆記_程序流程控制

A,順序控制 程序從上到下逐行執行 python定義變量時,會合法地向前引用 age 1 age2 age 1 age2 age 1 age 1 ——>錯誤,age應在age2之前 B,分支控制 1,單分支if 語法 if 條件表達式 : 代碼塊 說明…

【六】【SQL】多表查詢,笛卡爾積

笛卡爾積 笛卡爾積發生在當你在查詢中將兩個或多個表進行交叉連接(CROSS JOIN)或者沒有指定任何連接條件時。假設第一個表有M行,第二個表有N行,那么結果集將包含M x N個記錄。在大多數情況下,笛卡爾積并不是你想要的結…

數字化轉型導師堅鵬:證券公司數字化思維升級之道

證券公司數字化思維升級之道 ——數字化思維之六脈神劍 課程背景: 很多證券公司存在以下問題: 不知道數字化轉型如何改變思維模式? 不清楚需要建立什么樣的數字化思維? 不知道如何開展數字化思維提升工作? 課…

Redis之十:Spring Data Redis --- CrudRepository方式

SpringData Redis CrudRepository方式 Spring Data Redis 的 CrudRepository 是 Spring Data 框架中用于提供基礎 CRUD(創建、讀取、更新和刪除)操作的一個接口。在與 Redis 集成時,盡管 Redis 是一個鍵值存儲系統,并沒有像關系型…

華為機試真題實戰應用【算法代碼篇】-去除多余空格(附Java、C++和python代碼)

目錄 問題描述 輸入描述 輸出描述 樣例 思路解析 代碼實現

關于福彩歷史數據采集器和體彩歷史數據采集器的下載安裝說明

前段時間因為研究基于人工神經網絡(深度學習,所謂的“AI”算法)對3D開獎數據進行預測,開發了兩款瀏覽器插件----“福彩歷史數據采集器”和“體彩歷史數據采集器”。之所以開發這兩款插件,是因為不管是基于什么樣的方式…

Unity 游戲設計模式:觀察者模式

本文由 簡悅 SimpRead 轉碼, 原文地址 mp.weixin.qq.com 在 unity 游戲設計中,觀察者模式(Observer Pattern)有著重要的作用,它主要用于實現對象之間的一對多的依賴關系,當一個對象的狀態發生變化時&#x…

【QT+QGIS跨平臺編譯】之六十三:【QGIS_CORE跨平臺編譯】—【錯誤處理:未定義的類QgsMapLayer - QgsMapLayerModel】

文章目錄 一、未定義的類QgsMapLayer二、解決辦法 一、未定義的類QgsMapLayer 報錯&#xff1a; 二、解決辦法 QgsMapLayerModel.h文件中 ①第27行修改為&#xff1a; #include "QgsMapLayer.h" ②第23行增加&#xff1a; #include <QPointer>

Github 2024-03-03 開源項目日報Top9

根據Github Trendings的統計&#xff0c;今日(2024-03-03統計)共有9個項目上榜。根據開發語言中項目的數量&#xff0c;匯總情況如下&#xff1a; 開發語言項目數量非開發語言項目4Rust項目1C項目1Jupyter Notebook項目1Python項目1Shell項目1 任天堂Switch模擬器yuzu&#x…

將jar程序封裝為docker鏡像 shell腳本

將JAR程序封裝為Docker鏡像通常涉及編寫一個Dockerfile&#xff0c;然后使用docker build命令構建鏡像。然而&#xff0c;如果你想要通過一個shell腳本來自動化這個過程&#xff0c;你可以創建一個腳本&#xff0c;該腳本首先創建一個Dockerfile&#xff0c;然后使用docker bui…

嵌入式驅動學習第一周——linux設備管理模型

前言 現在來聊點原理性的東西——linux設備管理模型 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博主并訂閱本專欄&#xff0c;一起討論一起學習。現在關注就是老粉啦&#xff01; 行文目錄…

編寫dockerfile掛載卷

編寫dockerfile文件 [rootwq docker-test-volume]# vim dockerfile1 [rootwq docker-test-volume]# cat dockerfile1 FROM centosVOLUME ["volume01","volume02"]CMD echo "------end------" CMD /bin/bash [rootwq docker-test-volume]#使用do…

leetcode:51.N皇后(復習)

題目理解&#xff1a;&#xff08;回溯算法&#xff09; 樹形結構——層數代表行數&#xff0c;遞歸的深度就是總行數。 代碼實現&#xff1a;