AI 모델 및 플랫폼
YOLOv8 해부: Ultralytics의 바이러스적인 컴퓨터 비전 마스터피스

지금까지 컴퓨터 비전 모델을 사용한 이미지 객체 감지에는 몇 초의 지연으로 인해 처리 시간에 대한 주요 장애물이 있었습니다. 이 지연은 자율 주행과 같은 사용 사례에서 실제로 채택되는 것을 방해했습니다. 그러나 Ultralytics의 YOLOv8 컴퓨터 비전 모델의 출시로 처리 지연을 극복했습니다. 새로운 모델은 이전 버전과 비교할 수 없는 정확도와 속도로 실시간으로 객체를 감지할 수 있어 컴퓨터 비전 분야에서 인기를 얻었습니다.
이 기사에서는 YOLOv8, 그 기능, 및 Github 저장소에서 모델을 미세 조정하고 생성하는 방법에 대해探구합니다.
YOLOv8 해부
YOLO(You Only Live Once)는 이미지에서 객체를 감지하고 분할할 수 있는 인기 있는 컴퓨터 비전 모델입니다. 이 모델은 이전에 여러 번 업데이트되었으며, YOLOv8는 8번째 버전입니다.
현재 YOLOv8는 이전 버전의 기능을 기반으로 강력한 새로운 기능과 개선 사항을 도입했습니다. 이를 통해 이미지와 비디오 데이터에서 실시간으로 객체를 감지할 수 있으며 정확도와 정밀도가 향상되었습니다.
v1에서 v8까지: 간단한 역사
YOLOv1: 2015年に 출시된 첫 번째 버전의 YOLO는 단일 단계 객체 감지 모델로 소개되었습니다. 기능에는 모델이 이미지 전체를 읽어 각 바운딩 박스를 한 번의 평가로 예측하는 것이 포함되었습니다.
YOLOv2: 다음 버전인 2016년에 출시된 YOLOv2는 PASCAL VOC 및 COCO와 같은 벤치마크에서 최고의 성능을 보였으며, 높은 속도(67-40 FPS)로 작동했습니다. 또한 9000개 이상의 객체 카테고리를 정확하게 감지할 수 있었으며, 특정 감지 데이터가 제한적일 때에도如此했습니다.
YOLOv3: 2018年に 출시된 YOLOv3는 더 효과적인 백본 네트워크, 다중 앵커, 및 공간 피라미드 풀링을 통한 멀티 스케일 특징 추출과 같은 새로운 기능을 도입했습니다.
YOLOv4: 2020年に 출시된 YOLOv4는 새로운 모자이크 데이터 증강 기술을 도입하여 훈련 능력을 향상했습니다.
YOLOv5: 2021年に 출시된 YOLOv5는 하이퍼파라미터 최적화 및 통합 실험 추적과 같은 강력한 새로운 기능을 추가했습니다.
YOLOv6: 2022年に 출시된 YOLOv6는 커뮤니티 주도 개발을 촉진하기 위해 오픈 소스로 제공되었습니다. 새로운 기능으로는 새로운 자기 증류 전략 및 앵커 지원 훈련(AAT) 전략이 포함되었습니다.
YOLOv7: 2022年に 출시된 YOLOv7는 기존 모델보다 속도와 정확도를 향상시켰으며, 출시 당시 가장 빠른 객체 감지 모델이었습니다.
YOLOv8의 특징

