1. 程式人生 > >章國鋒:黑暗中的前行--複雜環境下的魯棒SfM與SLAM | VALSE2017之十五

章國鋒:黑暗中的前行--複雜環境下的魯棒SfM與SLAM | VALSE2017之十五

點選上方“深度學習大講堂”可訂閱哦!

編者按:無人系統在未知環境中的移動,恰如人在黑暗中前行,是一個不斷通過感測器對周圍世界進行摸索感知的過程。這種感知不僅會受到外部環境、氣候條件、光照變化的影響,還會受到自身的運動模式、硬體條件等的限制。因而,如何在複雜環境下,仍能保證方位定位與三維重建的精度,已經成為學術界及工業界亟待解決的問題。在本文中,來自浙江大學的章國鋒副教授將為大家講述,如何在複雜環境下構建魯棒的SfM(運動恢復結構)和SLAM(同時定位與地圖構建)。文末,大講堂特別提供文中提到所有文章的下載連結。

640?wx_fmt=png&wxfrom=5&wx_lazy=1640?wx_fmt=png&wxfrom=5&wx_lazy=1

什麼是SLAM?

SLAM英文全名Simultaneous Localization and Mapping,翻譯為同時定位與地圖構建,主要解決在未知環境中,如何進行自身方位的定位,並同時構建三維環境的地圖。它是機器人和計算機視覺領域的一個基本問題,有非常廣泛的應用,比如可以應用於增強現實、虛擬現實、機器人和無人駕駛等領域。基本上,需要定位和三維感知的應用都需要用到SLAM技術。

0?wx_fmt=png

如上面的SLAM執行結果所示,裝置根據感測器的資訊可以:

1.計算自身位置(在空間中的位置和朝向)

2.構建環境地圖(稀疏或者稠密的三維點雲)

0?wx_fmt=png

SLAM系統常用的框架

自2007年PTAM工作出來之後,現在的SLAM方法基本上都採用了並行跟蹤和建圖框架,一般包含以下幾個部分:

  • 輸入:可以是RGB影象、深度圖,甚至IMU測量值;

  • 前臺執行緒:根據感測器資料進行跟蹤求解,實時恢復每個時刻的裝置方位;

  • 後臺執行緒:對三維點雲和關鍵幀的位姿進行區域性或全域性優化,減少誤差累積;同時對場景進行迴路檢測並進行閉合;

  • 輸出:裝置實時位姿和三維點雲。

0?wx_fmt=png

SfM & Visual SLAM

這裡先講一下Structure from Motion和Visual SLAM的區別。

SfM可以分為離線和實時的,而實時的SfM其實就是Visual SLAM。Visual SLAM主要採用攝像頭感測器,根據攝像頭的數目可以分為單目攝像頭、雙目攝像頭和多目攝像頭等。現在的Visual SLAM也在結合其它一些感測器,比如手機上的廉價IMU、GPS和一些深度攝像頭來做到更加魯棒的SLAM。

以視覺為主的SLAM技術的優勢:

  • 硬體成本低廉

  • 小範圍內定位精確度較高

  • 無需預先佈置場景

0?wx_fmt=png

Visual SLAM 主要挑戰

Visual SLAM已經有幾十年的歷史,雖然理論上趨向成熟,但在複雜環境下的落地還面臨著諸多挑戰,比如:

  • 如何處理迴圈迴路序列和多視訊序列,如何閉合迴路,消除誤差累積;

  • 如何高效高精度地處理大尺度場景;

  • 如何處理動態場景;

  • 如何處理快速運動和強旋轉。

0?wx_fmt=png

我們課題組的SfM & SLAM工作

圍繞著以上這些問題,我們課題組最近幾年做了一些相關工作,總結如下(基本每一個工作都有對應的系統):

