pile·
AI / ML·너드팩토리너드팩토리·

You Only Look Once. YOLO

Object Detection 신경망 YOLO의 v1과 v2 구조를 논문 기준으로 정리한 글이다. 예측 텐서의 차원이 왜 그 숫자가 되는지, 손실 함수가 어떤 항으로 나뉘는지를 계산 과정과 함께 짚는다. v1의 한계를 v2가 어떤 방법으로 보완했는지가 후반부의 축이다.

핵심 포인트
  • 기존 방식은 바운딩 박스를 잡고 그 안에서 분류하는 2단계라 파이프라인이 복잡하고 느렸다.
  • YOLO는 하나의 컨볼루션 네트워크로 위치와 클래스를 한 번에 예측하는 1단계 방식이다.
  • 이미지 전체를 보고 학습하므로 단일 대상의 특징뿐 아니라 맥락까지 학습한다.
  • v1의 출력 7x7x30은 그리드 7x7에 박스 2개의 5개 값과 클래스 20개를 더한 값이다.
  • v1은 물체가 겹치거나 작을 때 예측이 어렵고 학습에 없던 형태의 박스에 약하다.
  • v2는 앵커 박스 도입, 배치 정규화, 특징 맵 13x13 확대, 다중 스케일 학습으로 이를 보완했다.
상세 정리
  • 이름의 뜻: You Only Look Once로 한 번 보고 바로 처리한다는 속도 중심의 이름이다. 2020년 7월 기준 v5까지 공개돼 있다.
  • 통합 인식: 박스 좌표 조정과 분류를 같은 신경망에서 동시에 수행하는 것이 핵심 특징이다.
  • 처리 순서: 이미지를 SxS 그리드로 나누고 전체를 신경망에 넣어 예측 텐서를 만든 뒤, 그리드별 정보로 박스 조정과 분류를 수행한다.
  • 그리드가 가진 것: 각 셀은 B개의 박스와 각 박스의 신뢰 점수를, 그리고 C개의 조건부 클래스 확률을 갖는다. 신뢰 점수는 물체 존재 확률과 IOU의 곱이다.
  • 좌표 표기: 박스의 x와 y는 중심점이며 셀 범위에 대한 상대값으로 표현한다.
  • v1 네트워크: 224 크기로 사전학습한 뒤 448 이미지를 입력으로 받고, 24개 컨볼루션 레이어 중 앞 20개를 고정한 채 뒤 4개와 완전연결 2개만 탐지 과제에 맞춰 학습한다.
  • 출력 차원 계산: 30은 박스당 5개 값에 박스 2개를 곱한 10과 클래스 20을 더한 값이다. 앞의 7x7은 그리드 수다.
  • 손실 함수 구성: 좌표 손실, 신뢰 점수 손실, 물체가 없는 곳에 대한 페널티, 분류 손실 네 부분으로 나뉜다.
  • 손실 계산의 요지: 예측값과 정답의 차를 항목별로 더하고, 찾아냈어야 하는데 놓친 인덱스에 페널티를 더하며, 물체가 있다고 판단된 인덱스에서 클래스별 차이를 더한다.
  • v1의 한계: 물체가 겹치면 예측이 어렵고 작을수록 정확도가 떨어지며, 박스 형태를 데이터로 학습하므로 새로운 형태에 약하다.
  • v2 개선 1: 컨볼루션 레이어에 배치 정규화를 적용해 mAP를 약 2% 올렸다.
  • v2 개선 2: 사전학습 해상도와 탐지 해상도가 어긋나던 문제를 큰 해상도로 미세조정해 해결하고 약 4%의 mAP 증가를 얻었다.
  • v2 개선 3: 마지막 완전연결 레이어를 떼고 컨볼루션으로 예측하며, 좌표를 직접 예측하는 대신 미리 정해둔 앵커 박스에서의 오프셋을 예측한다.
  • v2 개선 4: 실제 경계 박스를 군집화해 최적 앵커를 찾는데, k를 키우면 정확도는 오르지만 느려져 5를 택했다.
  • v2 개선 5: 박스가 셀을 벗어나지 않도록 제약을 두고, 중심점 대신 좌상단 꼭짓점에서 얼마나 이동하는지를 예측한다.
  • v2 개선 6: 13x13은 작은 물체에 약하므로 이전 레이어의 26x26 특징 맵을 변환해 이어 붙이는 passthrough 레이어를 넣었다.
  • v2 개선 7: 10 epoch마다 320부터 608까지 32픽셀 간격으로 입력 해상도를 바꿔 여러 스케일을 학습한다.
  • v2가 빨라진 이유: VGG-16 대신 가중치 대부분을 차지하던 완전연결 레이어를 제거한 Darknet 19를 썼다.
  • v2 출력 차원: 앵커 5개 각각이 좌표 4개와 신뢰도, 클래스 20개를 가져 13x13x125가 된다.
왜 읽나YOLO를 쓰기만 해봤고 출력 텐서의 숫자가 어디서 나오는지 모르겠다면 v1과 v2의 차원 계산과 개선 항목이 한 번에 정리된다.
너드팩토리
너드팩토리 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·stackoverflow-blogStack Overflow Blog·

    에이전틱 SDLC를 QA 엔지니어링 마인드셋으로 구축하기

    Motorola Solutions의 테스트 엔지니어링 선임 매니저 Suneet Malhotra가 Stack Overflow 팟캐스트에 출연해 MCP(Model Context Protocol) 기반 에이전틱 SDLC 파이프라인 구축과 LLM-as-judge 평가 방법론을 소개했다. QA 엔지니어링 관점을 소프트웨어 개발 생애 전반에 적용하고, 설계 단계 직후 스펙을 강화해 결함 비용을 줄이는 'QA shift-left' 접근을 다룬다.

    요약 이어보기
    #llm-agent#mcp#test-automation+2
  2. AI / ML·LINE EngineeringLINE Engineering·

    보안 업무를 위한 AI 에이전트 플랫폼 「SAGE」 개발기 1편: 판단은 사람에게 남기는 설계

    LY Corporation Security Development Division이 보안 업무용 AI 에이전트 플랫폼 SAGE의 개발 과정을 공개했다. "완전 자동화"와 "도입 미루기" 양 극단 사이에서 "판단은 사람에게 남기는 설계"를 핵심 원칙으로 삼고, 3단계 점진적 도입 전략(AI 보조→에이전트 협업→자동화)을 채택했다. 현재는 1단계를 중심으로 파일럿·실운영 중이다.

    요약 이어보기
    #llm-app#opensearch#mcp+2