目錄
前言
課題背景和意義
實現(xiàn)技術(shù)思路
攝像機(jī)校準(zhǔn)
?編輯
透視變換
?車道像素查找
?識別車道面積
實現(xiàn)效果圖樣例
前言
? ? ??大四是整個大學(xué)期間最忙碌的時光,一邊要忙著備考或?qū)嵙?xí)為畢業(yè)后面臨的就業(yè)升學(xué)做準(zhǔn)備,一邊要為畢業(yè)設(shè)計耗費大量精力。近幾年各個學(xué)校要求的畢設(shè)項目越來越難,有不少課題是研究生級別難度的,對本科同學(xué)來說是充滿挑戰(zhàn)。為幫助大家順利通過和節(jié)省時間與精力投入到更重要的就業(yè)和考試中去,學(xué)長分享優(yōu)質(zhì)的選題經(jīng)驗和畢設(shè)項目與技術(shù)思路。
??對畢設(shè)有任何疑問都可以問學(xué)長哦!
本次分享的課題是
??基于機(jī)器視覺道路視頻車道線檢測
課題背景和意義
計算機(jī)視覺在自動化系統(tǒng)觀測環(huán)境、預(yù)測該系統(tǒng)控制器輸入值等方面起著至關(guān)重要的作用。本文介紹了使用計算機(jī)視覺技術(shù)進(jìn)行車道檢測的過程,并引導(dǎo)我們完成識別車道區(qū)域、計算道路RoC 和估計車道中心距離的步驟。
實現(xiàn)技術(shù)思路
攝像機(jī)校準(zhǔn)
幾乎所有攝像機(jī)使用的鏡頭在聚焦光線以捕捉圖像時都存在一定的誤差,因為這些光線由于折射在鏡頭邊緣發(fā)生了彎曲。這種現(xiàn)象會導(dǎo)致圖像邊緣的扭曲。
def pointExtractor(fname):
#number of boxes in the chessboard
objp = np.zeros((6 * 9, 3), np.float32)
objp[:, :2] = np.mgrid[0:9, 0:6].T.reshape(-1, 2)
objpoints = []
imgpoints = []
images = glob.glob(fname)
for idx, img in enumerate(images):
image = cv2.imread(img)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, (9, 6), None)
if ret == True:
objpoints.append(objp)
imgpoints.append(corners)
return objpoints, imgpoints
def cameraCalibrator(objpoints, imgpoints, image):
imgRes = (image.shape[0], image.shape[1])
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, imgRes, None, None)
undistorted = cv2.undistort(image, mtx, dist, None, mtx)
return undistorted
透視變換
檢測車道的第一步是調(diào)整我們的視覺系統(tǒng),以鳥瞰的角度來觀察前方的道路,這將有助于計算道路的曲率,因此將有助于我們預(yù)測未來幾百米的轉(zhuǎn)向角大小。自上而下視圖的另一個好處是,它解決了車道線相交的問題。實際上只要沿道路行駛,車道線就是平行線。
鳥瞰圖可以通過應(yīng)用透視變換來實現(xiàn),即將輸入圖像中車道區(qū)域四個點映射到所需點上,從而生成自頂向下的視圖。這些點是根據(jù)個案確定,決定因素主要是攝像頭在車輛中的位置及其視野。
def warp(image):
w = image.shape[1]
h = image.shape[0]
src = np.float32([[200, 460], [1150, 460], [436, 220], [913, 220]])
dst = np.float32([[300, 720], [1000, 720], [400, 0], [1200, 0]])
M = cv2.getPerspectiveTransform(src, dst)
invM = cv2.getPerspectiveTransform(dst, src)
warped = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0]), flags=cv2.INTER_LINEAR)
return warped,
閾值
現(xiàn)在車道線是平行的,下一步將它們從輸入圖像上分割出來。輸入圖像包含RGB3個通道,車道線為白色或黃色?;谶@個假設(shè),輸入圖像可以轉(zhuǎn)換為單個通道灰度圖像,從而消除我們不需要的通道。另一個要轉(zhuǎn)換為的顏色空間是HLS顏色空間,其中S通道可能會根據(jù)照明情況提供較好的結(jié)果。在以下示例中,將使用圖像閾值,因為在給定的輸入圖像中它可以正常工作。
?車道像素查找
預(yù)處理輸入圖像后,將在圖像空間中確定并繪制車道。方法是在二進(jìn)制圖像(閾值圖像)的下半部分繪制非零像素直方圖,以觀察模式
?識別車道面積
滑動窗口有助于估計每個車道區(qū)域的中心,使用這些 x 和 y 像素定位函數(shù)search_around_poly()可以適合二階多項曲線。該函數(shù)適合 f(y)而不是 f(x),因為通道在圖像中是垂直的。
實現(xiàn)效果圖樣例
我是海浪學(xué)長,創(chuàng)作不易,歡迎點贊、關(guān)注、收藏、留言。文章來源:http://www.zghlxwxcb.cn/news/detail-430256.html
畢設(shè)幫助,疑難解答,歡迎打擾!文章來源地址http://www.zghlxwxcb.cn/news/detail-430256.html
到了這里,關(guān)于畢業(yè)設(shè)計-基于機(jī)器視覺道路視頻車道線檢測識別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!