안녕하세요

브리아나입니다.

 

오늘은 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

안녕하세요.

브리아나입니다.

 

오늘은 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

안녕하세요. Briana입니다.

 

오늘은 openssh 업데이트를 해보려고 하는데요.

현재 사용 버전에 취약점이 있어서 

openssh 9 버전으로 업데이트 해보려고 합니다.

 

1. openssh 설치파일 다운받기

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz

wget 에러 나시는 분은 그냥 사이트 접속해서 수동으로 다운받으셔도 됩니다.

 

2. 압축해제

tar -zxvf openssh-9.3p2.tar.gz

 

3. openssh 설치하기

cd openssh-9.3p2
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/bin --with-pam

--with-ssl-dir 에 적기 위해서openssh 경로를 알아야하는데요!

which openssl

<제가 해결한 2개 에러입니다>

1) libcrypto not found: sudo apt-get install libssl-dev

2) PAM headers not found: sudo apt-get install -y libpam0g-dev

 

4. 만들기

make
make install

두 개다 잘 했으면 설치 완료입니다 :)

 

5. Check하기

9.3p2 설치 완료했습니다~~!

'Experiments' 카테고리의 다른 글

YOLO 성능평가 파헤쳐보기 mAP, Precision, Recall  (0) 2025.05.15
yolov8 모델 Freeze 하는 방법  (0) 2023.11.14

+ Recent posts