面向三維視覺算法的C++:從零基礎(chǔ)入門到進(jìn)階
目前的三維視覺算法基本上都是用C++語言編寫的,比如SLAM算法。既然這些算法都是C++編寫的,必然有其自身原因。主要是因?yàn)椋?strong>SLAM系統(tǒng)是一個(gè)實(shí)時(shí)性要求很強(qiáng)的系統(tǒng),運(yùn)行速度與精度都很重要。Python也有加速手段,但總體上C++比較接近底層,在執(zhí)行效率和資源占用上要好很多。而且很多語言都是在C++或者C語言的基礎(chǔ)上進(jìn)行封裝的。
C++一直都被稱作是最難學(xué)的計(jì)算機(jī)語言,筆者從業(yè)多年,也認(rèn)為確實(shí)如此。相比于其他幾種語言,單純從語法結(jié)構(gòu)來說,C++都是比較困難的。何況很多同學(xué)并不是計(jì)算機(jī)專業(yè)出身,基礎(chǔ)不是很扎實(shí)。SLAM算法都會(huì)集成了C++中的很多模塊,還有大量的第三方庫,對(duì)于初學(xué)者而言,想讀懂這些算法源碼肯定更是難上加難。然而,這些源碼并不是無跡可尋,許多算法的編寫都有比較固定的套路。
下圖是某個(gè)SLAM算法中的部分源碼。
本次課程,我們首先會(huì)用幾講的時(shí)間帶大家過一遍C++的基礎(chǔ)知識(shí),然后對(duì)三維視覺中常用的幾個(gè)C++模塊進(jìn)行重點(diǎn)講解,主要有指針、引用、類和對(duì)象、宏和模板、STL編程、棧和隊(duì)列、智能指針,多線程,CMakeList這幾個(gè)章節(jié),另外會(huì)附上足夠多的實(shí)踐案例,也會(huì)在課程中給大家講解面試技巧和面試題。力求通過本次課程的學(xué)習(xí),徹底搞懂C++較難的一些模塊,掌握SLAM等算法的編寫套路,學(xué)會(huì)C++相關(guān)崗位的面試技巧。
添加微信:CV3d007,咨詢更多