안녕하세요

브리아나입니다.

 

오늘은 yolo 모델의 성능평가를 파헤쳐볼게요!

 

 

모델 학습을 돌리다보면 관련된 정보를 획득할 수 있는데요!

 

Detection Box의 Precision, Recall, mAP50, mAP50-90

Segemtnation Mask의 Precision, Recall, mAP50, mAP50-90

정보입니다.

 

그럼 하나씩 정리해볼게요!!

 

✅ 1. Detection Preicision

: 모델이 "객체가 있어!" 라고 예측한 상자 중 실제로 객체가 맞는 비율입니다.

 - TP: 예측한 상자와 실제 상자간 IoU가 0.5 이상일 때,

- FP: 실제로 예측했는데, 실제 객체 아닐 때

 

즉, Precision이 높다? 잘못된 객체 예측이 적었다. 실제로 객체를 90%정도 잘 예측했다.

 

✅ 2. Detection Recall

: 모델이 올바르게 탐지한 비율입니다.

 

- FN: 실제 객체가 있지만 놓친 경우입니다.

 

즉, Recall이 높다? 실제 객체를 더 많이 찾아냈다. 나머지 비율은 놓쳤다.

 

✅ 3. mAP50

mAP50 => mean Average Precision at IoU 0.5, 임계값 0.5 기준으로 평균 정밀도

- IoU50: 50% 이상 겹쳤을 때, TP로 간주

- 클래스별 AP 계산해서 평균(mean)낸 값.

 

✅ 4. mAP50-95

: IoU 임계값을 0.5부터 0.95까지 0.05 간격으로 변화시키며 계산한 AP의 평균

: 더 엄격한 기준까지도 종합적으로 평가

 

--------------------------------------

✅ 5. Mask Precision

: 이 픽셀이 객체에 속한다고 예측한 픽셀 중 실제로 객체 픽셀인 비율

- TP: 예측 mask와 실제 Mask가 겹치는 픽셀

- FP: 예측 mask에서 잘못 예측된 픽셀

 

✅ 6. Mask Recall

: 실제 객체 픽셀 중 모델이 올바르게 예측한 픽셀의 비율

- FN: 실제 객체 픽셀이지만 놓친 픽셀

 

✅ 7. Mask mAP50

: 예측 mask와 실제 mask의 겹침 비율이 50% 이상일 때, TP로 간주

: 클래스 별 AP 계산한 후 평균

 

✅ 8. Mask mAP50-95

: 임계값을 0.5~0.95 간격으로 변화시키며 계산한 AP의 평균입니다.

 

'Experiments' 카테고리의 다른 글

yolov8 모델 Freeze 하는 방법  (0) 2023.11.14
openssh 업데이트 하는 방법  (2) 2023.10.10

 

안녕하세요

BrianaAI입니다.

 

YOLO 환경 셋팅하는데 내부 requirements.txt 로 설치했는데, 코드 실행이 안되더라구요.

 

여러 에러를 찾아봤는데 원인은 다양하게 있었어요.

처음에는 메모리 문제인지 알았으나, 아니였던 것 같습니다.

 

결과 미리보기

pre-conclusion: You need to change torch and torchvision version when you use H100 server with CUDA 11.8 over
torch : 2.0.1+cu118
torchvision: 0.17.2

 

 

 

 

 

1) CUDA 맞게 활성화 되고 있는지 확인.

 

import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
t = torch.tensor([1,2], device=device)

 

위 문장을 수행했더니 커맨드창에 warning으로 

PC에 설치된 pytorch 버전과 sm_90이 호환이 안된다고 하네요.

H100 서버에서 CUDA와 pytorch 버전이 충돌난 것 같습니다.

 

https://pytorch.org/get-started/locally/

 

Start Locally

Start Locally

pytorch.org

 

커맨드창에 여기서 확인(위 링크)하라고해서

운영체제에 맞게 셋팅값을 설정 후 command를 실행해주니, 우선 성공적으로 설치는 진행됐습니다.

 

근데 이것만 설치해주면 되는게 아니고 거기에 맞는 torchvision도 설치해주어야합니다.

 

