[부트캠프 50일차] 초급 프로젝트 시작, 팀원들이 직접 코드를 짜기까지

2026. 9. 15. 18:38·AI
반응형
wb_sunny 최근 일주일 공유

초급 프로젝트를 시작하였습니다. 알약을 탐지하고 분류하는 프로젝트이며, 다들 VS Code로 프로젝트를 해본 경험이 없다 보니까 어떻게 해야 할지 정말 많은 시간을 고민하고 고민하였습니다. 제가 생각한 이번 목표는 빠르게 모델을 가져다 쓰고 하이퍼파라미터를 수정하며 실험하기, 그리고 VS Code와 Python에 팀원들이 친해지기로 방향성을 잡고 큰 그림을 그렸습니다. 그렇다 보니 생각을 많이 하고 준비를 하느라 블로그 작성할 시간이 없어서 이제야 쓰게 되었습니다. 저희 팀의 상황을 공유하며 블로그를 마무리하고자 합니다.

medication 프로젝트 소개
YOLO로 이미지 속 알약을 탐지하고 종류를 분류하는 프로젝트입니다.

팀명은 파이리 · Part2 1팀이라 "파이리"로 지었습니다

입력여러 알약이 함께 놓인 이미지
출력알약별 바운딩 박스 + 클래스 + 신뢰도
데이터Kaggle 대회 ai14-level-project 제공 데이터 (AI Hub 「경구약제 이미지 데이터」 조합경구약제 기반)
평가 지표Kaggle 리더보드 mAP[0.75:0.95], 최종 순위는 Private Score 기준
팀 · 기간4명 / 약 2주
데이터 현황
항목값
train 이미지232장
박스(JSON)763개
클래스56개
test 이미지842장
이미지당 알약 수2알 7장 / 3알 151장 / 4알 74장
이미지 크기976 × 1280
어노테이션은 (이미지 × 알약)당 JSON 1개인 COCO 형식이고, bbox는 (x, y, w, h) 픽셀 좌표입니다. 이걸 YOLO 형식으로 변환하고, 같은 조합을 여러 각도로 찍은 사진이 train과 val에 섞이지 않도록 조합 단위로 8:2 분할했습니다.
실행 순서
bash
uv run --env-file .env python src/download_data.py   # 1. Kaggle 데이터 다운로드
uv run python src/make_yolo.py                       # 2. 라벨 정리 + COCO JSON → YOLO 변환 + train/val 분할
uv run python src/check_yolo.py                      #    변환 결과 검증
uv run python src/train.py                           # 3. 학습 + val 평가 + 실험 기록
uv run python src/visualize.py                       # 4. val 예측 시각화 · 실패 사례 · 클래스별 점수
uv run python src/predict.py                         # 5. test 예측 → Kaggle 제출 파일
🔗 저장소: github.com/woolnd/pill-detection
groups 팀 협업 방식
저희 팀은 하나의 기능을 다 같이 만듭니다. 제가 가이드라인으로 함수 이름과 함수 동작을 주석으로 공유하며 약 20~30분 정도 각자 시간을 주어 각자 코딩을 하고, 하나씩 리뷰를 하였습니다.
  • 장점: 개성이 높은 각자의 코드를 볼 수 있었고 서로 배울 수 있었습니다
  • 단점: 속도가 느리다고 생각하였습니다
그래도 저희 팀원들이 "나 코드 열심히 짜봤어"라는 경험을 할 수 있음에 저는 만족했습니다. 기본적으로 시각화하는 코드나 파일 정리하는 코드는 클로드 코드를 통해서 작성하였고, 나머지는 직접 코딩하면서 작성을 하였습니다.
하이퍼파라미터 스터디
저희 팀은 yolo26n 모델을 사용하였으며, 사용되는 하이퍼파라미터 내용에 대한 지식이 부족한 것 같아서 자료를 클로드 코드로 제작하여 팀원들에게 설명하였습니다. 그리고 서로 궁금한 점을 공유하며 다 같이 2시간 정도 공부를 하였습니다.

실험 전 하이퍼파라미터 스터디 자료

