自動駕駛演算法崗位實習簡單面試

2021-08-21 18:33:29 字數 3480 閱讀 8753

一.using c++ to write a queue. need support function push(), pop()

答案:

#include #include using namespace std;

template struct node

};class myqueue;

template myqueue::myqueue()

template myqueue::~myqueue()

}template unsigned int myqueue::size()

template void myqueue::push(t ele)

else

(this->num)++;

}template void myqueue::pop()

}template void myqueue::back()

}template void myqueue::front()

}

二. given a non-empty binary tree, find the minimum path sum.

for this problem, a path is defined as any sequence of nodes

the path must contain at least one node and "does not need to go through the root".

input: [-10,9,20,null,null,15,7]

-10/ \

9 -20

/ \

-15 7

output: -45

----------

/* * definition for a binary tree node.

* struct treenode

* };

*/

答案:

void minpathsum(treenode* root,int& left, int&right,int &minsum);

int minpathsum(treenode* root)

void minpathsum(treenode* root,int& left, int&right,int &minsum)

int left1,right1,left2,right2;

minpathsum(root->left,left1,right1,minsum);//left subtree

minpathsum(root->right,left2,right2,minsum);//right subtree;

left = root->val;

right = root->val;

if(max(left1,right1)>=0 &&max(left2,right2)>=0)

if(max(left1,right1)<0)

if(max(left2,right2)<0)

minsum = min(left+right+root->val,minsum);

}/***部分邊界處理錯誤了...

*/-----------

三. compare orb feature to fast

答案:

orb = fast + brief

orb演算法提取特徵是在fast演算法上進行改進的.

在用fast提取出特徵點後,再加乙個特徵點方向,來實現了演算法特徵點的旋轉不變性。

fast本質是一種檢測特徵點的演算法,主要檢測區域性灰度變化明顯的地方,

其主要思想是:如果某個畫素點與鄰域畫素差別較大,那麼該點更有可能是特徵點。

檢測基本流程如下:

1. 在影象中選取某個畫素點p,假設它的亮度為`lp`;

2.設定某個畫素亮度的閾值t,例如`0.3*lp`;

3.以畫素p為中心點,遍歷其周圍半徑為3的圓上的16個畫素點的亮度值;

4.如果檢測出來該圓連續n個畫素點亮度大於`lp+t`,或者連續n個畫素點亮度小於`lp-t`,則畫素點p可認為是特徵點。

5.迴圈以上步驟,對每個畫素執行相同操作。

fast僅比較畫素間的亮度差異,並且不具備方向和尺度資訊,在實際視覺應用中存在缺陷。

鑑於此,orb增加了尺度和方向的描述。

orb演算法使用矩來確定fast特徵點的方向,也就是:

通過矩來計算特徵點以半徑r範圍內的質心,特徵點座標到質心形成乙個向量來作為該特徵點的方向。

brief是乙個二進位制描述子,該演算法計算粗乙個二進位制的特徵描述符。它的具體思想如下:

1.在乙個特徵點的鄰域內,選擇n對畫素點`p(i),q(i)(i=1,2...,n)`;

2.比較每個點對的灰度值大小l,如果`l[p(i)]>l[q(i)]`,生成二進位制串中的1,反之生成0;

3.迴圈以上步驟,對每個畫素對執行相同操作。

生成的n一般取128,256或512.

orb演算法對原始brief進行了改進,使用了高斯函式進行平滑,並加入了抗噪,考慮到了旋轉和縮放。

在加入抗噪後orb在旋轉和縮放中仍有較好表現。

同時fast和brief組合也非常高效,使得orb特徵在視覺slam很受歡迎。

題目1:用二分法求解對於輸入的浮點數x,計算√x的值。

#define prec 0.0001

float func1(float x)

if(x=1)

float begin = 0;

float end = x;

float middle =x/2;

while(middle*middle>x+prec ||middle*middlex-prec )

}return middle;

}

題目2:乙個環上有n個人,編號為0,1,2,3…n-1。從0開始報數,當報到k的人出局,剩下的人接著報。直到所有人出局,對於給定的n和k,輸出依次出局的編號。

//這道題可以用遞迴,我先定義int函式,然後print

int getnum(int n, int k)

int out = (n+k-1)%n-1;

return (getnum(n-1,k)+k-1)%n+1;

}int answer(int n, int k)

lst.erase(iterdel);

}return *iter;

}void func2(int n, int k)

if((a=b+c)||(b=a+c)||(c=a+b))

if((a=b-c)||(b=a-c)||(c=a-b))

if((a=b*c)||(b=a*c)||(c=a*b))

if((a=b/c)||(b=a/c)||(c=a/b))

}

自動駕駛汽車與自動駕駛網路

談到自動駕駛網路很容易讓人聯想到自動駕駛汽車,恰好讀到google的工程師用自動駕駛汽車和自動駕駛網路做的乙個模擬,感覺很有道理的樣子,記錄並分享一下 開發一輛自動駕駛汽車所需要的 1 一輛比較現代的車 2 各式各樣的感測器 效能強大的計算機 ai軟體。3 大量的訓練和測試。類似地,開發自動駕駛網路...

自動駕駛相關

計畫 2021年1月10號前,查資料,了解相關資訊 學習目標 1 路徑規劃,有地圖的基礎上,起點到終點的路徑規劃 2 路徑規劃的技術上,避障等如何實現 自動駕駛工程師,谷歌認證機器學習專家,蘭州大學無人駕駛團隊創始人,主攻深度學習,無人駕駛汽車方向。學習資料記錄 優達學城 學習筆記 20200102...

自動駕駛相關

在實際上行駛中,自動駕駛車輛除了直行,還需要根據需求右轉 左轉或者是倒車,倒車的可能性很小,幾乎沒有自動駕駛公司去做這個場景,左轉相比右轉會更難。尤其是在沒有交通訊號燈,或者是停車標識來引導的左轉,這稱之為無保護左轉,即便是對人類司機而言,都是相當困難的,自動駕駛車輛遇到同樣的難題。waymo的行為...