CLRNet 코드 계속 수정
-> 영상을 올리는 것 까지는 맞게 했는데 정확한 차선 정보가 나오지 않음.
아마 input image 값을 서로 다른 값을 넣어서 그런 것 같음.
Base architecture는 Tusimple에 대한 dataset을 따로 만들어서 dataloader에 올려놓는다.
하지만 내가 사용하는 방식은 바로 cv2.imread를 이용해서 data를 사용하기 때문에 다른 것 같다. 아마 Normalization이랑 Resize하는 부분을 같게해서 input data 형식을 맞춰주면 좋을 것 같다.
-말도 안되는 차선 검출
다만 CLRNet의 문제점은 바로 정확성이다. 빠르긴 하지만 차선을 정확하게 검출해내지는 않는다.
가까운 차선이 아니라 멀리 있는 차선을 인식하게 되면 Localization에 문제가 발생할 수 있다. 가장 가벼운 resnet-18 model을 사용하고 있는데 위에 input data 문제를 해결하면 resnet-34로 올려 볼 생각이다. (resnet-18 model 사용시 cuda memory 4000정도 증가...)
문제점 1. 정확성: 차선의 정확도가 너무 떨어진다. input data 형식이 달라도 그렇지 너무 검출되지 않는다. 말 그래도 속도만 빠르다.(FPS 70~90)
문제점 2. 시각화: 검출된 차선을 시각화하는 작업이 너무 힘들다. 아무래도 resize해서 검출된 차선이 저장되는 것 같은데 이것을 손보면 될 것 같다.
● Tusimple data로 test를 진행한 차선. 알맞게 나오지 않는 것을 알 수 있다. 검출한 Lane을 원래 img에 바꾸는 작업이 필요한데 이것을 잘 손보면 될 것 같다.
● 유튜브에 있는 도로 주행 영상으로 test를 진행 해봤다. 한 쪽만 검출될 뿐만 아니라 이상하게 visualization된다.
곰곰히 생각해 본 결과, 일단 기존에 있는 차선(segmentaion + sliding window)기법을 완벽하게 숙지하고 정확한 결과를 낼 수 있도록 수정한 뒤에 CLRNet을 보기로 했다. 시작했으니 CLRNet은 포기하지 않고 끝까지!!
3/23
Tusimple dataset으로 학습 돌리기 성공!
Tusimple data를 jupyter server에 wget 'open data site'을 통해서 업로드 시켰다.
(ubuntu 인터넷이 자꾸 끊겨서 그냥 윈도우 환경에서 jupyter server를 이용하기로 함)
실행 시키기는 했지만 잘 돌아가는 지는 모르겠음.
3/24
ENet으로 학습시킨 결과 기존 model(last.pth)대비 F1 Score기준 1% 상승
(위에가 best.pth, 아래가 overfitting된 last.pth)
1%라도 정확하게 segmentation하기 위해서 Best.pth를 사용하기로 함
Best.pth로 도로주행 영상을 test한 center position의 결과
last.pth로 도로주행 영상을 test한 center position의 결과
유의미한 차이는 없어 보이지만 자세히 보면 위아래로 튀는 noise값이 줄어든 것을 볼 수 있다.
Tusimple Data로 학습시킨 ENet의 loss결과 (csv 파일)