原创 Apollo5.5源碼解析:交通燈感知

一、概述 Apollo交通燈感知源碼位置:Apollo/modules/perception/camera/lib/traffic_light 採用的交通燈感知方案總共分爲三步: 首先根據高精地圖+定位所提供的交通燈空間位置投影到圖像上選

原创 C++ 語法 const限定符

const限定符是常用且容易混淆的概念,很多書中講解不清晰,甚至《C++ primer》中都有一些錯誤的論斷或者不明確的區分,本文對const限定符做歸納總結。 一、在類型中 頂層const和底層const是一個非常容易讓人遺忘和混淆的概

原创 Apollo5.5源碼分析:對象工廠

一、概述 使用工廠模式,根據配置文件動態地生成對象。 二、簡單工廠模式 簡單工廠模式由一個工廠對象決定創建出哪一種產品類的實例。 代碼位置Apollo/modules/perception/inference 用來做深度學習推理的框架Ca

原创 C++ 數據類型與變量

一、字節與比特的關係。 計算機使用比特序列存儲數據,每個bit值爲0或1。 可尋址的最小內存塊稱爲字節,計算機將內存中每個字節與一個數字(地址)關聯起來。 單位換算: 1Byte (B)字節 =  8 bit 位  //一個字節由8比特

原创 C++ 面向對象程序設計:(三)多態(虛函數與動態綁定)

一、概述 多態是面向對象程序設計的核心思想。 目的:以統一的方式,調用相似類(父類及其子類,以及多個子類)的對象,從而保證代碼的統一性和應用的靈活性。 在父類中定義好一種函數接口(虛函數),在子類中實現不同功能(覆蓋\重寫),並根據需要調

原创 maskrcnn_benchmark工程詳解

maskrcnn_benchmark工程的github鏈接爲:https://github.com/facebookresearch/maskrcnn-benchmark 一、工程概覽 該工程文件目錄樹如下: maskrcnn_benc

原创 Ubuntu軟件安裝&卸載

一、安裝軟件 1.1 利用dpkg命令安裝.deb文件 sudo dpkg -i package_name.deb #-i表示install 1.2 安裝依賴項,防止出現依賴項問題 sudo apt-get install

原创 Ubuntu 安裝boost

boost是擴展的C++標準庫。 查看電腦默認安裝的boost版本: dpkg -S /usr/include/boost/version.hpp 很多程序需要boost,但是版本可能不是ubuntu系統默認安裝的boost版本。如果將

原创 C++ 圖像處理常用庫

一、 OpenCL (Open Computing Language) parallel programming of diverse accelerators (including multi-core CPUs, GPUs, DSPs

原创 OpenCV: 讀視頻 & 寫視頻

使用cv::VideoCapture類讀取視頻文件、使用cv::VideoWriter類寫入視頻文件,使用思路和方法與C++中處理文件的fstream文件流方法類似。 完整流程如下(各別步驟可以省略或合併): 1、創建對象; 2、與文件綁

原创 C++ 讀取文本

一、讀取txt文本 使用文件流fstream以及stringstream。 fstream和stringstream都繼承自iostream。 按數據的存儲順序依次讀取: a)一次讀取一行或者讀取到指定分隔符: getline() ; 

原创 命令行配置Github\Gitlab工程

準備工作: 全局配置: git config --global user.name "YLY" git config --global user.email "[email protected]" 一、本地文件上傳到github/gitlab上:

原创 Ubuntu 倉庫

準備工作: 備份初始倉庫源 sudo cp /etc/apt/sources.list /etc/apt/sources-bak.list 一、添加倉庫源: sudo add-apt-repository ppa:kirillshkr

原创 Linux實用工具/軟件

一、錄屏  Kazam 參考:https://www.jianshu.com/p/e1f6177dba3a   二、播放器 VLC 推薦理由:跨平臺播放器,支持H264等高清算法壓縮格式(h264壓縮比是200:1,一般的第三方工具不支持

原创 Opencv Mat數據類型&操作

一、概述 Mat用來表示圖像或稠密數組。 特別注意:數組中的數據不是直接綁定在mat的對象上的。Mat對象實質上是一個數據存儲區的頭,而非數組本身。如果忽略這點,經常會帶來bug。 例如,mat1 = mat2,隨後修改mat1或mat2