最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

視覺組 | 2022暑期學習建議

2022-08-20 04:26 作者:華工機器人實驗室  | 我要投稿


?

#1?智能射擊?

1.共同負責步兵、英雄、哨兵、無人機自動瞄準功能的設計與調(diào)試;

2.開發(fā)、維護與優(yōu)化華工機器人實驗室視覺庫;

3.與電控協(xié)作進行電控-視覺聯(lián)調(diào),包括但不限于云臺響應、延遲測定等;

4.進行工業(yè)相機方案設計、選型、測試與性能評估。

?

#2?智能算法?

1.負責工程、飛鏢系統(tǒng)的算法設計、研發(fā)、調(diào)試;

2.與電控協(xié)作進行電控-視覺聯(lián)調(diào),包括但不限于輔助姿態(tài)定位等;

3.進行相機方案設計、選型、測試與性能評估。

?

#3?智能感知?

1.負責雷達站的算法開發(fā);

2.開發(fā)并維護激光雷達庫;

3.管理并維護深度學習服務器;

4.探索和創(chuàng)新3D目標檢測算法。

?

#4?軟件測試(新增方向)

1.熟悉華工機器人實驗室視覺庫底層設計、實現(xiàn)方式,并在必要時進行框架變更;

2.制定程序測試計劃,編寫測試工具、分析測試結(jié)果;

3.與視覺庫相關負責人合作,提出各模塊改進方案,并評估其合理性。

Tips

在計算機語言學習過程中,我們會遇到許多疑惑,所以在正文開始之前先推薦一個可以解決大多數(shù)問題的答疑網(wǎng)站(英文):https://stackoverflow.com/。

基礎篇—必學

?

#1?編程語言?

C++是視覺組最常使用的編程語言。教材《C++程序設計基礎(上)》通俗易懂,涵蓋了大多數(shù)基礎內(nèi)容,按學校要求修完C++課程即可應對基本的算法編寫。

結(jié)構、按位運算、類等章節(jié)雖然不是考試重點,但非常實用,建議詳細學習。面向?qū)ο缶幊?/strong>是重要的編程思想,大家要理解并運用封裝、繼承和多態(tài)。

此外,C++11的一些新特性、標準庫STL以及C++多種設計模式能夠給算法構建帶來很大的便利。利用C++11的多線程機制進行并發(fā)編程的程序開發(fā),熟練運用這些新特性也是視覺組的基本要求之一。

推薦學習資源:

1.C++語法推薦教材:《C++程序設計基礎(上)》

2.標準庫推薦學習鏈接:https://zh.cppreference.com/(中文)

3.C++11特性推薦專著:《深入理解C++11》

《深入理解》一書中,需要重點學習的章節(jié)包括:4.2 auto類型推導;4.5 基于范圍的for循環(huán);5.1 強類型枚舉;5.2.1 & 5.2.2 智能指針;6.3 原子類型和原子操作;7.3 lambda函數(shù)。

?

#2?編程語言python?

Python是一門非常方便的編程語言。它有大量的現(xiàn)成庫可供調(diào)用,可以提高視覺算法的開發(fā)速度。Python入門非常簡單,希望你能掌握基本Python語法,及使用類對代碼進行封裝。

為了能夠使用這些功能齊全的包,你需要學會配置Python的開發(fā)環(huán)境,使用pip安裝和管理包,并且使用Anaconda管理虛擬環(huán)境。

推薦IDE:Pycharm(學生賬戶可下載專業(yè)版)

推薦學習鏈接:

1.廖雪峰Python教程:https://www.liaoxuefeng.com/wiki/1016959663602400?

2.Anaconda管理Python環(huán)境:https://docs.anaconda.com/anaconda-cloud/user-guide/tutorials/

?

#3?操作系統(tǒng)(Ubuntu)

Ubuntu是一個基于Linux的、開源的操作系統(tǒng)。我們下載并安裝Ubuntu 20.04版本。

安裝Ubuntu的一般方法有虛擬機安裝、雙系統(tǒng)、移動硬盤安裝等。因過程麻煩、問題較多、難度較高,我們不推薦虛擬機安裝。

