• 티스토리 홈
  • 프로필사진
    Cat_Code
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Cat_Code
  • 프로필사진
    Cat_Code
    • 분류 전체보기 (117)
      • [네이버 부스트캠프] (46)
        • ⭐주간 학습 정리 (43)
        • 🎶추가 학습 정리 (3)
      • [연습의 흔적들] (27)
        • 백준⚾ (26)
        • 캐글 & 데이콘 🤝 (1)
      • [ML] (23)
        • 머신러닝 💕 (5)
        • 딥러닝 🔫 (10)
        • 데이터 분석 🖤 (1)
        • 수학 ☑️ (4)
        • LLM🦜 (3)
      • [CS] (17)
        • 파이썬 🖤 (13)
        • 해체 분석기📝 (3)
        • Service Product (1)
        • MultiMedia (0)
      • [개발일지] (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • mAP - Mean Average Precision
        2023년 05월 03일
        • Cat_Code
        • 작성자
        • 2023.05.03.:38

        본 글은 네이버 부스트 캠프 AI Tech 기간동안

        개인적으로 배운 내용들을 주단위로 정리한 글입니다

         

        본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고

        복습 중요도를 선정해서 정리하였습니다

         

         

        ✅ Week 9

        1. Confusion Matrix - Precision, Recall

        2. Intersection Over union - IoU

        3. PR Curve

        4. Average Precision - AP

        5. Mean Average Precision - mAP


        Intro

        Computer Vision 분야에서 Obejct Detection은 Deep learning의 발전이후 급격하게 관심을 받고 발전한 분야이다

        Object Detection과 기존 Classification과의 차이점은 input image에서 객체의 위치를 탐지하는 localization이 추가되었다는 것이다

        즉,Classification보다 조금더 난이도 있는 task라고 할 수있다

         

        이러한 Object Detection의 모델을 평가하는 기준에는 2가지의 분류가 있다

        (1) 성능 (2) 속도

         

        속도에는 FPS와 Flops가 있으며

        오늘 자세히 살펴볼 성능 지표에는 mAP가 대표적이다

         

        mAP를 이해하기위해서는

        Confusion Matrix, PR Curve, AP 등  다양한 개념을 먼저 이해할 필요가 있다

         

        그럼 순서대로 살펴보자

         

        1. Confusion Matrix - 오차행렬

        Confusion Matrix는 모델의 Prediction 성능을 평가하기 위해 Ground True와 Predict 값을 비교하는 표이다

         

        자세히 살펴보면 

        TP : True Positive - 검출 되어야할 것이 검출  - 긍정으로 예측한 값 중 실제 긍정인 값

        FN : False Negative - 검출 되어야할 것이 검출 되지 않음  - 부정으로 예측한 값 중 실제 긍정인 값

        FP : False Positive - 검출 되지 말아야할 것이 검출 - 긍정으로 예측한 값 중 실제 부정인 값

        TN : True Negative - 검출 되지 말아야할 것이 검출 되지 않음 - 부정으로 예측한 값 중 실제 부정인 값

         

         

        이렇게 만들어진 Confusion Matrix를 활용해서 

        Precision과 Recall을 구할 수 있다

         

        ✅Precision - 정밀도 

        : 모델이 긍정이라고 예측한 값중 실제 긍정인 값의 비율 - 즉, 예측 기준으로 모델 평가

         

        ✅Recall - 재현도

        : 실제 긍정인 값 중 모델이 긍정이라고 예측한 값의 비율 - 즉, 실제 값의 기준으로 모델 평가

         

        이 두개의 값을 활용해서

        F1 Score를 구할 수 있다 

        물론 오늘 살펴볼 내용과는 관계는 없지만 참고!!

         


        2. Intersection Over union - IoU

         

        IoU는 임계값을 정해서 실제 Ground True box가 예측한 bbox의 교집합이 입계값 이상인 경우 양성으로 하는 평가지표로

        임계값이 0.5 인경우를 예로든다면 Ground True box와 bbox의 교집합이 0.5 이상인 경우 양성이된다

         

        IoU를 활용하는 이유는 예측한 bbox의 위치를 평가하기 위해서 활용한다

         

        위에서 배운 Confusion Matrix를 활용하면 bbox의 TP, FP, FN, TN을 구할 수 있고

        이렇게 구한 것들로 정밀도와 재현도를 계산할 수 있다

         

         

        하지만 이렇게 구한 Precision, Recall의 경우 동일 모델이라도 Confidence score 에 따라서 달라질 수 있다

        즉, Threshold의 값에 따라서 변화 할 수 있는 것이다

         

        위의 사진을 보면 확인할 수 있듯이  Precision과 Recall이 confidence에 따라서 값이 변화하는 것을 확인할 수 있는데

        두 값의 관계가 Trade-off 관계에 있다는 것도 확인 할 수 있다


        3. PR Curve

        이렇게 구한 Precsion과 Rcall 그리고 confidence를 활용해서 PR Curve를 그릴 수 있다

         

        PR 곡선은 Precsion과 Rcall의 관계를 그래프로 표현한 것으로

        Confidence 값의 변화에 따라서 변화하는 Precsion과 Recall의 관계를 표현할 수 있다

        이러한 그래프를 통해서 모델의 전체적인 성능을 평가하는 지표에 활용한다

         

        위 그래프는 confidence score를 내림차순으로 정렬하여서 그린 PR 곡선으로

        이를 활용해서 AP를 구할 수 있다


        4. Average Precision - AP

        이처럼 PR 곡선이 있다고 가정해보자

        우리가 구하고 싶은 것은 AP - Average Precision이다

         

        간단하게 구할 수 있다

        앞에서 살펴본 그래프를 단조적 감소 형태로 변환 시켜준다 - 위 이미지

        이렇게 그린 그래프로 

        선아래의 면적을 구하면 AP의 값이 된다

         

        위의 그래프를 예시로 해서 

        계산을 해보면 

        : 1 * 0.33 + 0.86 * (0.4-0.33) + 0.77 * (0.46 - 0.4) = 0.4364이다

         


        5. Mean Average Precision - mAP

        AP를 이해했다면 mAP는 더욱 간단해진다

         

        실제로 모델이 예측을 할때 Class 하나만 예측하는 경우는 거의 없을 것이다

        위의 과정까지는 하나의 Class에 대한 AP를 구하는 방법이었기 때문에

        간단하게 각 클래스의 AP를 구해주고

        이를 평균을 내면 mAP가 된다

         

        즉, 모든 Class AP의 평균을 구한 것이 mAP이다

         

         

        ✅pyothon 으로 구현한 mAP 

         

        Python으로 구현한 mAP(mean Average Precision)

        이번 포스팅에서는 Object Detection 모델의 성능 평가 지표인 mAP(mean Average Precision)을 python으로 구현하는 과정을 살펴보도록 하겠습니다. 구현 과정을 살펴보면 Kaggle과 같은 경진대회 참여시, 모델

        herbwood.tistory.com

         

        '[네이버 부스트캠프] > ⭐주간 학습 정리' 카테고리의 다른 글

        Neck  (0) 2023.05.08
        2 Stage Detectors  (0) 2023.05.03
        [부스트 캠프]Week 8 회고 및 Week 9 목표정리  (0) 2023.05.03
        Docker  (0) 2023.04.27
        파이썬 버전 관리  (0) 2023.04.25
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바