詳解車道線檢測(cè)算法之傳統(tǒng)圖像處理
透視變換
透視變換是將成像投影到一個(gè)新的視平面(鳥瞰圖)。車載相機(jī)拍攝到的圖像中,由于受相機(jī)角度和高度的影響往往會(huì)將平行的車道線拍成梯形,這樣的圖像會(huì)給后續(xù)檢測(cè)帶來較大難度,所以需要我們對(duì)原圖進(jìn)行透視變換,從而得到一張鳥瞰圖。
具體思路是,先讀取兩組坐標(biāo)(例如原圖像的四點(diǎn)坐標(biāo)和目標(biāo)圖像的四點(diǎn)坐標(biāo)),計(jì)算變換矩陣;然后根據(jù)變換矩陣對(duì)圖像進(jìn)行透視變換,并輸出到目標(biāo)圖像。
相機(jī)標(biāo)定
由于一般相機(jī)都多少存在畸變,而自動(dòng)駕駛需要準(zhǔn)確的車道曲率以執(zhí)行正確的方向控制,因此需要對(duì)相機(jī)進(jìn)行校正。首先讀取兩個(gè)坐標(biāo)數(shù)組,計(jì)算變換矩陣;然后根據(jù)變換矩陣對(duì)原圖進(jìn)行透視變換,并輸出到目標(biāo)畫布。
確定相機(jī)內(nèi)參和畸變參數(shù)的過程就叫做相機(jī)標(biāo)定。一般只需要一幅圖像(國際象棋棋盤圖像較為常用)就可以進(jìn)行相機(jī)標(biāo)定。標(biāo)定時(shí)只需要從不同角度拍攝棋盤圖案,通過檢測(cè)棋盤圖案中的角點(diǎn),得到角點(diǎn)像素,并且我們已知真實(shí)世界中的對(duì)象角點(diǎn)坐標(biāo) ,便可進(jìn)行相機(jī)校正。若要進(jìn)行精確的標(biāo)定,通常從不同角度對(duì)同一棋盤拍攝多張照片(10-20張)。
直方圖濾波
簡(jiǎn)單來說,就是沿著X軸統(tǒng)計(jì)每列像素的數(shù)值,并用直方圖表示。其中峰值位置的x坐標(biāo)則對(duì)應(yīng)左右兩側(cè)的車道線。通過這種方式,來獲取車道線位置信息。
圖片來自Udacity無人駕駛課程
初級(jí)車道線檢測(cè)算法--直線
顏色閾值處理
讀取圖片,對(duì)顏色RGB分別設(shè)置閾值,將高于所設(shè)閾值的像素(較亮的白色部分)分離出來。# 讀取圖片image = mpimg.imread('test.jpg')ysize = image.shape[0]xsize = image.shape[1]color_select = np.copy(image)
# 對(duì)RGB通道分別設(shè)置閾值red_threshold = 200 #Tuninggreen_threshold = 200 #Tuningblue_threshold = 200 #Tuning
# 將所設(shè)閾值以下的任何像素都設(shè)置為0rgb_threshold = [red_threshold, green_threshold, blue_threshold]thresholds = (image[:,:,0] < rgb_threshold[0]) | (image[:,:,1] < rgb_threshold[1]) | (image[:,:,2] < rgb_threshold[2])
color_select[thresholds] = [0,0,0]
提取ROIPython# 首先定義一個(gè)空?qǐng)D像mask = np.zeros_like(image)
# 設(shè)置ROI區(qū)域坐標(biāo)(任意多邊形)vertices = np.a(chǎn)rray([[image.shape[1]*.12, image.shape[0]], [image.shape[1]*.25,(image.shape[0]+image.shape[0]*.65)/2], [image.shape[1]*.42, image.shape[0]*.63], [image.shape[1]*.6,image.shape[0]*.63], [image.shape[1]*.8,(image.shape[0]+image.shape[0]*.65)/2], [image.shape[1]*.95,image.shape[0]]]) #Tuning
# 設(shè)置顏色通道,并填充ROIif len(image.shape) > 2: channel_count = image.shape[2] # i.e. 3 or 4 depending on your image ignore_mask_color = (255,) * channel_countelse: ignore_mask_color = 255
cv2.fillPoly(mask, vertices, ignore_mask_color)
# 合并得到ROI,其余部分為零masked_image = cv2.bitwise_and(image, mask)
Canny邊緣檢測(cè)
# 將圖像轉(zhuǎn)換為灰度圖gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# 進(jìn)行高斯模糊,去除噪聲kernel_size = 3 #Tuningblur_gray = cv2.GaussianBlur(gray,(kernel_size, kernel_size), 0) # 參數(shù)kernel_size可以是任何奇數(shù)
# 計(jì)算梯度(Canny邊緣檢測(cè))low_threshold = 50 #Tuninghigh_threshold = 150 #Tuningedges = cv2.Canny(gray,low_threshold,higy_threshold) # 參數(shù):灰度圖,低閾值,高閾值。輸出為邊緣圖。
霍夫變換
rho = 2 theta = np.pi/180 threshold = 15 min_line_length = 50 max_line_gap = 20
# rho和theta是霍夫空間的距離和夾角# threshold是通過同一交點(diǎn)的曲線個(gè)數(shù)最小值# min_line_length是直線的最小像素長度# max_line_gap是線與線之間的最大像素長度。輸出為多條直線
lines = cv2.HoughLinesP(masked_edges, rho, theta, threshold, np.a(chǎn)rray([]), min_line_length, max_line_gap)
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
圖片新聞
最新活動(dòng)更多
-
11月19日立即報(bào)名>> 【線下論壇】華邦電子與恩智浦聯(lián)合技術(shù)論壇
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 蔡司新能源汽車三電質(zhì)量解決方案
-
精彩回顧立即查看>> 蔡司新能源汽車三電質(zhì)量解決方案
-
精彩回顧立即查看>> 2024(第五屆)全球數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)大會(huì)暨展覽會(huì)
-
精彩回顧立即查看>> 【線下會(huì)議】全數(shù)會(huì)2024電子元器件展覽會(huì)
推薦專題
- 1 “作弊器”不靈了?智駕的激光雷達(dá),正在被攝像頭替代
- 2 被逼墻角的Mobileye,祭出 CAIS 大旗,挑戰(zhàn)端到端大模型智能駕駛
- 3 4 激光雷達(dá)與純視覺方案,哪個(gè)才是自動(dòng)駕駛最優(yōu)選?
- 5 激光雷達(dá)即將降價(jià),純視覺回到鄙視鏈底層?
- 6 如何跑贏汽車智能化下半場(chǎng)?
- 7 從小鵬、理想、蔚來布局看自動(dòng)駕駛發(fā)展趨勢(shì)
- 8 智能駕駛的百生相,你是該信呢?還是該信呢?
- 9 比亞迪技術(shù)魚池大戰(zhàn)豐田工具箱,誰將主導(dǎo)未來汽車市場(chǎng)?
- 10 全網(wǎng)最詳解! 美國禁止中國智駕究竟包括哪些?
- IE工程師(汽車智聯(lián)) 惠州碩貝德無線科技股份有限公司
- 現(xiàn)場(chǎng)技術(shù)支持工程師(汽車) 易思維(杭州)科技股份有限公司
- 銷售經(jīng)理(汽車新能源行業(yè)) 廣州瑞松智能科技股份有限公司
- 結(jié)構(gòu)工程師-汽車電子事業(yè)部(J10116) 深圳奧尼電子股份有限公司
- 銷售總監(jiān)-汽車電子方向 深圳市智立方自動(dòng)化設(shè)備股份有限公司
- 項(xiàng)目經(jīng)理(汽車內(nèi)飾&汽車電子) 伯恩光學(xué)(惠州)有限公司
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市