我們推薦使用雙系統(tǒng)安裝,即Ubuntu與Windows共存。安裝相對簡單,且重啟電腦即可切換系統(tǒng)。愿意買一塊移動硬盤進行安裝也是不錯的選擇。不占用原電腦硬盤容量,安裝過程也更加簡單。你還可以將其插入別人的電腦敲自己的代碼,隨時隨地都能開心地工作,乃實驗室趕進度最佳之選。

安裝完Ubuntu后,各位需要熟悉Linux系統(tǒng)的一些基本命令行操作,如Ctrl+Alt+T打開一個終端,cd進入某個目錄,sudo獲取root權限,rm刪除某個文件或文件夾等。初接觸時可能覺得繁瑣,但熟練運用后你會覺得特別便捷高效。(PS:面試時可能會考察相關操作。)

推薦學習鏈接:

1.Windows環(huán)境下Ubuntu usb系統(tǒng)盤制作教程:

https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0

2.系統(tǒng)安裝教程:https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop

3.linux常用命令行操作:https://www.cnblogs.com/banjinbaijiu/p/9140460.html

4.Ubuntu Tutorial:https://ubuntu.com/tutorials/command-line-for-beginners#1-overview

Ubuntu官網(wǎng)

?

#4?代碼管理工具Git

在整個賽季中,你需要與多人合作編寫大量代碼。反復更改代碼很容易產(chǎn)生混亂,此時學會使用強大的版本管理工具Git便顯得格外重要。

使用Git,你可以看到自己和隊友每次修改的內(nèi)容,出現(xiàn)問題時也可以退回到任意一次修改之前。代碼會被實時推送到云端服務器倉庫中,即使電腦慘遭彈丸攻擊,代碼也會安然無恙。


多人協(xié)作Git倉庫示例

前期學習中,建議先熟練Git命令行操作,再嘗試使用Gitkraken等圖形化工具,這會讓你對Git的管理方法和常見問題(如合并和沖突)有充分的理解。

推薦學習鏈接:

1.Git命令行操作:https://git-scm.com/book/zh/v2

2.Gitkraken官網(wǎng):https://www.gitkraken.com/

3.常用代碼托管平臺:【碼云】https://gitee.com/;【github】https://github.com/

?

#5?編譯調(diào)試工具?

在Windows下,Visual Studio等IDE已經(jīng)為你準備好了全套環(huán)境,但在Ubuntu下,這些都需要你自己配置。

常見的編譯器是GCC,常見的調(diào)試器是GDB。編譯器需要Makefile文件來配置系統(tǒng)環(huán)境,但Makefile文件的編寫頗為困難。在實際使用中,我們通常編寫CMakeList文件,再由CMake自動生成Makefile文件。

通常,Linux初學者會使用命令行工具Vim或Gedit來進行文本編輯,再使用終端命令進行編譯運行調(diào)試,但這樣的開發(fā)效率其實十分低下。我們推薦使用VSCode作為代碼編輯器,其插件豐富,使用非常方便,毫不遜色于Windows系統(tǒng)中的Visual Studio。

推薦學習鏈接:

1.Cmake(全英,時間充裕可看):https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html

2.VSCode學習:https://code.visualstudio.com/docs/languages/cpp

?

#6?通信與系統(tǒng)服務?

我們使用串口(SerialPort)進行電控與視覺之間的數(shù)據(jù)通信,本段后附有超詳細的Ubuntu與嵌入式系統(tǒng)的串口通信教程。

安裝在機器人里的電腦需要程序開機自啟動,這里給大家介紹一個方法——系統(tǒng)服務(Systemd)。其設計目標是為系統(tǒng)的啟動和管理提供完整解決方案。你需要了解如何寫簡單的.service文件,如何設置系統(tǒng)服務開始、停止和查看服務的狀態(tài)。

推薦學習鏈接:

1.超詳細的Ubuntu與嵌入式系統(tǒng)的串口通信教程:http://xanthium.in/Serial-Port-Programming-on-Linux

2.Systemd入門教程1:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

3.Systemd入門教程2:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

算法篇—必學

?

#1?OpenCV

視覺圖像處理是視覺組最常見的工作內(nèi)容,基于OpenCV開源視覺庫進行圖像處理是重點的學習內(nèi)容。

