내맘대로 공부기록.

차선검출 10

[ openCV | C++ ] ( 6 / 6 ) 차선검출. 데이터를 시각화 하기.

차선 검출 데이터를 시각화 📺 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최댓값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 1~5번에서 이미지 속에 있는 차선을 찾아내기 위해 전처리 작업을 진행했습니다. 작업을 통해서 획득한 데이터를, 이미지 프레임에 얹어 주겠습니다. 사실 이 작업은 우리가 보고 있는 영상 또는 카메라 입력 데이터에 대해서 전처리된 데이터를 뿌려주는 개념으로, "이미지 전처리"라는 타이틀을 가져가야 하는 게 맞는지 고민을 했었..

[ C++ ] 2021.09.19

[ openCV | C++ ] ( 4 / 6 ) 차선검출. 이미지 전 처리. 정규화 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기 작업.

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최댓값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 3. Color Filtering(HLS, LAB color space)에서 필터링 한 각 이미지는 원(One) 채널 픽셀 데이터를 가지고 있으며, 이 이미지 요소가 소스가 됩니다. 소스 이미지의 픽셀 분포를 정리하기 위해서, 해당 이미지의 픽셀 최댓값을 이용하여 정규화해줍니다. 그리고 thresholding ..

[ C++ ] 2021.08.28

[ openCV | C++ ] ( 3 / 6 ) 차선검출. 이미지 전 처리. Color Filtering(HLS, LAB color space)

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정) 👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 개념 🧐 차선을 잡아주기 위해서, 원본 이미지의 색 채널을 조작합니다. 우리가 통상 보고 있는 화면의 색은 BGR채널(Blue, Green, Red)의 조합으로 표현할 수 있습니다. 고맙게도 opencv 에서는 BGR 채널을 변환시켜서 빛의 요소 및 색의 명암, 채도, 포화도 등등의 섬세한 요소로 분리하여 표현할 수 있..

[ C++ ] 2021.08.22

[ openCV | C++ ] ( 1 / 6 ) 차선검출. 이미지 전 처리. 왜곡 제거(카메라 보정)

차선 검출을 위한 이미지 전 처리해보기 🛣 ⚙️ 기본 설명 ⚙️ 왜곡 제거(카메라 보정)👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 최초 카메라로 입력되는 이미지 프레임에 대해서, 왜곡현상을 제거합니다. 화면에 출력되는 이미지는 2D 형태이지만, 이 이미지는 실제 세계의 3차원의 형상을 2차원 데이터로 변환시킨 후 디스플레이에 투영시킵니다. 우리는 그 변환된 이미지를 보고 있는 거죠. 이 과정에서 물리적으로 사용되는 카메라의 렌즈 및 그 외 카메라의 ..

[ C++ ] 2021.06.02

[ openCV | C++ ] ( 0 / 6 ) 차선검출. 이미지 전 처리. 파이프 라인.

차선 검출을 위한 이미지 전 처리해보기 🛣 왜곡 제거(카메라 보정)👍 Perspective Transform(원본 이미지 ⏩ 2D) Color Filtering(HLS, LAB color space) 픽셀 값 정규화(feat. 최대값) 및 이미지 픽셀(HLS 1개, LAB 1개) 합치기. Window Search Show Detected Lines and Info. 이 글은 컴퓨터 비전을 이용한 차선 검출 기능을 구현하기 위해, 선행되는 이미지 전 처리 작업을 공부하고 리뷰하는 글입니다. 레퍼런스로 사용한 글은 아래와 같습니다. 아래 글은 파이썬(주피터 노트북 환경, 스크립트 형태 모두 있음)으로 구성되어 있으며, C/C++을 사용하여 전체 내용을 재구성(구현)해보았습니다. 👨🏻‍💻 레퍼런스 : Adva..

[ C++ ] 2021.06.01

[ openCV | C++ ] 기본기만 배우고 차선검출 하는 방법.

다음의 순서로 차선 검출을 구현해봤습니다. 매우 기본적인 부분을 이용했다고 생각합니다. 1. 이미지 준비 🖼 2. 이미지 가공 🛠 이진화 작업 블러 캐니엣지 3. 차선 검출 기능(사용한 함수) 🛣 ① HoughLines ② HoughLinesP 1. 이미지 준비 🖼 차선 검출 이미지는 BDD100K(Berkeley DeepDrive) 소스를 이용했습니다. 데이터 발행기관의 자세한 설명은 여기에서 확인할 수 있습니다. BDD100K 데이터는 웹사이트 회원가입만 하면 데이터를 다운 받을 수 있습니다. 제공하는 데이터 수가 말 그대로 100K(100,000개 : 10만개) 갯수이며, 각 데이터는 40초 영상으로 구성되어 있습니다. 또한, 영상에서 추출한 이미지 데이터도 제공하고 있어서, 그 데이터를 사용했습니..