science 실험 기록
현재는 더 높은 성능을 올리기 위해서 각자 하이퍼파라미터를 수정하며 작업을 하고 있습니다. 제가 돌린 내용을 간단히 공유드리겠습니다.
실험설정mAP75-95Kaggle
1하이퍼파라미터 설정 없음(기본값)0.72250.21944
2epochs 100 / imgsz 960 / batch 8 / lr 0.0010.93210.39139
32번 + 전처리(라벨 오류 이미지 제외)0.95340.39071
1. 하이퍼파라미터를 설정하지 않음
mAP75-95: 0.7225 / kaggle_score: 0.21944
2. epochs 100 / imgsz 960 / batch 8 / lr 0.001
mAP75-95: 0.9321 / kaggle_score: 0.39139
점수가 크게 올랐지만, 실패 사례를 확인해보니 라벨 오류가 있는 이미지가 11장 있어서 전처리가 필요하다고 판단했습니다.

2번 실험 실패 사례 (박스 위 = 모델 예측, 아래 = 정답 라벨)

2번 실험 학습 곡선 (box loss · cls loss · val mAP)

3. 2번 설정 + 전처리 적용
전처리 내용: 라벨 없는 이미지, 중복 라벨 이미지, 이미지 밖 bbox를 가진 이미지를 제외했습니다.
mAP75-95: 0.9534 / kaggle_score: 0.39071
val 점수는 올랐지만 Kaggle 점수는 오히려 미세하게 떨어져서, 차이가 미묘하여 전처리 효과는 없어 보인다고 판단했습니다.
다만 특이한 점은 2번 실험보다 loss 값이 더 왔다 갔다 거린다는 것이었습니다. 특히 val box loss가 계속 출렁이는 모습이 신경 쓰였습니다. 전처리로 이미지 수가 줄어들면서 val이 39장까지 작아졌다 보니 흔들림이 더 커진 것인지, 학습률 자체가 후반까지 충분히 안 내려간 것인지 판단이 서지 않았습니다. 이 부분을 해결하려면 momentum이나 lrf(최종 학습률 비율)를 건드려야 하나 고민을 하였습니다.

3번 실험 실패 사례

3번 실험 학습 곡선

내일 실험은 전처리를 유지한 채 loss가 흔들리는 부분부터 잡아보려고 합니다. momentum이나 lrf를 조정해보고, 그 다음으로 cls 비중을 올리는 실험을 해볼까 합니다.
nights_stay 오늘 하루 회고

진심으로 이제야 실험을 한다는 생각이 들었고, 수정하고 결과를 바탕으로 분석하고 생각하여 다음으로 나아가는 방향성이 제가 바라던 방향성입니다. 거기다가 재미를 더하는 요소들인 것 같아서 너무나 만족하였습니다. 팀원들의 표정도 이전보다 밝아진 것을 확인하였으며, 내일도 잘될 것이라고 생각합니다.

무엇보다 팀원들이 이제 실험 용어를 써가며 "이렇게 결과가 나왔는데 이게 문제인 것 같아, 다음에는 이렇게 실험할 예정이다"라고 서로 공유하는 문화가 잘 형성된 것 같아서 너무나 만족했습니다!

반응형

'AI' 카테고리의 다른 글

[부트캠프 43일차] 생성 모델 정리  (0) 2026.09.04
[부트캠프 40일차] 위클리 페이퍼, Segmentation 정리  (0) 2026.09.01
[부트캠프 38일차] 객체 인식 정리  (0) 2026.08.28
[부트캠프 33일차] 사전학습 모델과, XAI  (0) 2026.08.21
[부트캠프 31일차] 전이학습 정리와 AI 역량 어필 전략 세미나  (0) 2026.08.19
'AI' 카테고리의 다른 글
  • [부트캠프 43일차] 생성 모델 정리
  • [부트캠프 40일차] 위클리 페이퍼, Segmentation 정리
  • [부트캠프 38일차] 객체 인식 정리
  • [부트캠프 33일차] 사전학습 모델과, XAI
재웅
재웅
안녕하세요 AI를 공부하는 재웅 입니다. Github: woolnd
  • 재웅
    재웅 개발노트
    재웅
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • AI (32)
      • iOS 개발 (21)
        • SwiftUI (9)
        • UIKit (6)
        • Combine (5)
        • Architecture (1)
      • 알고리즘 (1)
      • 회고록 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    AI부트캠프
    ios
    코드잇스프린트잇
    SwiftUI
    막자알림서비스
    코드잇스프린트
    앗차!
    구름톤유니브
    ios개발
    cleanArchitecture
    UIKit
    Ai
    회고록
    figma
    나만의todo
    AI엔지니어취업
    Combine
    SWIF
    AI엔지니어
    SWIFT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
재웅
[부트캠프 50일차] 초급 프로젝트 시작, 팀원들이 직접 코드를 짜기까지
상단으로

티스토리툴바