허프변환 기반 차선인식

BERT·2023년 4월 11일
0

ROS

목록 보기
19/23

Hough Transform 기반 차선인식

  1. grayscale
  2. gaussian blur
  3. canny edge
  4. ROI
  5. hough transform
  6. Result
  • Image Space (x,yx, y 좌표계)
    y=m0x+b0y=m_0x+b_0
  • Parameter Space (m,bm, b 좌표계)

Image Space에서 직선은 Parameter Space에서 점으로 표현 가능
Parameter Space에서 두 직선의 교점은 Image Space에서 두 점을 지나는 직선 의미

Canny를 통해 edge를 찾고 그 edge의 점들을 Parameter Space로 표현
Parameter Space에서 겹치는 직선이 많은 교점일수록 그 교점이 Image Space에서 많은 점(Parameter Space에서 겹치는 직선)을 지나는 직선일 가능성 높음

기울기 무한대인 직선은 표현이 어려움
\rarr Hough space 도입 (ρ,θ\rho, \theta)
Image Space의 점이 Hough Space에서 곡선으로 표현
기울기가 무한대인 직선도 표현 가능

Hough Transform을 이용한 직선 검출 방식

  1. 입력 영상을 흑백 변환 처리
  2. Canny edge 처리로 외곽선 영상 획득
  3. ρ,θ\rho, \theta 간격 설정
  4. 외곽선 점들에 대해서 (ρ,θ\rho, \theta) 좌표값 구하기
  5. 오차범위 내의 (ρ,θ\rho, \theta) 좌표값을 갖는 외곽선 점들이 하나의 직선을 구성한다고 판정

HoughLines 함수

cv2.HoughLines(imagae,rho,theta,threshold)
image : 8bit 흑백 이미지
rho : 조사할 ρ\rho를 증가량
theta : 조사할 θ\theta를 증가량
threshold : 직선 형성 판단 기준

HoughLinesP 함수

cv2.HoughLinesP(imagae,rho,theta,threshold,minLineLength,maxLineGap)
minLineLength : 직선 형성 최소 선분 길이
maxLineGap : 선분 구별 최대 길이


xycar_ws
├ src
│ └ hough_drive
│   └ src
│     ├ hough_find.py
│     ├ hough_track.avi
│     └ steer_arrow.jpg
├ build
└ devel

python hough_find.py

0개의 댓글