본문 바로가기
Project/pothole

[yolo]욜로활용한 도로 포트홀 구분프로젝트 (2)

by 바다의 공간 2024. 12. 18.

포트홀 구분프로젝트(1)

 

https://so-fast.tistory.com/entry/yolo%EC%9A%9C%EB%A1%9C%ED%99%9C%EC%9A%A9%ED%95%9C-%EB%8F%84%EB%A1%9C-%ED%8F%AC%ED%8A%B8%ED%99%80-%EA%B5%AC%EB%B6%84%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8


지난시간의 결론

이번 실험에서는 정밀도와 mAP가 개선된것을 확인했지만 재현율의 한계로인해 탐지되지 않은 객체가 있었습니다.

데이터가 많이 부족했던 탓도 있기때문에 데이터 증강, 에포크 추가 학습을 통해 성능개선을 시도해 볼 계획입니다.

 

 

개선사항

세부사항

1. 데이터 증강 (서치)

2. 에포크 70~100으로 늘려서 성능 안정화를 시도해보려고합니다.


위처럼 결론으로 냈고 이번에는 (2)로 세부사항의 조건에 부합하는 1,2를 둘 다 충족시켜보려고 합니다

 

데이터 증강은 캐글을 이용해서 데이터셋을 아예 갈아 엎었습니다.

아래 데이터셋은 어노테이션은 되어있지않아서 따로 로보플로우를 통해 라벨링 작업을 해주었습니다.

(https://www.kaggle.com/datasets/atulyakumar98/pothole-detection-dataset)

 

또한 부족했던 에포크 수를 70으로 늘려서 돌려보려고 합니다.

기본 코랩으로 밤새 돌려서 얼마나 소요되는지 확인해보려고 합니다.


에포크 70도 이미지 증강이 되니 생각보다 굉장히 많이 걸렸고 이번에 알게 된 사실은 

돌려놓고 컴퓨터 밖에서 내가 할 것을 할 수가 없었다!

물론 js를 활용해서 조금 조정해볼수는 있는것같지만 나는 정석대로 얼마나 돌아가는지 틈틈히 확인하고싶었다.

 

그래서 돌려놓고 옆에 작게 창을 켜놓은 후 타임어택처럼 진행했다.

 

그래서 총 9시간만에 완성된 yolobest.pt

추가로 patience=10 <-- 얼리스탑 을 하고싶었는데 따로 그렇게 하지는 않았다 다음에는 꼭! 신경쓰기


다시 돌아와서 결과값을 좀 보자면 가장 중요하게 평가할 수 있는 mAP, Precision-Recall관련 그래프를 보려고합니다.

RESULT

val 의 loss가 너무 높거나 불안전하면 과적합 혹은 학습의 부족이라는 뜻으로 해석할 수 있는데 

지금같은경우는 내려가다가 다시 올라가고 내려가다가 다시 올라가고 를 반복하는것을 볼 수 있습니다.

문제가 있다고 볼 수 있겠죠? 그러면 개선점으로 데이터 증강이나 튜닝, 얼리스타핑을 적용해야한다고 합니다.

 

PR

또한 precision-Recall은 precision과 Recall간의 균형을 확인하는 핵심 그래프인데요

pre가 높고 re가 낮으면 미검출 객체가 많다는것입니다 . 지금 보면 pre는 높고 recall은 낮다고 볼 수 있습니다.

예측은 신중하게 잘 하는데 많은 객체를 놓치고 있다고 볼 수 있습니다.

F1-SCORE

또한 f1-score은 f1가 가장 높은 threshold를 찾아서 모델의 최적의 성능을 발휘하도록 하는데

여기서는 약 conf가 0.3~0.4사이에서 f1 score가 0.5~0.6 사이로 최고값을 가집니다.

 

X축: Confidence Threshold (예측 결과를 "정답"으로 판단하는 기준값) 
낮으면 Recall이 높아지고, 높으면 Precision이 높아집니다.
Y축: F1 Score (모델의 전체적인 성능 평가 지표).

 

가장 높은 점수인 0.346 정도로 Thresold를 0.346으로 설정하면 모델 성능이 최적화될 수 있을것같습니다.

Confidence가 낮으면 F1점수가 상승 -> 많은 객체 예측하지만 오탐지(precision 감소)많아짐

Confidence가 낮으면 F1점수가 하락 -> 정확도는 높지만 많은 객체를 놓칠 수 있음(Recall 감소)


⭐결과 확인

 

HOLE을 잘 잡긴하지만 횡단보도와 맨홀뚜껑도 잡는 모습을 볼 수 있습니다.

 






횡단보도 멘홀

 

문제점


1, 횡단보도에 대한 인식을 학습되지 않음

2. 맨홀뚜껑또한 엄격하게 보면 HOLE인데 이 부분에 대한 정의를 제대로 하지 않은 점

-멘홀뚜껑을 포트홀로 볼지 여부를 명확하게 세웠어야함


 개선방향

 

1. 데이터라벨링 기준을 재정립

2.데이터 다양한 환경으로 증강

3. 위에서 나온 F1-confidence Curve결과를 반영하여 Threshold 0.346으로 설정

4. 과접합 방지를 위해 early stopping적용

 

 

 

 

 

 

 

 

'Project > pothole' 카테고리의 다른 글

[yolo]욜로활용한 도로 포트홀 구분프로젝트  (0) 2024.12.16