研發了一個大尺度運動恢復結構系統ENFT-SFM,能夠高效地處理迴圈迴路和多視訊序列;在單目SLAM方面,主要做了三個方面的工作,其中ENFT-SLAM是在ENFT-SFM上的進一步改進和實時化,能在大尺度場景下實時執行,RDSLAM則主要針對動態場景做了優化,而RKSLAM專為基於移動終端的增強現實應用設計,速度非常快,可以在移動裝置上實時執行。另外,針對RGB-D攝像頭,我們最近也做了一個基於關鍵幀的同時定位與稠密地圖構建系統RKD-SLAM。接下來將分五部分做詳細介紹。

(一)ENFT-SFM

0?wx_fmt=png0?wx_fmt=png

迴圈迴路序列和多視訊序列的運動恢復結構主要存在兩個難題:

第一個難題:如何將不同子序列上的相同特徵點高效地匹配起來,比如一朵花從視野中出去了,過了一會兒又重新進入視野,如何把這些公共的特徵點高效地匹配起來;

第二個難題:對於大尺度場景,如何高效地進行全域性優化,消除誤差累積,解決重建漂移問題。

0?wx_fmt=png

為了解決第一個難題,我們提出了ENFT (Efficient Non-Consecutive Feature Tracking)方法。

它可以分解成兩個步驟:一個是連續的特徵跟蹤,另一個是非連續的軌跡匹配。在連續的特徵跟蹤上,我們提出了一個兩遍匹配方法,可以顯著提高特徵點的跟蹤軌跡壽命,不過這裡主要重點講述非連續的特徵點軌跡匹配。

0?wx_fmt=png

要做非連續幀的特徵軌跡匹配,首先需要知道哪兩幀之間有共同內容,否則採用暴力匹配,計算複雜度非常高。這部分可以用一些類似bag of words 的方法快速估計匹配矩陣,匹配矩陣的橫縱座標值代表幀號,矩陣元素的數值代表某兩幀之間的可能匹配點的數量。

0?wx_fmt=png

但因為這種匹配並不精確,所以匹配矩陣僅是一個對幀間相似度的近似估計。因此,完全信任匹配矩陣選取影象對進行匹配是不可行的,且計算效率低。我們由此提出將特徵匹配和匹配矩陣的優化同時迭代地進行:

  • 根據選擇的影象對的特徵匹配結果對匹配矩陣進行優化;

  • 根據更新的匹配矩陣更可靠地選擇出有公共內容的影象對進行特徵匹配。

這個方法可以非常高效地將有公共內容的影象對找出來並進行匹配,幾乎沒有冗餘的計算,而且對初始匹配矩陣不敏感。右下角可以看到,(a)和(b)是兩個差異非常大的初始匹配矩陣,經過優化之後,最終得到的匹配矩陣(c)和(d)非常接近。只有底下中間的一小塊有點差異,這是因為(b)在這裡沒有初始點,後續優化無法擴展出來

0?wx_fmt=png

還需要進行一個全域性優化,這裡主要用到集束調整。所謂集束調整,就是把所有相機的引數和三維點雲放在一起優化,所以它的變數數目非常龐大,需要解一個非常大的矩陣,因為三維點數目可以幾千萬甚至上億。所以對於一個非常大尺度的場景(比如城市規模的),傳統的求解方法是不可行的。

因此我們提出了一個基於分段的集束調整方法:

  • 將長序列分成若干段短序列,每個短序列進行獨立的SfM求解,並根據公共匹配對進行對齊,每個段由7個自由度的相似變換控制;

  • 如果投影誤差比較大,檢測分裂點將序列分段,然後優化;

  • 重複上述步驟直至投影誤差小於閾值或不能再分裂為止。

0?wx_fmt=png

如圖是一個例子,我在自己小區拍了6段長視訊序列,總共將近10萬幀,在一臺PC上用SIFT運算元進行特徵匹配耗時74分鐘,SfM求解耗時16分鐘,使用GPU加速。平均效能達17.7fps。

這裡有一個對比,中間是Visual SFM的結果,它用我們的特徵匹配結果,然後進行求解,在GPU加速的情況下,SfM求解需耗時57分鐘。而我們的求解是在CPU下單執行緒做的,所以如果考慮GPU加速的因素,我們可以在速度上達到兩個數量級的提升。

0?wx_fmt=png