2.0.1+cu118 에 맞는 torchvision 확인하기 위해서

https://pytorch.org/get-started/previous-versions/

 

Previous PyTorch Versions

Installing previous versions of PyTorch

pytorch.org

 

아래 페이지 참고했고 torchvision==0.17.2 설치하니까 완성.

 

 

안녕하세요.

브리아나입니다.

 

오늘은 yolov8 모델 freeze 하는 방법을 알아보려고 하는데요!

 

실패

yolo mode=train model=model.pt data=product.yaml imgsz=640 epochs=200 batch=16 freeze=10

이렇게 하니까

SyntaxError: 'freeze' is not a valid YOLO argument.

에러가 뜨더라구요..

 

그래서 열심히 구글링 해보던 중 다음과 같은 해결 방법의 링크를 발견했는데요!

https://github.com/ultralytics/ultralytics/issues/793

 

Freezing layers yolov8 · Issue #793 · ultralytics/ultralytics

Search before asking I have searched the YOLOv8 issues and discussions and found no similar questions. Question Question with answer! Need to freeze for example backbone. Previouse methods like add...

github.com

역시 욜로 커뮤니티!

 

from ultralytics import YOLO

def freeze_layer(trainer):
    model = trainer.model
    num_freeze = 10
    print(f"Freezing {num_freeze} layers")
    freeze = [f'model.{x}.' for x in range(num_freeze)]  # layers to freeze 
    for k, v in model.named_parameters(): 
        v.requires_grad = True  # train all layers 
        if any(x in k for x in freeze): 
            print(f'freezing {k}') 
            v.requires_grad = False 
    print(f"{num_freeze} layers are freezed.")
model=YOLO("model.pt")
model.add_callback("on_train_start", freeze_layer)
results = model.train(data="product.yaml", epochs=200, imgsz=640, batch=8)

main.py 파일을 하나 만들어서 위 코드를 복붙하고

실행시키면

freeze 잘 된 것 같습니다!!

 

그럼 행복한 코딩 하세요~~~~

'Experiments' 카테고리의 다른 글

YOLO 성능평가 파헤쳐보기 mAP, Precision, Recall  (0) 2025.05.15
openssh 업데이트 하는 방법  (2) 2023.10.10

 

문제(Problem)

아래와 같은 에러를 마주하셨나요?

No such file or directory: ''C:\Users .. ultralytics\yolo\cfg\default.yaml. 


 

[Kor]

안녕하세요. 오늘은 Yolo8을 사용하면서 PyInstaller를 이용해 yolov8을 .exe로 패키징 하는 과정에서 마주한 에러인데요.

해결 방법에 대해서 소개해보도록 하겠습니다.

 

  • 문제 원인: Pyinstaller의 path 문제인데요!
  • 아나콘다가상환경/site-packages/ultralytics/ 에 가면 yolo/cfg/default.yaml이 있습니다.
    • 걔의 경로를 바꿔주셔야해요. Pyinstaller는 ROOT 를 모르는 것 같습니다. 
  • 찾아가야하는곳 : C:\Users\user\Anaconda3\envs\(virtual environment name)\Lib\site-packages\ultralytics\yolo\utils\__init__.py

Figure 1. (34 line), 34번째줄

=> 34번째 줄에 ROOT 저기가 맞지 않아서 그런 것 같아서 절대경로로 적어줄게요.

수정해서 한 번 진행해보세요 :)

 


 

[ENG]

Hi Guys! Today, i faced a error which is for making yolov8 model to .exe using pyinstaller.

I'm gonna introduce how to solve this problem!

 

  • Cause: Path for PyInstaller
  • If you go to anaconda virtual environment path, you can identify "yolo/cfg/default.yaml" file there.
  • The problem is .exe file can't read above .yaml file

You need to go: C:\Users\user\Anaconda3\envs\(virtual environment name)\Lib\site-packages\ultralytics\yolo\utils\__init__.py

Figure 1. (34 line), 34번째줄

You need to change red line as absolute path

 

* Reference Link: https://github.com/orgs/ultralytics/discussions/1356

+ Recent posts