[데브코스 자율주행 TIL] DAY33 (11/03) 🛣

happy_quokka·2023년 11월 3일
0
post-thumbnail

2023.11.03 DAY33

온라인 차선 인식 프로젝트 최종 제출, 발표일이다!!
어제 멘토님이 달아주신 comment를 토대로 코드를 수정하였고 추가적으로 헤더 파일을 만들었다. 또한 차선의 정답을 알려주셔서 결과값과 확인을 진행하였다. 결과를 보고 수정해야할 사항들을 추가적으로 수정하고 발표를 진행했다.
팀원분이 양보해주셔서 발표를 진행할 수 있었다. 오랜만에 발표...조금 떨렸다...ㅎㅎ 그래도 보고서를 잘 작성해놓은 덕에 잘 진행할 수 있었다. 다른 분들의 프로젝트 결과들을 보니 정말 다양한 방법으로 프로젝트를 진행했고, 간단한 방법으로도 좋은 결과를 낼 수 있다는 것을 다시 한번 깨달았다.
다음주부터 진행될 오프라인 차선인식을 시작하기 전에 알고리즘을 수정하고 코드를 정리해야 할 것 같다!!


🛣 차선 인식 프로젝트

문제 : 차선 좌표가 영상 밖에 존재

차선 좌표 데이터를 csv파일로 만들어 결과값을 확인해보니 좌표값이 영상 밖에 존재하는 경우가 있었다.

이유

  1. 차선이 검출되었을 때 직선이 영상 밖으로 넘어가 offset 위치에서 차선의 좌표가 영상 밖에 존재
  2. 차선이 검출되지 않았을 때, 좌표를 예측하는데 이때 차선의 간격을 더하거나 빼주기 때문에 그 결과가 영상 밖에 존재

해결

  • 검출 또는 예측한 좌표값이 영상 밖으로 넘어갈 경우 0 또는 frame_width로 지정
  • 하지만 직선의 기울기, 절편은 유지하고 결과값, 이미지에 그려지는 좌표만 0 또는 frame_width로 지정 (차선이 검출된 경우 구한 좌표값이 맞지만 영상에서 안보이기 때문이다)

정확도

  • 왼쪽 차선 : 83.49%
  • 오른쪽 차선 : 85.32%
  • 왼쪽 오른쪽 차선 추정 값이 모두 posl, posr 범위 안으로 들어오는 경우에만 정답으로 처리 할 때, 74.3%의 정확도를 보였다.

프로젝트 발표 (느낀 점)

떨렸다...!! 그래도 알고리즘, 진행 순서, 협업 과정 등 전달하고 싶은 내용들을 잘 전달하였다.

이번 프로젝트를 진행하면서 더 좋은 결과를 위해 이런저런 방법들을 다양하게 사용하였다. 하지만 간단하게 진행하여도 비슷한 정확도가 나온다는 것을 확인하였다... 실제 주행을 할때는 수행 속도가 중요하기 때문에 최대한 간단한 알고리즘 방법을 사용하는 것이 중요한 것 같다. 남은 시간동안 최대한 간단하게 간소화하지만 정확도를 유지하거나 증가시킬 수 있는 방법을 찾아야겠다.

같은 목표를 가지고 수행한 프로젝트이지만 각자의 방법으로 진행하였지만 같은 목표에 도달하는 것을 보는 것이 신기하였다. 적용해보고 싶은 방법들도 있었고, 많은 것을 느낀 발표도 있었다. 다양한 생각과 방법들을 알 수 있는 좋은 경험이었다.

앞으로 남은 시간동안 c++ 클래스로 구현하고, 오프라인 프로젝트를 잘 수행할 수 있도록 정리하고, 다른 알고리즘도 적용해 봐야겠다.


📝 배운 내용

머신러닝과 딥러닝

cascade

  • cascade 얼굴, 눈 검출
  • CascadeClassifier(filename) : 생성자
  • detectMultiScale() : 객체 검출 함수
  • 하지만 요즘은 딥러닝을 사용하여 객체를 검출하는 것이 더 좋다.

SVM

  • Ptr<SVM> SCM::create() : svm 객체 생성
  • SVM::setType() : SVM 타입 지정, C_SVC를 주로 사용
  • SVM::setKernel() : SVM 커널 지정
    • RBL : 주로 사용, 비선형 데이터도 분류 가능, gamma 파라미터
  • SVM::trainAuto() : SVM 자동 훈련 (최적의 파라미터들도 훈련된다)

0개의 댓글