본문으로 바로가기

세상에는 고수가 많고, 그 많은 고수들중 또 많은 분들이 친절(^^)합니다. 요즘은 그 많은 친절한 고수분들의 설명을 따라하는 것 만으로도 참~ 즐거운 공부가 됩니다. 오늘은.. (제가 맨날하는) 또 따라하기 입니다.ㅠㅠ. 오늘은 Simple Lane Detection wth OpenCV라는 글을 따라해보려고 합니다. 단순 따라하기 일 뿐이이서 코드는 그냥 캡쳐해서 봅니다. 긁어서(^^) 사용하고 싶으신 분들은 원작 글로 가시면 됩니다^^ 그리고 이 방법은 딥러닝 등의 방법은 아닙니다. 그래서 요즘 나오는 자율 주행으로 연결하기는 조금 어렵지만, 라인트레이싱을 영상으로 해보겠다~ 정도는 커버될 것 같네요^^

필요한 모듈을 읽고, 데이터도 읽습니다.

읽은 결과는 위 그림입니다. 그냥 차선이 있는 일반적인 도로^^

gray로 살짝 바꿔주겠습니다. matplotlib와 opencv는 rgb, bgr 이렇게 색상 순서가 달라서 plt.imshow 부분에 cmap으로 gray를 잡아주면 푸르딩딩한 사진을 안보게 됩니다.

이렇게요~~~

이제 가우시안 블러~ 처리를 하구요.

그리고 canny edge detection을 적용합니다. 케니 알고리즘은 위키에서도 꽤 잘 나타나는 모양인데, 요즘은 복잡한 알고리즘 공부하기 싫고 이렇게 잘 되는 코드 따라하고 싶어서 그냥 패~스합니다.

우와~ 괜찮네요^^ 그런데 저렇게 edge만 따도 어느게 차선이고 아니다를 알려주기는 어렵습니다. 그래서 관심 영역을 재설정하려고 합니다.

이제.. 이렇게 해서 사진과 같은 크기로 까망색으로 채워줍니다.

여기에서 카메라로 봤을때 가장 관심을 가질 만한 영역을 잡아줍니다.

테스트삼아 이렇게 해서 보면

요렇게 되는 거죠. 저 하얀 부분에 들어온 그림만 대상으로 선을 찾겠다는 뜻 입니다.

그걸 함수로 ~

그리고, 관심 영역을 vertices에 저장하고 반영합니다.

와우~~~

이제 직접 선을 그리는 함수를 만들어 둡니다. 선을 그리는 함수로 HoughLinesP를 이용합니다.

이제~~ 선을 그려보면

이렇게 보입니다. 와우~

그리고 원본 사진에 선을 덮도록 합니다.

ㅎㅎ 멋지네요. 이런 멋진 코드와 설명을 공유해 주다니.. 요즘은 참 공부하기 즐거운 시대입니다.^^


댓글을 달아 주세요

  1. BlogIcon 북두협객 2020.01.13 08:09 신고

    코딩으로 이런걸 구현한다는 게 참으로 재미있는거 같아요
    코딩의 묘미~~

  2. BlogIcon 가족바라기 2020.01.13 10:22 신고

    보고 따라하는게 전 어려워요
    컴퓨터가 익숙하지 않으니 늘 아들한테 질문만 계속해요ㅠㅠ

  3. BlogIcon 모피우스 2020.01.13 13:32 신고

    캬... 정말로 멋진 공부를 하고 계십니다. 부럽습니다.

  4. BlogIcon 드래곤포토 2020.01.13 22:39 신고

    즐거운 시간 보내세요 ^^

  5. BlogIcon 핑구야 날자 2020.01.15 06:51 신고

    중간에 끊어진 차선이나 교차로에서도 차선을 제대로 인식하는 방법이 국산차에도 적용되면 좋을 거 같아요

  6. BlogIcon 구차니 2020.01.21 17:35 신고

    와.. 조금씩 멘탈 회복중인데 다 회복되면 언넝 이것 부터 따라해봐야겠습니다.
    +_+