내맘대로 공부기록.

머신비전 9

[ 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++ ] approxPolyDP 함수 사용 방법.

어떤 함수 ❓ 🤔 "형상을 근사" 하는 함수입니다. 검출된 형상(외곽선)을 표현하기 위해, 점 데이터가 사용되어지는데요. 그 데이터 수를 수많은 어레이 점 데이터에서, 보다 적은 점으로 커브 또는 다각형 형상을 표현할 수 있게 됩니다. 조금 더 쉽게 풀어 얘기하면, 사각형 물체의 컨투어(외곽선)를 점 20개로 세밀하게 표현했다고 합시다. 하지만 우리는 사실 사각형(다각형)을 표현하기 위해 꼭지점 네 점만 있으면 되죠. 즉, 사각형(특정 형상)을 표현하기 위한 최소 데이터를 20에서 4개로 근사화 했다 ! 라고 하는 작업을 해주는 함수입니다. (근사 정확도 설정에 따라서, 커브 또는 점 데이터 갯수는 변경될 수 있습니다.) approxPolyDP( 컨투어 포인트 어레이, 근사된 포인트 어레이, 근사 정확도..

[ C++ ] 2021.03.17

[ 머신 비전 ] 자율 주행을 구현하기 위해 필요한 것들.(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

[ 머신 비전 ] 채용 공고로 공부 방향 계획하기. 수아랩.코그넥스코리아

🤔 수아랩 에 대한 나의 생각. 인상. 지금은 코그넥스코리아가 되었죠. 우리나라의 자랑스러운 회사입니다. 머신 비전 기반 기술을 주력 아이템으로 성장한 회사입니다. 수아킷(SuaKIT) 이라는 소프트웨어를 자체 개발/출시했구요. 이 소프트웨어는 머신 비전 기술을 딥러닝에 접목시켜 제품 생산에서 발생하는 불량 상황을 빠르고 정확하게 판단합니다. 그리고 사람이 구별할 수 없는 부품 결함까지 검출해주는 역할을 해오고 있습니다. 개념적으론 매우 간단해 보이지만, 제품의 종류와 제품을 검출하는 조건에 따라서 매우 복잡하고 난이도가 높은 기술인 것 같습니다. 게다가 이 어려운 기술을 제품으로 출시해서 실제 적용까지 하고 있는 부분도 매우 높게 평가할 만한 부분이 아닌가 싶습니다. 이러한 부분이 종래에 제조업 분야에..

[ STUDY ] 2021.03.13

[ openCV | C++ ] drawContours 함수 사용 방법.

어떤 함수 ❓ 🤔 "그리는" 함수 입니다. 컨투어를 검출하는 작업이 아닌, 검출된 컨투어 데이터를 이미지에 뿌려서, 이미지를 표현 하는 함수입니다. drawContours( 타겟이미지, 검출된 컨투어 포인트 어레이, 포인트 어레이 인덱스, 컨투어 색상, 컨투어 라인 두께, 컨투어 라인 타입, ... ) 매개변수 (설명) 🔑 타겟이미지 : 컨투어 라인을 그릴 이미지를 지정합니다. Mat 형태의 이미지 파일을 지정하면 됩니다. 🔑 검출된 컨투어 포인트 어레이 : approxPolyDP 함수를 이용하여 얻어진, 다각형을 표현하는 (근사된) 포인트 집합 데이터를 대입합니다. 이 데이터를 생성하기 위해서는 findContours 작업이 선행되어야 합니다. 🔑 포인트 어레이 인덱스 : 두번째 인수(어레이)의 인덱스..

[ C++ ] 2021.03.07

[ 머신 비전 ] 채용 공고로 공부 방향 계획하기. 카카오 모빌리티.

머신 비전 분야에 진입하기 위해서 어떤 부분을 준비해야 할지 정리하려고 합니다. 가장 빠르고 직관적인 방법은 머신 비전 분야에 채용을 진행하고 있는 회사의 채용공고(+사업방향/계획)를 확인하는 것이라고 생각했어요. 그래서, 카카오 모빌리티가 진행하고 있는 채용공고를 찾아봤습니다. 🚕 카카오 모빌리티 🚌 🙇🏻‍♂️ 채용 사이트 카카오모빌리티 채용 카카오모빌리티 크루, 온라인 입사 지원, 영입 프로세스, 진행중 공고, 근무환경 소개. kakaomobility.recruiter.co.kr 🔗 관심 있는 채용 직군 : R&D 엔지니어 영입 (자율주행 S/W 엔지니어, 퍼셉션(인지) 엔지니어) 카카오모빌리티 채용 카카오모빌리티 크루, 온라인 입사 지원, 영입 프로세스, 진행중 공고, 근무환경 소개. kakaomo..

[ STUDY ] 2021.02.25

[ openCV | C++ ] 머신비전 이해를 위한 openCV 기초 리뷰

🙋🏻‍♂️ openCV를 시작하면서, 무(無) 일 때 openCV의 느낌? 📋 튜토리얼 시작 📏 이미지 리사이징 🖼 이미지 변환 1. 그레이 스케일링 2. HSV 스케일링 ⭕️ 엣지검출 1. 블러(Blur) 처리 2. 엣지 검출, Canny Edge Detector 🙇🏻‍♂️ 기초 이미지 처리를 학습 후 openCV의 느낌? 🙋🏻‍♂️ openCV를 시작하면서, 무(無) 일 때 openCV의 느낌? 많은 조사를 하지 않고 막 공부하자! 느낌으로 달려들다가, openCV를 openGL과 헷갈려 openGL을 공부해부렸다. . 처음부터 하고자 했던 방향은 머신 비전을 이용한 자율주행, 또는 머신 비전을 이용한 결품 검사 소프트웨어 작성 등을 목표로 했었지만 완전히 다른 방향으로 가고 있었다. 어쨌든 open..

[ C++ ] 2021.01.30
반응형