實驗結果表明,我們的結果明顯好很多,而Visual SFM並不能解出整個地圖(分裂成60個獨立的子圖)。最右邊是ORB-SLAM的求解結果,很多幀的相機姿態沒有成功恢復,而且一些迴路沒有得到很好的閉合。

0?wx_fmt=png0?wx_fmt=png

我們在KITTI、TUM資料集上跟其他方法做了比較。可以看到在這些資料集下,我們的結果跟ORB-SLAM差不多,但是在更復雜的迴圈迴路資料下我們的結果有明顯的優勢。

(二)ENFT-SLAM

0?wx_fmt=png

前面的工作是離線的運動恢復結構,雖然平均速度可以達到實時,但是是因為錄下來再計算的,不能真正滿足實時的應用需求。我們後來在這個工作上進一步改進,採用並行跟蹤和重建框架,做到了完全實時。

0?wx_fmt=png

特徵跟蹤直接採用ENFT特徵跟蹤,主要在迴路檢測與閉合上做了改進,分為兩部分:對原來的非連續特徵軌跡匹配進行了修改,通過計算當前幀與歷史關鍵幀的相似度並選擇相似度高的關鍵幀進行匹配。全域性優化的時候還是採用基於分段的集束調整進行優化。

0?wx_fmt=png0?wx_fmt=png

這是我們的ENFT-SLAM和ORB-SLAM的比較,輸入的資料都是實時的單目視訊序列。可以看到我們的結果更好。主要是我們在兩個模組上做得更好:一是我們的非連續軌跡匹配比ORB-SLAM採用的Bag-of-words Place Recognition方法能匹配上更多的公共特徵點;二是我們使用的基於分段的集束優化方法,不容易陷入區域性最優解,比起ORB-SLAM採用的位姿圖優化和傳統集束優化結合的方法效果更好。

(三)RDSLAM

首先我們可以看一下動態場景下SLAM的兩個主要問題:

0?wx_fmt=png

1.動態變化   

比如左邊的例子,人在移動書本,過了幾十秒所有的書本的位置都發生了變化,這對傳統的SLAM來說是非常難處理的。另外,動態元素還會導致大量的錯誤匹配,這對實時穩定的SLAM求解來說也是非常困難的。

0?wx_fmt=png

2.遮擋問題    

遮擋問題主要有兩個原因造成。一是相機的視角變化造成的遮擋,還有一個是運動物體造成的遮擋。尤其是後者,會給穩定的SLAM帶來挑戰。

0?wx_fmt=png

針對以上問題,我們提出了一個RDSLAM框架,與PTAM類似採用並行跟蹤和建圖框架。最主要的貢獻是在建圖部分,可以實時監測哪些三維點發生變化,然後在map中將變化的點移除掉,並且會更新相應的關鍵幀(如果大部分的特徵點都改變了)。同時針對RANSAC演算法做了改進,利用序列上的連貫性,在有大量outliers的情況下,也可以進行非常魯棒快速的求解。

0?wx_fmt=png

這是一個非常有挑戰性的動態場景例子。人在整理書本,而且有手電筒在照,故意產生光照變化。我們的方法在這種場景下還是能穩定地跟蹤,而PTAM難以處理這樣的例子。

(四)RKSLAM

0?wx_fmt=png

接下來講我們去年做的一個工作,就是把我們的SLAM方法做到手機移動終端上,滿足手機上的增強現實應用需求。

0?wx_fmt=png

現在Visual SLAM技術方法主要分為兩類,一個是keyframe-based SLAM,另一個是filtering-based SLAM。2012年Andrew Davison等人寫了一篇文章對這兩個方法進行了比較,得出這樣的結論:keyframe-based SLAM比filtering-based SLAM在精度上、效率和擴充套件性上具有更好的效能。但是keyframe-based SLAM也有缺點,一般對強旋轉比較敏感。當然,快速運動、運動模糊、特徵不夠豐富等情況對於這兩類方法都很有挑戰性。

0?wx_fmt=png

Visual-Inertial SLAM方法廣泛應用於機器人領域,這類方法使用IMU資料來提高魯棒性。但是,在沒有真實IMU資料的情況下,能否借鑑一些Visual-Inertial的方法來將SLAM做得更好呢?

