Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

:)

원근 변환과 슬라이딩 윈도우 본문

ROS

원근 변환과 슬라이딩 윈도우

mihee 2022. 4. 10. 21:31

차선 검출에 Warping을 적용

  • Warping 과정을 거쳐서 차선 추출
    • 도로 이미지를 Bird Eye View 변형 처리 (Perspective 변환)
    • 차선을 찾고
    • 그걸 다시 원본 이미지에 오버레이

원근변환과 슬라이딩 윈도우를 이용한 차선 찾기

  • 단계
    • Camera Calibration
    • Bird`s eye View
    • 이미지 임계값 및 이진 이미지
    • 슬라이딩 윈도우로 차선 위치 파악
    • 파악된 차선 위치 원본이미지에 표시

Camera Calibration

  • 카메라는 곡면 렌즈를 사용해서 이미지를 형성
    • 그로 인해 가장자리가 왜곡되어 보이게 됨
  • 가장자리 왜곡으로 인해
    • 물체의 크기, 모양이 변경되기도 함
    • 시야의 위치에 따라 모양이 변경되기도 함
    • 실제보다 더 가깝거나 멀게 보이기도 함
  • 이미지의 왜곡은 카메라의 다양한 내부적 요인들로 인해 발생
    • 렌즈, 렌즈-이미지 센서와의 거리, 렌즈와 이미지 센서가 이루는 각도 등
  • 이런 왜곡을 없애서 실제 우리 눈에 보이는 것과 같이 보정하는 것 -> Camera Calibration
  • 왜곡된 지점을 왜곡되지 않은 지점으로 Mapping 하여 왜곡을 없앰.

Bird`s-eye View

  • 새가 하늘에서 내려다보는 듯한 구도로 위에서 아래를 내려다보는 방식
  • 선의 곡률을 측정하기 위해서 도로 이미지를 하향식 보기로 변환
    • 하향식 보기 = Bird`s-eye View

  1. 역 원근변환 계산을 위해 cv2.getPerspectiveTransform(dst, src) 사용
  2. 마지막으로 원근변환을 사용해서 이미지를 뒤틂.
    • cv2.warpPerspective(img, M, img_size, flags=cv2.INTER_LINEAR) : 앞서 계산한 원근변환을 사용해서 이미지를 뒤틀어 원하는 구도로 변환.
  • 원근 변환을 위한 4개의 점은 어떻게 식별하는가?
    • 도로를 내려다볼 때, 직사각형을 나타내는 사다리꼴 모양의 4개 점을 선택 (도로가 평면이라는 가정)
    • 가장자리 또는 모서리 감지를 통해 이미지에서 4개의 점을 감지하고 색상 및 속성을 분석해 선택
    • 선택한 4개의 점을 적절하게 정렬

이미지 임계값, 이진 이미지

  • 차선이 명확하게 보이는 이미지를 생성하기 위해서 색상 임계값 조절
  • 이미지를 흰색과 노란색으로 마스킹
  • Gray scale로 변환
  • 이진 이미지 생성

차선 식별 

히스토그램

  • 도로 이미지에 보정, 임계값 및 원근 변환을 적용하여 차선이 두드러지는 이진 이미지를 얻음
  • 얻은 이진 이미지에서 어떤 픽셀이 라인의 일부이고 이게 왼쪽 라인인지, 오른쪽 라인인지 결정
  • 각 열에 따라 픽셀 개수를 더하면 히스토그램에서 가장 눈에 띄는 두개의 peak가 생성되고, 차선의 x 위치를 파악할 수 있음.

슬라이딩 윈도우

  • 선 중심 주변에 배치된 슬라이딩 윈도우를 사용해서 프레임 상단까지 선을 찾아 따라 감
  • 한 윈도우 안에서 감지되는 선의 중심을 기준으로 계속 윈도우가 쌓임
  • 아래쪽 처음 블록은 앞선 히스토그램으로 정의되고, 이미지 아래쪽에서 위쪽으로 검색하여 올라감.
  • 슬라이딩 윈도우가 여러 개 쌓이게 되면 그 중심을 연결해서 선을 그림
  • Polyfit을 사용하여 2차원으로 표현 -> ay^2 + by + c = x
  • 2차식을 통해서 a,b,c 값을 구하게 됨

 

'ROS' 카테고리의 다른 글

필터기반 조향각 제어  (0) 2022.04.11
슬라이딩 윈도우 기반 차선 인식  (0) 2022.04.10
와핑기법과 원근 변환  (0) 2022.04.10
허프변환 기반 차선인식  (0) 2022.04.10
명도차 기반 차선 인식  (0) 2022.03.30
Comments