240
笔下虽有千言,胸中实无一策

学习笔记 | CarND Project - Advanced Lane Finding

(Udacity Learning Note: CarND-Term1 Project 4)

Camera Calibration & Distortion Correction

Two Types of Distortion

  • Radial Distortion
  • Tangential Distortion

Using OpenCV

Example

  • Finding chessboard corners (for an 8x6 board):
ret, corners = cv2.findChessboardCorners(gray, (8,6), None)
  • Drawing detected corners on an image:
img = cv2.drawChessboardCorners(img, (8,6), corners, ret)
  • Camera calibration, given object points, image points, and the shape of the grayscale image:
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[:-1], None, None)
  • Undistorting a test image:
dst = cv2.undistort(img, mtx, dist, None, mtx)

Perspective Transform

Commonly Used View

  • Front-facing View (Normal View)
  • Top-down View (Bird-eye View)

Why?

  • Because ultimately we want to measure the curvature of the lines, and to do that, we need to transform to a top-down view.

Apply Perpective Transform using OpenCV

  • Compute the perspective transform, M, given source and destination points:
  M = cv2.getPerspectiveTransform(src, dst)
  • Compute the inverse perspective transform:
  Minv = cv2.getPerspectiveTransform(dst, src)
  • Warp an image using the perspective transform, M: (warp v. 扭曲)
  warped = cv2.warpPerspective(img, M, img_size, flags=cv2.INTER_LINEAR)

Gradient Threshold

Sobel Operator

  • The Sobel operator is at the heart of the Canny edge detection algorithm.

Example use of Sober operator

  • Calculate the derivative in the x direction (the 1, 0 at the end denotes x direction):

    sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0)

  •  Calculate the derivative in the y direction (the 0, 1 at the end denotes y direction):

    sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1)

  •  Calculate the absolute value of the x derivative:

    abs_sobelx = np.absolute(sobelx)

  •  Convert the absolute value image to 8-bit:

    scaled_sobel = np.uint8(255*abs_sobelx/np.max(abs_sobelx))

Direction of Gradient

  • The direction of the gradient is simply the inverse tangent (arctangent) of the y gradient divided by the x gradient: 
    • arctan(sobely​​/sobelx​​).

Color Space

  • RGB
  • HSV
  • HLS

Reference

  1. Wikipedia: HSL and HSV

 

posted @ 2017-08-24 02:38  CasperWin  阅读(1228)  评论(0编辑  收藏  举报