YOLOv8의 이전 버전과 비교할 수 없는 정확도와 높은 속도는 컴퓨터 비전 모델을 특징으로 합니다. 이는 이전 버전과 달리 지연 없이 실시간으로 객체를 감지할 수 있는重大한 성과입니다.
그러나 이를 넘어서 YOLOv8는 강력한 기능을 제공합니다. 이는 다음과 같습니다:
- 사용자 정의 아키텍처: YOLOv8은 개발자가 특정 요구 사항에 맞게 사용자 정의할 수 있는 유연한 아키텍처를 제공합니다.
- 적응형 훈련: YOLOv8의 새로운 적응형 훈련 기능, 즉 훈련 중 손실 함수 균형 및 기술을 통해 학습률을 개선합니다. Adam과 같은 기술은 모델의 성능을 향상시키고, 수렴 속도를 높이며, 일반적으로 모델의 성능을 향상시킵니다.
- 고급 이미지 분석: 새로운 의미론적 분할 및 클래스 예측 기능을 통해 모델은 객체 감지 기능 외에도 활동, 색상, 텍스처 및 객체 간의 관계를 감지할 수 있습니다.
- 데이터 증강: 새로운 데이터 증강 기술은 실제 객체 감지 상황에서 이미지 변이(저해상도, 가리기 등)를 다루는 데 도움이 됩니다.
- 백본 지원: YOLOv8은 여러 백본을 지원하며, 사용자는 CSPDarknet(기본 백본), EfficientNet(경량 백본), 및 ResNet(클래식 백본) 중 하나를 선택할 수 있습니다.
사용자는 CSPDarknet53을 다른 CNN 아키텍처로 대체하여 백본을 사용자 정의할 수도 있습니다.
YOLOv8 훈련 및 미세 조정
YOLOv8 모델은 특정 사용 사례에 맞게 미세 조정하거나_scratch부터 훈련하여専用 모델을 생성할 수 있습니다. 훈련 절차에 대한 자세한 정보는 공식 문서에서 찾을 수 있습니다.
두 가지 작업을 수행하는 방법을 살펴보겠습니다.
사용자 정의 데이터셋으로 YOLOV8 미세 조정
미세 조정 작업은 기존 모델을 로드하고 기본 가중치를 시작점으로 사용하여 훈련합니다. 모델은 이전 지식을 모두 기억하고, 미세 조정 작업은 가중치를 조정하여 새로운 정보를 추가합니다.
YOLOv8 모델은 Python 코드 또는 명령줄 인터페이스(CLI)를 통해 미세 조정할 수 있습니다.
1. Python을 사용하여 YOLOv8 모델 미세 조정
Ultralytics 패키지를 코드에 가져옵니다. 그런 다음 다음 코드를 사용하여 사용자 정의 모델을 로드합니다.
Ultralytics 라이브러리를 공식 배포에서 설치합니다.
| # Ultralytics 패키지를 PyPI에서 설치 pip install ultralytics |
그런 다음 Python 파일에서 다음 코드를 실행합니다.
| from ultralytics import YOLO
# 모델 로드 # MS COCO 데이터셋으로 모델 훈련 |
기본적으로 코드는 COCO 데이터셋으로 100 에포크 동안 모델을 훈련합니다. 그러나 YAML 파일에서 설정을 구성하여 크기, 에포크 등을 설정할 수도 있습니다.
모델을 훈련한 후 원하는 결과가 나올 때까지 진행 상황을 모니터링하고, 모델을 테스트하고, 조정하고, 다시 훈련합니다.
2. CLI를 사용하여 YOLOv8 모델 미세 조정
CLI를 사용하여 모델을 훈련하려면 명령줄에서 다음 스크립트를 실행합니다.
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
CLI 명령은 사전 훈련된 `yolov8n.pt` 모델을 로드하고 `coco8.yaml` 파일에 정의된 데이터셋으로 훈련합니다.
YOLOv8로 사용자 정의 모델 생성
사용자 정의 모델을 생성하는 방법은 두 가지가 있습니다.
- 스크래치에서 훈련: 이 방법은 YOLOv8 아키텍처를 사용하지만 사전 훈련된 가중치를 사용하지 않습니다. 훈련은 스크래치에서 시작됩니다.
- 사용자 정의 아키텍처: 기본 YOLO 아키텍처를 수정하고 새로운 구조를 스크래치에서 훈련합니다.
두 방법의 구현은 동일합니다. 스크래치에서 YOLO 모델을 훈련하려면 다음 Python 코드를 실행합니다.
| from ultralytics import YOLO
# 모델 로드 # 모델 훈련 |
이번에는 `.pt` 파일 대신 `.yaml` 파일을 로드했습니다. YAML 파일에는 모델의 아키텍처 정보가 포함되어 있으며, 가중치는 로드되지 않습니다. 훈련 명령은 이 모델을 스크래치에서 훈련을 시작합니다.
사용자 정의 아키텍처를 훈련하려면 `yolov8n.yaml`과 같은 `.yaml` 파일에 사용자 정의 구조를 정의해야 합니다. 그런 다음 이 파일을 로드하고 위와 같은 코드를 사용하여 모델을 훈련합니다.
AI를 사용한 객체 감지 및 최신 AI 트렌드에 대한 자세한 정보는 unite.ai를 방문하세요.