0?wx_fmt=png

這是我們的方法RKSLAM的框架,主要包含兩個技術貢獻。

第一個貢獻是,跟蹤採用基於多單應矩陣的方法,這跟前面提到的ENFT方法非常類似,最主要區別是把SIFT特徵換成FAST corners,因為SIFT特徵計算太慢,FAST corners能夠在手機上做到實時。

第二個部分,採用基於滑動視窗的姿態優化,借鑑了Visual Inertial SLAM的方法。一般移動裝置的加速度比較小,我們就簡單地假設為零;但是角速度可能會很大,不能簡單地假設為零。我們提出採用特徵匹配並結合整張影象(縮略之後的影象)對齊來估計連續幀之間的旋轉角度。當運動比較快時,雖然運動模糊導致可能沒有足夠多的特徵點,但是整張影象的對齊還是能比較可靠地估計出旋轉角度。然後類似傳統的Visual-Inertial SLAM方法,我們把估計出來的加速度和角速度作為相鄰幀之間的運動約束進行相機姿態優化。

0?wx_fmt=png

這是我們在TUM RGB-D資料集上的定量比較。這裡我們只用了RGB資訊,沒有用深度資訊。我們選了12組序列,分成了4組。其中Group D的序列都是相機運動非常快而且帶有強旋轉。實驗結果表明,在Group D的跟蹤成功率上,我們的方法要明顯好於ORB-SLAM和其他方法。

0?wx_fmt=png

RKSLAM的速度非常快。在臺式機上可以達到每秒100~200幀,在iPhone6上可以達到每秒20~50幀,完全能夠滿足實時應用。

0?wx_fmt=png0?wx_fmt=png

這是一個非常有挑戰性的序列(單目視訊序列,沒有IMU資料)。一開始的運動比較緩慢,以順利完成初始化,後面開始運動很快。可以看到,ORB-SLAM、PTAM、LSD-SLAM等方法都很快就出現了嚴重漂移問題,而我們的方法一直能穩定地跟蹤。基於這個技術我們開發了一個App,使用者只需要一個手機或平板電腦,就可以將傢俱模型下載下來通過增強現實的方式擺放到自己的家裡,觀看傢俱的組合擺放效果。這個App可以有效地幫助使用者做購買決策,使用者不需要到實體店裡去看傢俱,也不需要費力地把傢俱搬到自己家裡來擺放,極大地提升了購買體驗。

(五)RGB-D SLAM

0?wx_fmt=png

最後,介紹我們最近做的一個工作,基於RGB-D攝像頭的稠密SLAM。

0?wx_fmt=png

這個工作跟前面一個RKSLAM的工作比起來,最主要的突破是將深度資訊加入跟蹤,並用來做稠密的三維重建。右邊是RKD-SLAM的系統框架,主要有三個貢獻:

  • 提出了一個非常快速魯棒的基於RGB-D的跟蹤方法(CPU下約100fps),移動終端上也可以做到實時;

  • 提出了一個非常快速的增量集束調整演算法;

  • 提出了一個非常高效率的基於關鍵幀的深度表達和融合方法。

0?wx_fmt=png

我們可以魯棒地處理相機快速運動。這個例子是每秒30幀錄的,但實際執行的時候是每隔三幀取一幀,所以相當於以每秒10幀的速度錄的。可以看到,我們的方法能夠魯棒地跟蹤和重建,而ElasticFusion和Kintinuous跟蹤和重建的結果都不理想。

0?wx_fmt=png

我們的方法可以進行線上的迴路閉合和稠密的三維表面實時調整。

0?wx_fmt=png

我們的方法支援重定位,即使跟蹤失敗了也能重定位回來。

0?wx_fmt=png

最後,順便提一下我們比較早的一個深度恢復工作(2009年發表在TPAMI上),可以從一段輸入的視訊序列裡自動地恢復出具有高度時空一致性的深度圖序列。可以看到,恢復的深度圖不僅在時序上具有高度一致性,而且在不連續邊界也有很好的質量。

