inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Faster-RCNN 성능 지표 관련 질문입니다.

59

이영규

작성한 질문수 2

0

Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.353

Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.599

Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.331

Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.213

Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.386

Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.541

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.221

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.419

Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.452

Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.281

Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.529

Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.609

 

위의 성능지표는 Faster-RCNN을 훈련한 결과로 출력 된 성능 지표입니다.

 

Faster-RCNN과 YOLOv8의 성능을 비교해보기 위해서 성능 지표를 확인하려고 하는데

Faster-RCNN의 결과로 출력된 성능 지표가 YOLO의 성능지표랑 조금 다른거같아 어떻게 비교해야할지 궁금합니다.

 

YOLO는 훈련 후 결과가 Precision, Recall, mAP50, mAP50-95로 나오게 되는데

Faster-RCNN의 경우에는 위와 같이 Average Precision, Average Recall이 다양한 IOU 임계값에 따라 출력되는것으로 보이는데 여기서 YOLO 처럼 Precision,Recall,mAP50, mAP50-95 를 구할수 있는지 궁금합니다.

 

 

 

from detectron2.evaluation import COCOEvaluator, inference_on_dataset

from detectron2.data import build_detection_test_loader

from detectron2.engine import DefaultTrainer

import os

# 가중치 경로 설정

cfg.MODEL.WEIGHTS = os.path.join(cfg.OUTPUT_DIR, "model_final.pth")

# 학습된 모델 로드

trainer = DefaultTrainer(cfg)

trainer.resume_or_load(resume=True)

# 평가 진행

evaluator = COCOEvaluator("coco_test", cfg, False, output_dir="./output/")

val_loader = build_detection_test_loader(cfg, "coco_test")

results = inference_on_dataset(trainer.model, val_loader, evaluator)

# 결과 출력

print("Test 결과 (coco_test):", results)

위의 코드처럼 detectron2에서 Faster-RCNN 으로 훈련 시킨 후 가중치를 가지고와서 COCOEvalutator로 test한 결과 인데 Precision,Recall, mAP50을 YOLO와 동일하게 측정하고 싶습니다.

어떻게 해야할까요?

faster-rcnn 딥러닝 컴퓨터비전 coco

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

이영규님, Faster-RCNN과 YOLO의 성능 지표를 비교하기 위해서는 두 모델 간에 통일된 기준을 사용하는 것이 중요합니다.

Faster-RCNN의 경우, COCOEvaluator를 활용하여 다양한 IoU 임계값에서의 Average Precision(AP)과 Average Recall(AR)을 측정합니다. YOLO는 주로 mAP50, mAP50-95, Precision 및 Recall을 사용하여 성능을 평가합니다.

YOLO의 mAP50은 IoU 기준 0.50에서의 AP를 의미하고, mAP50-95는 IoU 0.50부터 0.95까지의 평균 AP입니다. Faster-RCNN의 결과에서도 이와 같은 방식의 mAP50을 직접 구할 수는 없지만, 다양한 IoU 설정에서의 AP를 통해 유사한 비교가 가능합니다.

다음은 기존 COCOEvaluator로부터 YOLO의 성능 지표와 통일된 결과를 얻을 수 있는 방법입니다:
1. COCOEvaluator는 기본적으로 COCO의 모든 AP 및 AR 지표를 제공하므로, 측정된 결과에서 AP @[ IoU=0.50:0.95 | area=all ]와 AP @[ IoU=0.50 | area=all ]을 통해 YOLO의 mAP50-95와 mAP50에 해당하는 결과를 비교할 수 있습니다.
2. Precision과 Recall의 경우, COCOEvaluator를 사용하여 IoU 임계값을 0.50으로 설정한 후 데이터셋을 평가하면 됩니다.

이미 코드를 실행하고 결과를 얻으셨으므로, 이 결과에서 필요한 지표를 선택하여 YOLO와의 비교에 활용하시면 됩니다. 이러한 과정은 두 모델 간의 성능 차이를 이해하는 데 도움이 될 것입니다.

만약 추가적인 질문이 있으시거나 더 도움이 필요하시면 언제든지 말씀해 주세요!

정보 출처:
- COCO Evaluator 사용법

0

이영규

답변 감사드립니다.

추가로 질문드리고 싶은건 COCO 형식의 평가지표에서는 Precision,Recall을 알 수 없는지가 궁금합니나. AP(IoU=50)이 mAP50에 매칭되고 AP(IoU)=50:95가 mAp50-95에 매칭이되는데 Precision을 구하려고 IoU 임계값을 50으로 두고 평가를 하게 되면 mAP50과 Precision이 같아지는게 아닌지 궁금합니다

[업로드오류] 강의 내용과 제목 불일치

0

24

2

섹션22 퀴즈 질문

0

30

1

import torch가 안되는 경우는 어떻게 하나요?

0

30

1

소리가 겹쳐서 들려요

0

32

2

20강에서 파인튜닝 때 사용한 데이터가 없어졌습니다. LoRA Trainer 매개변수도 라이브러리 업그레이드로 수정되었습니다.

0

24

1

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드 먼저? 구현하며 배우는 Transformer 먼저?

0

34

1

수업자료

0

29

2

전 강의와 전혀 이어지지가 않음

0

34

1

pytorch local 설치 옵션에 conda 가 없습니다.

0

40

3

pc에서는 괜찮은데 탭으로 들으니 화면확대시 화면이 까맙니다

0

24

1

강의 환경설정 질문

0

43

2

모든 자료 다운로드 누를때마다 똑같은 excel파일이 다운로드 받아짐. 노션 주소 공유되나요?

0

35

2

오토인코더+ Knn, SVC 로 해석하는경우

0

46

3

강의자료에 소스코드가 없는데요

0

51

3

강화학습저장 및 로드

0

61

1

Custom Dataset에서의 polygon 정보 관련

0

90

3

paperswithcode 서비스 종료 관련 문의

0

223

2

Google Colaboratory 연결 시 접근 권한 거절 됩니다.

0

40

1

질문있습니다.

0

61

2

22강 코드 call()메서드 is_training -> model(x,False)로 호출시 밸류에러 참고

0

49

1

강의자료 질문

0

46

1

cvat.ai 보안 수준이 궁금합니다

0

82

2

딥러닝구조를 배웠는데 원리가 궁금하네요

0

99

1

Embedding 모델 fine tuning 관련 질문

0

71

2