[ C++ ] 2021.04.17

[ openCV | C++ ] HoughLinesP 함수 사용 방법. (+HoughLines함수와 비교)

어떤 함수 ❓ 🤔 직선을 추출하는 개념으로는 HoughLines과 같습니다. 하지만 이 함수에서는 확률적인 방법으로 접근하는데요. 구체적으로 말하자면 직선 속성을 추출하기 위해 픽셀을 랜덤 하게 선택하는 거죠.(기본 허프 변환에서는 모든 픽셀에 대한 알고리즘 검사를 하게 되기 때문에, 계산에 대한 비용이 매우 큽니다.) 그래서 기본 HoughLines 함수에다가 P(Probabilistic, 확률적인.)만 덧붙이는 형태로 구분됩니다. 간단하게 Probabilistic Hough transform 알고리즘을 써서 직선을 검출하는 겁니다. 알고리즘에 대한 공부는 각자 해보도록 합시다. HoughLinesP( 타겟이미지, 직선속성변수(vector 타입의 어레이 변수), r 방향변위값(경계값), 회전방향각도(경..

[ C++ ] 2021.03.28

[ openCV | C++ ] HoughLines 함수 사용 방법. (차선 검출 준비단계)

어떤 함수 ❓ 🤔 직선을 "검출하는" 함수입니다. 직선을 검출하는 방법으로 Hough Line Transform 알고리즘이 사용되었습니다. 이진화된 이미지(엣지 검출 데이터)를 기반으로, 픽셀 포인트가 같은 직선상에 있다는 조건을 만족하면, 직선의 속성(r, θ) 값을 반환해줍니다. 이론 편은 다음 글을 참고하세요. [ openCV | C++ ] Hough Line Transform 이론편.개념정리. 1. 기본개념 2. 조금 더 깊이(논문) FINITE LINE 1. 기본개념 허프 변환 - 위키백과, 우리 모두의 백과사전 허프 변환 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 허프 변환(Houg fwanggu-lee.tistory.com HoughLines( 타겟이미지, 직선속성..

[ C++ ] 2021.03.26

[ openCV | C++ ] Hough Line Transform 이론편.개념정리.

1. 기본개념 2. 조금 더 깊이(논문) FINITE LINE 1. 기본개념 허프 변환 - 위키백과, 우리 모두의 백과사전 허프 변환 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 허프 변환(Hough transform)은 디지털 화상 처리, 컴퓨터 비전 등에서 사용하는 용어이다. 한 평면 위에 놓여 있는 점들의 집합 P 에서 원소 (xi, yi)를 지나는 모든 직 ko.wikipedia.org 일반적인 1차 직선 방정식은 x, y 평면에서 다음과 같이 표현할 수 있습니다. y=ax+b 여기서 결론적으로 먼저 얘기하면, Hough Line Transform 은 x, y 평면 도메인을 r, theta(θ, 각도) 평면으로 변환하는 작업을 의미합니다. 물론, r, theta 평면 데이..

[ C++ ] 2021.03.23

[ 머신 비전 ] 자율 주행을 구현하기 위해 필요한 것들.(feat. openCV)

🖐 들어가면서. openCV의 기본적인 내용들을 학습하고, 본격적으로 자율주행을 구현하기 위해 필요한 것들을 찾기 시작했습니다. openCV 패키지를 이용해 봄으로써, 자율주행에 사용되는 각 기능들의 기초적인 원리를 이해할 수 있었고, openCV 패키지를 시작으로 자율주행을 구현하기 위해 어떤 기능들이 필요하고 사용 되는지 학습하고자 합니다. 🔗 openCV의 기본적인 내용 학습 📺 참고한 유투브 : www.youtube.com/user/Mhproductionhouse Murtaza's Workshop - Robotics and AI Weekly videos regarding Robotics & AI Projects. www.youtube.com 📋 내가 정리한 글 : [ openCV | C++ ] 머..

[ C++ ] 2021.03.15
반응형