0?wx_fmt=png

恢復了相機引數和稠密深度資訊,可以做很多應用。比如可以做視訊場景的編輯。例如,將視訊中的物件從一段視訊中抽取出來,然後插入到另一段視訊中。這裡的難點是這兩個視訊都是攝像機在移動狀態下拍攝的,所以需要恢復攝像機的引數和場景的三維結構,才能做到無縫的融合。

0?wx_fmt=png

我們在網上釋出了這些工作的可執行程式,部分工作還提供原始碼。目前都是Windows版本,我們會陸續推出Linux版本。

Visual SLAM 技術發展趨勢

0?wx_fmt=png

(1)緩解特徵依賴 & 稠密三維重建

因為基於視覺的方法很依賴場景的特徵豐富程度,所以需要一些方法去解決特徵依賴問題,比如:基於邊的跟蹤,直接影象跟蹤或半稠密跟蹤,或者結合機器學習先驗、語義資訊。另外一個發展趨勢是在朝著稠密三維重建的方向發展。比如基於單目或多目的實時三維重建,還有基於深度相機的實時三維重建。因為稠密三維重建需要的記憶體空間很大,如果要在移動端進行應用,往往還需要對模型進行簡化。所以一些研究人員也提出採用平面表達和模型自適應去簡化來解決這個問題。

0?wx_fmt=png

(2)多感測器融合

另外一個發展趨勢就是多感測器融合。因為純視覺方法或者基於單一感測器的方法總有其侷限性,結合多種感測器資訊(比如IMU、GPS、深度相機、光流計、里程計等等)可以形成優勢互補,從而實現一個成本低、穩定性高的SLAM解決方案。

我們的未來工作展望

0?wx_fmt=jpeg

最後是對未來工作進行展望。我們接下來要做的一個工作是協同SLAM,比如使用多個無人小飛機進行協同配合完成一個指定的任務。另外一個工作是稠密SLAM,這個也是目前我們正在做的一個工作。此外,就是基於SLAM的場景分析和理解。最後,基於這些技術在VR、AR、機器人和無人駕駛領域進行應用。

0?wx_fmt=jpeg

文中章老師提到的文章下載連結為: 

http://pan.baidu.com/s/1miFZOZQ

致謝:

0?wx_fmt=jpeg

本文主編袁基睿,誠摯感謝志願者楊茹茵對本文進行了細緻的整理工作

0?wx_fmt=png

該文章屬於“深度學習大講堂”原創,如需要轉載,請聯絡 astaryst。

作者資訊:

作者簡介:

0?wx_fmt=jpeg