它是當前最具影響力的計算機視覺開源庫。官網(wǎng)資料相當完整,包括Online Documentation、Tutorials、User Q&A forum,都非常棒。

官網(wǎng)Tutorials中有詳細的安裝教程。我們建議在你的Windows和Ubuntu上都安裝好OpenCV(4.5及以上版本)。OpenCV最推薦的學習資料還是官網(wǎng)文檔,其內(nèi)容詳盡、更新速度快。

PS.大家需要盡快適應閱讀英文資料,因為后面開發(fā)中遇到的一些問題很難用中文查到。

推薦學習書籍:《學習OpenCV3》《OpenCV4.0快速入門》

進入OpenCV 4.0時代后,蝴蝶書(《學習OpenCV3》)中的部分內(nèi)容依然適合入門者閱讀,關于OpenCV 4.0的內(nèi)容也可以購買《OpenCV 4.0快速入門》這類書籍進行查閱。

多多使用其實是最好的學習方法。我們更推薦遇到問題的時候再去查找相關資料,完成視覺組面試前的實戰(zhàn)任務,也是快速的OpenCV學習方法。

?

#2?數(shù)學基礎?

機器人的眼睛是相機。相機的作用就是將三維的真實世界投影到二維的圖像數(shù)據(jù)中。我們需要在算法中利用降維的數(shù)據(jù)進行識別處理,使得機器人對三維世界具有一定的感知。

那么如何將三維世界降維到二維平面,又如何從二維平面反推到三維世界呢?這便是線性代數(shù)的一個重要應用——坐標變換(映射)。三維世界,我們一般稱為世界坐標系(或笛卡爾坐標系),而相機圖像的二維平面,一般稱為像素坐標系。

如果考慮圖像的深度信息、視角大小,我們就可以獲得相機的三維坐標系。通過一些固定點在不同坐標系中的坐標,我們便可以通過旋轉(zhuǎn)、平移變換獲得坐標系之間的相對位姿,進而獲得機器人的位姿。

數(shù)學基礎在坐標變換中有很深的應用價值,在特征提取、數(shù)據(jù)處理(如卡爾曼濾波)中也有重要的應用。

在計算線性代數(shù)中的常用運算時,Eigen庫是你提高計算速度的好幫手。這個庫有豐富的接口來讓你進行歐拉角、四元數(shù)、旋轉(zhuǎn)矩陣、矩陣求逆等運算。此外,還方便地可以與OpenCV中的數(shù)據(jù)類型進行相互轉(zhuǎn)換。

推薦學習鏈接:

1.視覺SLAM十四講:https://www.bilibili.com/video/BV16t411g7FR

2.3Blue1Brown線性代數(shù)教程:https://b23.tv/jqyxkkm

b站上3Blue1Brown的線性代數(shù)教程視頻

拓展篇-深度學習-二選一

RM2020賽季推出的新兵種“雷達站”使得基于深度學習技術的機器人識別、定位算法成為視覺組算法開發(fā)的一個重點方向。

?

#1?深度學習框架?

我們推薦使用PytorchTensorflow作為深度學習框架。如果你的筆記本電腦沒有顯卡或者顯存較少,可以嘗試安裝CPU版本,來對框架中的基本數(shù)據(jù)類型、各種類型的網(wǎng)絡層接口進行簡單的了解。學有余力的同學可以嘗試使用RM開源的DJI_ROCO數(shù)據(jù)集進行機器人識別和分類,嘗試實現(xiàn)下圖的識別效果。

推薦學習鏈接:

1.Pytorch中文文檔:https://pytorch-cn.readthedocs.io/zh/latest/

2.DJI_ROCO數(shù)據(jù)集:https://terra-1-g.djicdn.com/b2a076471c6c4b72b574a977334d3e05/resources/DJI%20ROCO.zip

雷達站對機器人識別結(jié)果

?

#2?神經(jīng)網(wǎng)絡?

采用神經(jīng)網(wǎng)絡搭建模型做圖像推理,可以有效提高識別的容錯率。

首先,你需要搭建一個神經(jīng)網(wǎng)絡的框架。其次,將自己的任務和網(wǎng)絡結(jié)構相結(jié)合,并做優(yōu)化。如何設計網(wǎng)絡的結(jié)構是門學問,既要保證速度,又要保證泛化性等。

