摘要:視覺(jué)組接觸的軟件進(jìn)行視覺(jué)開(kāi)發(fā)會(huì)用到各種各樣的軟件開(kāi)發(fā)環(huán)境輔助工具等,所以很有必要了解一些相關(guān)的快捷鍵命令使用技巧。沒(méi)有這樣保姆級(jí)的,并不存在一款能夠自動(dòng)為你生成的軟件。一款錄制屏幕的軟件。
--NeoZng【neozng1@hnu.edu.cn】
進(jìn)行視覺(jué)開(kāi)發(fā)會(huì)用到各種各樣的軟件、開(kāi)發(fā)環(huán)境、輔助工具等,所以很有必要了解一些相關(guān)的快捷鍵、命令、使用技巧。選擇一款適合自己的IDE能夠提高開(kāi)發(fā)效率,方便版本管理。
為什么使用Ubuntu?
Ubuntu是一個(gè)Debian系分支的第一大系統(tǒng),是用戶量最大的linux發(fā)行版。因此,遇到任何問(wèn)題一般都能夠在用戶社區(qū)askubuntu中得到解答。它的安裝也非常的方便,并且在更新到20.04后,ubuntu的桌面美觀性也有提升。同時(shí),ROS是在Ubutnu之下開(kāi)發(fā)的。如果要使用ROS,Ubuntu是你的不二之選。
ubuntu的21.04已經(jīng)發(fā)布了
Linux的內(nèi)核和系統(tǒng)比Windows更加精簡(jiǎn),故在運(yùn)行時(shí)占用的各類資源都要小于Windows。在不打開(kāi)任何應(yīng)用的情況下,筆者的電腦在運(yùn)行Windows10時(shí)占用的內(nèi)存為4.2G,cpu占用率在10-20%左右,而運(yùn)行Ubuntu20.04LTS的時(shí)候,只使用了2.2G的內(nèi)存,cpu占用率只有10%不到。這樣,在運(yùn)行我們的視覺(jué)算法程序時(shí),可以更充分地利用系統(tǒng)資源,最大程度壓榨電腦的性能。(甚至可以在測(cè)試結(jié)束后實(shí)際運(yùn)行時(shí)關(guān)閉圖形界面,只保留終端!這樣,系統(tǒng)內(nèi)核作為唯一需要運(yùn)行的基礎(chǔ)程序,大概能將cpu占用率縮小到1-2%)
Linux對(duì)于深度學(xué)習(xí)的支持比Widnows更加友好,經(jīng)常有sh腳本能夠一鍵配置開(kāi)發(fā)環(huán)境。此外Linux對(duì)一些設(shè)備驅(qū)動(dòng)的支持也更完善,我們可以選擇掛載自己需要的驅(qū)動(dòng)和IO,并且精簡(jiǎn)屬于自己的內(nèi)核。
想要安裝Ubutnu,可以參閱這篇教程:Ubutnu的安裝-排除各種問(wèn)題!-NeoZng
提到Linux就不得不提到命令行的使用,在Linux上進(jìn)行開(kāi)發(fā)常會(huì)使用到命令行,有些軟件甚至只有命令行界面的版本。在一些時(shí)候,直接在命令行中用鍵盤操作可能要比數(shù)不清的鼠標(biāo)點(diǎn)擊快得多。你需要學(xué)習(xí):
cd、ls 、pwd、mv、cp、touch、diff、rm、cat、mkdir、rmdir、echo、tar等文件系統(tǒng)的基本操作,grep、find 查找文件和目錄
幫助手冊(cè)man和-help參數(shù)。
sudo、su、chmod等權(quán)限相關(guān)的操作。
ping、ifconfig、wget等網(wǎng)絡(luò)相關(guān)的操作。
一定要親手熟悉命令行的基本命令,切忌只看不動(dòng)手!學(xué)習(xí)以上命令,戳這里Linux Commands.
至少掌握一個(gè)無(wú)GUI的文本編輯器的基本使用,如vi,vim,nano等。這能夠幫助你在系統(tǒng)出現(xiàn)問(wèn)題的時(shí)候快速修改一些配置文件,或是在使用ssh連接的時(shí)候簡(jiǎn)單地編寫一些程序。當(dāng)然,筆者不推薦你將這些文本編輯器作為主力IDE使用(即使是安裝了各種各樣的插件!)例如,雖然一個(gè)熟練使用vim的程序員和一個(gè)熟練使用eclipse的程序員擁有相同的開(kāi)發(fā)效率,但是vim的學(xué)習(xí)成本可不知道比eclipse高多少!
Linux的設(shè)計(jì)哲學(xué)是“一切皆文件”。它將所有的IO設(shè)備如網(wǎng)絡(luò)接口、usb接口、顯示屏、相機(jī)、鍵盤鼠標(biāo)、應(yīng)用都視為文件,和這些“文件”的交互就是以規(guī)定的方式進(jìn)行讀寫。因此,有必要了解Linux的基本目錄,目錄結(jié)構(gòu)請(qǐng)參考:Linux文件目錄結(jié)構(gòu)一覽表
在使用系統(tǒng)的時(shí)候,建議大家有良好的文件分類習(xí)慣,把代碼庫(kù)、軟件、開(kāi)發(fā)環(huán)境分開(kāi)存放,避免出現(xiàn)home目錄亂糟糟的情況。
?這篇文章就是在Ubutnu下使用markdown編輯器完成的
?
想要編寫代碼,光靠文本編輯器+gcc+gdb可不行,我們要充分利用技術(shù)進(jìn)步帶來(lái)的便利,誰(shuí)不喜歡做懶人呢。這里推薦幾款Linux下編寫C++程序使用的IDE:
VSCode:微軟的小兒子,啥系統(tǒng)都能用。豐富的插件生態(tài)只有你想不到?jīng)]有你找不到,配置完之后使用起來(lái)非常方便,比如C++就有一個(gè)C++ extensions pack,關(guān)鍵是好看啊!在使用了snippets和Visual Sutdio Intellicode這兩個(gè)插件之后,智能提示也很智能。想要寫其他的語(yǔ)言也能夠一條龍配齊,總之,上手容易且可定制化程度極高。
Qt:Qt也是一款跨平臺(tái)的C/C++ IDE,在Qt上編寫的GUI程序能夠在所有平臺(tái)上運(yùn)行。用Qt可以方便地編寫一些圖形化的程序,比如串口調(diào)試助手、調(diào)參助手等。他的整體界面也算是比較清爽。
這里需要特別提及的是CMakeLists的編寫。Linux沒(méi)有Visual Studio這樣保姆級(jí)的IDE,并不存在一款能夠自動(dòng)為你生成makefile的軟件。所以至少要學(xué)習(xí)qmake和cmake中的一種工具。這里推薦cmake,雖然比qmake的語(yǔ)法稍微復(fù)雜一些,但是cmake的功能非常強(qiáng)大,擁有非常優(yōu)良的跨平臺(tái)支持。學(xué)習(xí)cmake還能幫助你進(jìn)一步了解程序的編譯、鏈接過(guò)程。關(guān)于程序是怎么從源代碼到機(jī)器代碼最后在電腦上運(yùn)行起來(lái)和cmake的基本使用,請(qǐng)參考《程序的生前死后-Cmake-noob-in》-NeoZng這篇文章。
雖然IDE把工具鏈都集成在了一起,極大地方便了我們的使用,筆者還是推薦你學(xué)習(xí)一下GNU工具鏈的使用,至少熟悉編譯、匯編、鏈接的過(guò)程。這樣可以更深入的了解軟件的運(yùn)行,以便在開(kāi)發(fā)過(guò)程中出現(xiàn)問(wèn)題的時(shí)候,快速定位問(wèn)題所在并找到解決方法。
團(tuán)隊(duì)協(xié)作開(kāi)發(fā)需要一款優(yōu)秀的代碼管理工具,那Git就是不二之選,大家肯定都聽(tīng)過(guò)GitHub這個(gè)最大的同性交友平臺(tái),它便是一個(gè)基于Git的代碼托管平臺(tái)。這里有個(gè)小故事,Git是Linux的元老Linus因?yàn)長(zhǎng)inux社區(qū)被禁止使用BitKeepter這款版本控制軟件后,一怒之下在一周之內(nèi)用C寫出來(lái)的程序哦。
我們實(shí)驗(yàn)室開(kāi)始的時(shí)候都是用u盤拷貝程序,有時(shí)候在某個(gè)人的電腦上寫一點(diǎn)有時(shí)候又在minipc上寫一點(diǎn),雖然在文件夾上標(biāo)準(zhǔn)了時(shí)間和版本號(hào),然而這并沒(méi)有什么用,這導(dǎo)致一次合并代碼的時(shí)候有十多個(gè)版本的代碼,根本不知道哪個(gè)能用哪個(gè)不能用,那時(shí)候又還不知道diff這個(gè)工具,弄得眼睛都快無(wú)了。
要學(xué)習(xí)Git,推薦這幾個(gè)網(wǎng)站:廖雪峰的git教程 git簡(jiǎn)易指南-no deep shits! GitHub Guides
在學(xué)習(xí)Git的時(shí)候,一定要?jiǎng)邮指黄饘?shí)踐,切忌光看不動(dòng)!
?
git的標(biāo)志性圖標(biāo),分岔的icon表示強(qiáng)大的分支功能
?
Microsofot Edge DEV for Linux :Edge瀏覽器Linux版,可以方便同步windows下的收藏夾、設(shè)置、插件等。集錦的功能非常好用。
SimpleScreenRecorder :一款錄制屏幕的軟件。
qv4l2:linux下相機(jī)驅(qū)動(dòng)的圖形界面,在Ubuntu軟件商店可以找到,方便調(diào)節(jié)相機(jī)參數(shù)。
Meld:一款diff軟件的圖形界面,方便對(duì)比文件的不同,在Git使用merge或pull的時(shí)候可能會(huì)用上,在Ubuntu軟件商店可以找到。
Fsearch:和Windows下的everything類似,提供超快速的文件搜索功能。
Typora:好看好用的markdown編輯器,本文就是使用typora編寫的。使用markdown編寫代碼的說(shuō)明文檔是一個(gè)很好的習(xí)慣,這可以降低其他人閱讀你編寫的代碼的難度,也有利于代碼分享和代碼的傳承。同時(shí),你的也可以使用markdown來(lái)記錄自己的學(xué)習(xí)歷程、一次艱難的問(wèn)題解決之路。使用markdown可以提高你的記錄效率。vscode內(nèi)也有相關(guān)插件提供對(duì)markdown支持。
TigerVNC:一款局域網(wǎng)內(nèi)可用的遠(yuǎn)程桌面軟件,VNCViewer也可以作為替代。強(qiáng)烈推薦使用遠(yuǎn)程桌面調(diào)車!電控都有無(wú)線調(diào)試器,我們?cè)趺茨芄蛟诘厣夏兀舛独洌?。在把運(yùn)算平臺(tái)安裝到機(jī)器人上之后,我也曾經(jīng)拿著一塊小屏幕和鍵鼠,蹲在地上和機(jī)器人進(jìn)行親密交流,這不僅加深了我和機(jī)器人的感情,也加重了我的頸椎病和腰椎鍵盤突出。(最恐怖的是車車的云臺(tái)或者底盤瘋了的時(shí)候,線全部纏到機(jī)器人上!!機(jī)器人甚至有可能對(duì)你造成傷害!!都是電控的鍋,你云臺(tái)怎么又瘋了)使用了vnc后,只要將minipc和你的筆記本連接到同一個(gè)局域網(wǎng),你就可以優(yōu)雅地拿著筆記本調(diào)車了。如果校園網(wǎng)的帶寬不夠,建議買一個(gè)路由器,或者和搭建裁判系統(tǒng)的路由器公用也可以。
上交的同學(xué)更是把這件事做到了極致,他們直接通過(guò)網(wǎng)頁(yè)來(lái)修改機(jī)器人的各種參數(shù)并得到反饋信息,能做到不需要任何遠(yuǎn)程桌面就能實(shí)時(shí)調(diào)參,此想法以為妙絕!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/121755.html
摘要:十開(kāi)放模式識(shí)別項(xiàng)目開(kāi)放模式識(shí)別項(xiàng)目,致力于開(kāi)發(fā)出一套包含圖像處理計(jì)算機(jī)視覺(jué)自然語(yǔ)言處理模式識(shí)別機(jī)器學(xué)習(xí)和相關(guān)領(lǐng)域算法的函數(shù)庫(kù)。 一、開(kāi)源生物特征識(shí)別庫(kù) OpenBROpenBR 是一個(gè)用來(lái)從照片中識(shí)別人臉的工具。還支持推算性別與年齡。使用方法:$ br -algorithm FaceRecognition -compare me.jpg you.jpg二、計(jì)算機(jī)視覺(jué)庫(kù) OpenCVOpenC...
摘要:本文由網(wǎng)易跨境電商部產(chǎn)品經(jīng)理曹宏授權(quán)發(fā)表。根據(jù)交易鏈路的環(huán)節(jié),分工可以進(jìn)一步簡(jiǎn)單細(xì)化為商詳頁(yè)產(chǎn)品導(dǎo)購(gòu)頁(yè)產(chǎn)品,購(gòu)物車產(chǎn)品,訂單產(chǎn)品,支付產(chǎn)品。那么購(gòu)物車的產(chǎn)品都在做什么為了避免假大空,就以購(gòu)物車改版這個(gè)項(xiàng)目介紹一下電商購(gòu)物車產(chǎn)品的工作。 本文由網(wǎng)易跨境電商部產(chǎn)品經(jīng)理曹宏授權(quán)發(fā)表。 作為電商交易鏈路的產(chǎn)品,很多人會(huì)問(wèn),你們都在做什么? 關(guān)于電商產(chǎn)品的工作分類,從流量角度我簡(jiǎn)單分為以下幾類(...
摘要:但無(wú)論是用于何種用途,這些圖像都需要進(jìn)行處理。圖像處理中的常見(jiàn)任務(wù)包括顯示圖像,基本操作如裁剪翻轉(zhuǎn)旋轉(zhuǎn)等,圖像分割,分類和特征提取,圖像恢復(fù)和圖像識(shí)別。圖像處理系統(tǒng)有時(shí)被稱為圖像處理的瑞士軍刀。 showImg(https://segmentfault.com/img/remote/1460000019631626); 原文標(biāo)題:10 Python image manipulation...
摘要:與繪制順序密切相關(guān)的概念是層疊上下文。把正常也算上的話,現(xiàn)在網(wǎng)頁(yè)里可用的混合模式一共種。因此,正片疊底是一個(gè)變暗的混合模式。需要注意的是,其中這個(gè)位于最下層的背景該元素?zé)o背景色,它的混合模式其實(shí)是沒(méi)有作用的,可以認(rèn)為就是默認(rèn)值。 圖層 在Photoshop等圖像編輯軟件里,圖層是最基礎(chǔ)的概念之一。我們平時(shí)看一張照片,就可能想到遠(yuǎn)處的背景、近處的人物這樣的描述,這其實(shí)就是在劃分圖層。多個(gè)...
閱讀 1707·2021-10-25 09:46
閱讀 3326·2021-10-08 10:04
閱讀 2442·2021-09-06 15:00
閱讀 2881·2021-08-19 10:57
閱讀 2144·2019-08-30 11:03
閱讀 1050·2019-08-30 11:00
閱讀 2495·2019-08-26 17:10
閱讀 3630·2019-08-26 13:36