章國鋒,男,博士,浙江大學計算機輔助設計與圖形學國家重點實驗室副教授,博士生導師。2003年獲浙江大學計算機專業學士學位,2009年獲浙江大學計算機應用專業博士學位。主要從事運動恢復結構、同時定位與地圖構建、三維重建、增強現實、視訊分割與編緝等方面的研究工作,已在CCF推薦A/B類期刊和會議上發表論文20餘篇。尤其在同時定位與地圖構建和三維重建方面的研究取得了一系列重要成果,研製了一系列相關軟體(ACTS, LS-ACTS, RDSLAM, RKSLAM等)並在網上釋出供大家下載使用(http://www.zjucvg.net)。獲2010年度計算機學會優秀博士學位論文獎,2011年度全國百篇優秀博士學位論文獎,以及2011年度教育部高等學校科學研究優秀成果獎科學技術進步獎一等獎(排名第4)。

VALSE是視覺與學習青年學者研討會的縮寫,該研討會致力於為計算機視覺、影象處理、模式識別與機器學習研究領域內的中國青年學者提供一個深層次學術交流的舞臺。2017年4月底,VALSE2017在廈門圓滿落幕,近期大講堂將連續推出VALSE2017特刊。VALSE公眾號為:VALSE,歡迎關注。

0?wx_fmt=jpeg

往期精彩回顧

 0?wx_fmt=jpeg 0?wx_fmt=png 0?wx_fmt=png

歡迎關注我們!

深度學習大講堂是由中科視拓運營的高質量原創內容平臺,邀請學術界、工業界一線專家撰稿,致力於推送人工智慧與深度學習最新技術、產品和活動資訊!

中科視拓(SeetaTech)將秉持“開源開放共發展”的合作思路,為企業客戶提供人臉識別、計算機視覺與機器學習領域“企業研究院式”的技術、人才和知識服務,幫助企業在人工智慧時代獲得可自主迭代和自我學習的人工智慧研發和創新能力。

中科視拓目前正在招聘: 人臉識別演算法研究員,深度學習演算法工程師,GPU研發工程師, C++研發工程師,Python研發工程師,嵌入式視覺研發工程師,運營經理。有興趣可以發郵件至:[email protected],想了解更多可以訪問,www.seetatech.com

0?wx_fmt=jpeg0?wx_fmt=jpeg

中科視拓

0?wx_fmt=jpeg

深度學習大講堂

點選閱讀原文開啟中科視拓官方網站

相關推薦

黑暗前行--複雜環境SfMSLAM | VALSE2017

點選上方“深度學習大講堂”可訂閱哦!編者按:無人系統在未知環境中的移動,恰如人在黑暗中前行,是一

報名 | 智慧製造困惑前行講座

最近幾年,中國進入“新常態”、經濟發展速度放緩。背後是人口和經濟發展進入了新的階段。我們過去強調的一些觀點和做法,已經逐漸變得不合時宜。中國製造業提高自動化、智慧化水平,是適應這種變化的必然舉措。 但是,在推進智慧製造的過程中,企業遇到很多困惑。典型的困惑之一就是:單純地提高自動化或者智慧化水平,經濟

阿里巴巴高階技術專家大資料發展的 8 個要點

首先讓我們來聊聊什麼是大資料。大資料這個概念已經出來很多年了(超過10年),但一直沒有一個準確的定義(也許也並不需要)。資料工程師(DataEngineer)對大資料的理解會更多從技術和系統的角度去理解,而資料分析人員(Data Analyst)對大資料理解會從產品的角度去理解,所以資料工程師(Data

Linux03CentOS7jdk+tomcat環境搭建

上傳 tomcat配置 解壓 pro 3.1 rpm centos 3.2 export 1. 安裝軟件版本   jdk:1.8.0_161   tomcat:8.5.28 2. jdk安裝 2.1 卸載系統自帶的jdk   rpm -qa | grep jdk   使用y

記錄問題mysqldatetime型別欄位在後臺讀取前端展示

1.資料庫欄位型別為datetime,model裡:@Column(name = "createtime", length = 20) private Date createTime;2.兩種將資料傳到前端的方法方法一:List<Map<String, Objec

詳細Liunx配置java環境變數以及tomcat環境變數

Jdk1.8安裝: 需要下載xftp5 ,建立一個會話,連線Ip –這裡很簡單,不多說。仔細看圖 使用xftp5 檔案傳輸。*直接拖動就可以(例如:把jd

算法系列迴圈和遞迴在演算法的應用

一、遞迴和迴圈的關係1、 遞迴的定義順序執行、迴圈和跳轉是馮·諾依曼計算機體系中程式設計語言的三大基本控制結構,這三種控制結構構成了千姿百態的演算法,程式,乃至整個軟體世界。遞迴也算是一種程式控制結構,但是普遍被認為不是基本控制結構,因為遞迴結構在一般情況下都可以用精心設計的

Postman系列Postman電商網站cookie、token檢驗引數傳遞實戰

一:Postman中電商網站cookie實戰   Postman介面請求使用cookie兩種方式:     1.直接在header(頭域)中新增cookie,適用於已知請求cookie頭域的情況     2.使用Postman的cookie管理機制,即可以手動新增,同時Postman也會將操作流程中獲取的引數

[Python爬蟲] Selenium +phantomjs根據微信公眾號抓取微信文章

頭部 drive lac 過程 標題 操作 函數 軟件測試 init   借助搜索微信搜索引擎進行抓取   抓取過程   1、首先在搜狗的微信搜索頁面測試一下,這樣能夠讓我們的思路更加清晰        在搜索引擎上使用微信公眾號英文名進行“搜公眾號&r

MySQL常用配置和性能壓力測試MySQL系列

text imu reat ini -o blocks debug 生成 存在 一、MySQL常用配置 以下所有配置參數以32G內存的服務器為基 1、打開獨立的表空間 innodb_file_per_table = 1 2、MySQL服務所允許的同時會話數的上限,默認為

Effective C++筆記inline函式的裡裡外外

1.inline函式簡介 inline函式是由inline關鍵字來定義,引入inline函式的主要原因是用它替代C中複雜易錯不易維護的巨集函式。 2.編譯器對inline函式的處理辦法 inline對於編譯器而言,在編譯階段完成對inline函式的處理。將呼叫動作替換為函式的本體。但是它只是一種

skyfans每天一個Liunx命令系列lsof

今天我們繼續來學習PERFORMANCE MONITORING AND STATISTICS(效能監測與統計),今天學習的是什麼命令呢,那就是lsof(列出系統上的所有開啟檔案) Ready Go!!! 文章目錄 今天我們繼續來學習PERFORMANCE MON

何暉光“深度學習類腦嗎?”--- 基於視覺資訊編解碼的深度學習類腦機制研究 | VALSE2017

點選上方“深度學習大講堂”可訂閱哦!編者按:深度學習中最經典的卷積神經網路,其命名的初衷,即是向

4.8 Sublime Text3 配置 Python環境 --下載安裝Sublime配置Python環境

main 代碼 col 編程 als 數據 -- print 安裝 返回總目錄 目錄: 1.沒有配置之前 2.安裝Package Control插件 3.安裝其他庫: 4.配置其他操作: (一)沒有配置之前: 我們試著運行以下,會效果怎麽樣? 1.首先選擇Python作

Qt總結QByteArray詳解

一、QByteArray類 提供一個位元組陣列,QByteArray可用於儲存原始位元組(包括“\ 0” )和傳統的8位 “\ 0” 端接字串 . 使用QByteArray比使用const char *更方便. 除了QByteArray之外,Qt還提供了QString類來儲存字串資料。

使用Intellij的Spring Initializr來快速構建Spring Boot/Cloud工程(

在之前的所有Spring Boot和Spring Cloud相關博文中,都會涉及Spring Boot工程的建立。而建立的方式多種多樣,我們可以通過Maven來手工構建或是通過腳手架等方式快速搭建,也可以通過《Spring Boot快速入門》一文中提到的SPRING INITIALIZR頁面工具來建立,相信每

Redis開發運維持久化

1. Redis提供兩種持久化方式 : RDB 和AOF bgsave 命令的運作流程 RDB優點: 是一個緊湊壓縮的二進位制檔案,代表Redis在某個時間點上的資料快照非常實用於備份,全量複製等場景。比如每6小時執行bgsave備份,並吧檔案拷貝到遠端機器或者檔案系統中 hdfs

【Redis學習】Linux環境的Redis安裝配置

安裝環境 redis是C語言開發的,安裝redis需要先將官網上下載的原始碼進行編譯,編譯依賴gcc環境,如果沒有gcc環境,需要安裝gcc。這個最好使用yum安裝,因為依賴關係比較多,自己不好找

記錄Python3網路爬蟲開發實戰的各種坑Flask安裝(Windows環境

1.Flask 的安裝      文章推薦使用pip安裝,命令如下:pip3 install flask 2.測試程式碼     from flask import Flask     app = Flask(__name__)     @app.route("/")   

喬宇深度模型讓機器理解場景|VALSE2017

點選上方“深度學習大講堂”可訂閱哦! 編者按:所謂場景,無論是“萬家燈火”亦或是“巴山夜雨”,於人是一種直觀自然的感受;然而,對於機器而言,再多的溫情脈脈,都也只是計算機世界冰冷的二進位制符號。這區別的背後,其實是人在成長過程中形成的對世界的認知與理解。因此,讓機器學會去準確地理解場景、理解世界,是視覺智