然后,開始調(diào)整超參數(shù),即深度學習程序員口中的調(diào)參。這種調(diào)參跟最終網(wǎng)絡模型的效果之間有一種微妙的關系,達不到預期效果時,不深入學習往往難以分析出問題所在,但如果你掌握相關知識,就能快速定位癥結(jié)。

接著,把推理模型部署在設備中。這里面也大有學問:部署的快速性、準確性,電腦硬件資源的分配,以及經(jīng)濟性等,都是需要考慮的點。

?

#3?目標檢測?

2022賽季中,我們也在目標檢測方向進行了一些探索,對這方面有所了解也是面試加分項哦。

首先,你需要學習深度學習基礎知識,重點學習基本概念術語,不同情況下?lián)p失函數(shù)的設計。然后嘗試目標檢測,跑通基礎的YOLO模型。最后設計簡單的四點模型,這里可以參考yolov5face項目。

這是一項充滿挑戰(zhàn)的任務。希望大家努力學習,學會利用各種渠道搜索學習資源。

如果你對目標檢測、強化學習、小樣本學習等算法有一定的經(jīng)驗或具有濃厚的興趣,歡迎帶上你的作品來參加視覺組雷達站研發(fā)組的面試!

?

#4?智能決策?

對于雷達站的開發(fā),我們不僅著眼于目標檢測,更期待有更多的潛能開發(fā)。本賽季也有對激光雷達進行一定程度的探索,需要負責對激光雷達庫的開發(fā)與維護。因此,我們也在智能決策等方向進行了一些探索。非常歡迎對智能決策有所了解的同學加入我們實驗室。

推薦學習鏈接:

1.行為樹學習:https://www.behaviac.com/concepts/

2.人機對抗門戶:http://turingai.ia.ac.cn/

拓展篇-ROS-二選一

ROS是一種編寫機器人軟件程序的高度靈活性軟件架構,它對于視覺組的意義在于“一套標準一堆工具”。

?

#1?“一套標準”?

ROS中有一個概念叫“計算圖”,這是ROS用于處理數(shù)據(jù)的一種點對點的網(wǎng)絡形式,即由一個master根節(jié)點管理下層的一系列節(jié)點。擁有了計算圖這個特性,我們可以非常方便且安全地通過編寫多個節(jié)點的代碼來實現(xiàn)多進程編程(注意區(qū)別于多線程)。這種獨特的編程方式也是ROS標準的一部分。

除了多進程編程的標準以外,ROS標準還提供了一系列的通用數(shù)據(jù)類型,例如點云、圖像,用于描述機器人運動的速度姿態(tài)等等。如今許多廠商生產(chǎn)的硬件都支持ROS,比如一些激光雷達、深度相機、雙目相機之類的傳感器等。廠家提供現(xiàn)成的節(jié)點讀取硬件數(shù)據(jù),我們只要讀取它的節(jié)點就可以獲得ROS標準數(shù)據(jù)類型。不用接觸底層,更換設備也很方便。

一種ROS小車

?

#2?“一堆工具”?

ROS提供了大量的工具,如:用于檢測每個節(jié)點的發(fā)布頻率和信息類型的許多命令行工具,可視化工具rviz,用于數(shù)據(jù)可視化的rqt_plot,用于仿真的gazebo,用于標定相機內(nèi)參的工具等等。

以上所說的都是ROS內(nèi)置工具。進一步學習后,你會發(fā)現(xiàn)很多GitHub上的開源工具都是依賴ROS開發(fā)的,比如由港科大開源、用于標定imu的imu_utils,以及可以用于imu和相機聯(lián)合標定的工具kalibr等。

?

#3?學習建議?

ROS需要在Linux系統(tǒng)下安裝,因此你需要先安裝Ubuntu或其他Linux系統(tǒng)。實驗室統(tǒng)一使用Ubuntu 20.04作為開發(fā)環(huán)境,因此需要安裝適用于Ubuntu的ROS。需要注意的是,ROS與Ubuntu的版本是一一對應的,比如Ubuntu 20.04對應的是ROS-Noetic。我們在后面提供了官網(wǎng)安裝教程以供參考,大家也可以自行尋找其他教程。

安裝好之后,就可以著手學習啦。ROS Wiki是應用最廣、公認最好的ROS入門工具,也推薦大家從此出發(fā)學習。在了解完ROS的基本概念后,我們推薦閱讀三本書籍,來幫助你從入門走到項目實踐,系統(tǒng)地學習ROS整個框架。當然,閱讀的前提是你具備ROS、GNU/Linux和編程概念的基本知識。

不必擔心學習路上無資料可尋,ROS社區(qū)的建設非常好,網(wǎng)上也有大量博客可作學習參考。

ROS的工程特性決定了一定要在項目中才能更好地被習得。大家只有不斷在ROS中嘗試新的傳感器、新的算法、甚至嘗試新的框架,才能對ROS有更深入的理解。因此在安裝完ROS后,你可以自己動手實現(xiàn)一個簡單的兩個節(jié)點間的通訊。

?

#4?學習途徑?

1.ROS-Noetic安裝:http://wiki.ros.org/noetic/Installation

2.ROS Wiki:http://wiki.ros.org/

3.入門閱讀?Effective Robotics Programming with ROS - Third Edition:http://wiki.ros.org/Effective_Robotics_Programming_with_ROS-Third_Edition

4.進階閱讀?Mastering ROS for Robotics Programming:http://wiki.ros.org/Books/MasteringROSforRoboticsProgramming

5.項目實踐?ROS Robotics Projects:http://wiki.ros.org/ROS_Robotics_Projects

小貼士

以上學習建議中,基礎篇與算法篇為必學項,而拓展篇則是選學項,大家可以根據(jù)興趣選擇其中一項進行學習。

實踐是檢驗理論的一個重要手段,招新面試時,我們會考核大家實踐任務的完成情況及提前學習內(nèi)容的掌握情況,大家一定要用心完成。詳情等待后續(xù)招新推文通知。

如有疑問,歡迎大家掃描以下二維碼,加入實驗室招新qq群進行交流:

競賽組&項目組分流須知

實驗室的技術開發(fā)分兩個大組——競賽組項目組,每個大組下分設電控組,機械組與視覺組。競賽組主要參與RoboMaster機甲大師賽,而項目組主要參加華為嵌入式大賽、ROBOCON、全國大學生機械創(chuàng)新設計大賽等團隊規(guī)模相對較小的比賽。

加入競賽組,可以感受到大型團隊里協(xié)作配合的氛圍,并且基于較為完善的培養(yǎng)體系,能夠系統(tǒng)地學習和掌握開發(fā)機器人所需的知識。同時會負責從零到一開發(fā)機器人,并在機器人交流和對抗中,不斷迭代和完善機器人,成為一名追求極致的工程師。

相比于競賽組,項目組更注重理論的探索和學習,因此仿真的運用會更加頻繁和必要。因為參加的比賽規(guī)模較小,并且比賽規(guī)則每年變動較大,因此隊員開發(fā)的自由度較大,更加考驗隊員的創(chuàng)新能力,以及設計的魯棒性。

兩大組別在機械、電控、視覺三個方面的學習和考核要求一致。在前期,兩大組的新隊員會統(tǒng)一培訓培養(yǎng),后期則會按照報名和面試結(jié)果進行分流。



文案 / 視覺組

編輯 / 李曉欣

美工 / 胡鈺瀅

審核 / 徐心卓 趙曦

閱讀?2134


視覺組 | 2022暑期學習建議的評論 (共 條)

分享到微博請遵守國家法律
博湖县| 苗栗市| 新化县| 苏尼特左旗| 柏乡县| 宿松县| 汶上县| 聊城市| 益阳市| 芦山县| 白水县| 横山县| 甘德县| 临洮县| 轮台县| 鸡泽县| 财经| 仁布县| 师宗县| 乌兰县| 清镇市| 佛山市| 玉环县| 阳原县| 特克斯县| 兴义市| 新泰市| 漳州市| 凤城市| 秀山| 长宁县| 太湖县| 吉木乃县| 乌审旗| 邻水| 信阳市| 保定市| 渝北区| 丹阳市| 砚山县| 青田县|