YOLOv8 이란 무엇인가? (1)

1. YOLOv8 은 무엇인가?

YOLO 모델은 단일 단계의 객체 탐지기입니다. YOLO 모델에서 이미지 프레임은 백본(backbone)을 통해 피처화 됩니다.(=분석에 활용화 할 수 있도록 가공 됩니다).

이러한 피처는 넥에서 결합되고 혼합되며, 그런 다음 네트워크의 헤드로 전달됩니다. YOLO는 객체 주위에 경계 상자를 그릴 위치와 클래스를 예측합니다.

YOLOv8

YOLOv8는 비최대 억제 (non-maximum suppression, NMS)를 통해 후처리를 수행하여 최종 예측을 도출합니다.

백본(Backbone)은 객체 탐지 모델에서 이미지에서 피처를 추출하는 데 사용되는 네트워크의 일부분입니다. 일반적으로, 백본은 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어로 구성된 심층 신경망(Convolutional Neural Network, CNN)입니다.

백본의 역할은 입력 이미지에서 고수준의 추상적인 피처를 추출하여 객체의 특징을 표현하는 것입니다. 이 추출된 피처는 후속 단계에서 객체의 위치와 클래스를 예측하기 위해 사용됩니다. 백본은 일반적으로 이미지의 공간적인 정보를 보존하면서 이미지를 다운샘플링하여 피처의 크기를 줄이는 역할을 합니다. 이는 계산 효율성과 모델의 성능을 향상시키는 데 도움이 됩니다.

YOLO의 경우, 다양한 버전에서 다양한 백본 아키텍처가 사용되며, 이는 모델의 정확도와 속도에 영향을 미칠 수 있습니다. 주로 ResNet, DarkNet, MobileNet 등의 백본 아키텍처가 YOLO 모델에서 많이 사용됩니다.

YOLOv3와 YOLOv5 모델의 저자인 Ultralytics에서 개발되었으며, YOLOv8는 앵커 없는 디자인으로 객체 검출을 더욱 발전시켰습니다. 하지만 최신 정확도에만 중점을 두는 것은 아닙니다. YOLOv8는 실제 세계에서의 배포를 고려하여 속도, 지연 시간 및 가격 대비 성능에 초점을 맞췄습니다.

YOLO의 최신 버전 및 DeepSparse를 사용하여 YOLOv8s(작은 버전)에서 209 FPS, YOLOv8n(나노 버전)에서 525 FPS를 달성하며, PyTorch 및 ONNX Runtime에 비해 10배의 가속을 얻을 수 있습니다!

2. YOLOv8를 사용하는 이유

다음은 다음 컴퓨터 비전 프로젝트에서 고려해야 하는 몇 가지 주요 이유입니다:

COCO와 Roboflow 100에 의해 측정된 정확도가 높습니다. YOLOv8은 높은 정확도를 가지고 있으며, COCO 및 Roboflow 100에서 측정된 결과가 이를 입증하고 있습니다.

많은 개발자 편의 기능을 제공합니다. 사용하기 쉬운 CLI(Command Line Interface)와 잘 구성된 Python 패키지 등의 기능을 제공합니다.

YOLO를 중심으로 한 커뮤니티가 크고, 점점 성장하고 있습니다. 이는 컴퓨터 비전 분야에서 여러분이 도움이 필요할 때 도움을 줄 수 있는 많은 사람들이 있다는 것을 의미합니다.

COCO에서 강력한 정확도를 달성합니다. 예를 들어, 중간 모델인 YOLOv8m은 COCO에서 50.2%의 mAP를 달성합니다. Roboflow 100에서 평가된 결과도 YOLOv5보다 훨씬 우수합니다. 성능 분석에서 자세한 정보를 확인할 수 있습니다.

또한, 개발자 편의 기능도 매우 중요합니다. 다른 모델들과는 달리, 작업이 여러 다른 Python 파일에 분산되는 것이 아니라 모델을 학습하는 데 더 직관적인 CLI가 함께 제공됩니다. 이는 이전 모델들보다 더 원활한 코딩 경험을 제공하는 Python 패키지와 함께 제공됩니다.

사용할 때 커뮤니티의 역할도 고려해야 합니다. 많은 컴퓨터 비전 전문가들이 YOLO에 대해 알고 있으며, 실제로 사용하는 데 대한 온라인 가이드도 많이 있습니다. 이 글을 쓰는 시점에서 YOLOv8은 새로운 모델이지만, 온라인에서 도움을 줄 수 있는 많은 가이드가 있습니다.

2.1 적용 가이드

적용 가이드는 아래 링크에 자세히 나와있습니다.

https://docs.ultralytics.com/

https://dev.to/andreygermanov/how-to-create-yolov8-based-object-detection-web-service-using-python-julia-nodejs-javascript-go-and-rust-4o8e

https://github.com/sjinzh/awesome-yolo-object-detection

3. 어디에 적용 할 수 있을까?

객체 추적은 시간에 따라 프레임 시퀀스에서 특정 객체 또는 여러 객체를 식별하는 과정입니다. 이는 각 프레임에서 객체의 위치를 파악하고 프레임 간 이동을 추적하는 것을 포함합니다. 객체 추적은 감시, 로봇공학, 자율 주행, 스포츠 분석 등 다양한 분야에서 다양한 응용 분야를 가지고 있습니다.

추적 알고리즘은 색상 히스토그램, 움직임 분석, 딥 러닝 등 다양한 기술을 사용하여 비디오 또는 이미지 시퀀스에서 객체를 찾고 따라가는 것입니다. 객체 감지와 추적이 다양한 산업에서 증가함에 따라 정확하고 실시간 추적 알고리즘의 필요성은 이전보다 더욱 중요해졌습니다.

객체를 정확하고 신속하게 추적하는 능력은 보안 감시와 같은 응용 분야에서 매우 중요합니다. 이를 통해 잠재적인 위협을 식별하고 수상한 행동을 탐지하는 데 도움을 줄 수 있습니다. 스포츠 분석 분야에서는 객체 추적을 통해 경기 중 선수들의 움직임을 분석하여 선수의 성과와 게임 전략에 대한 유용한 통찰력을 제공할 수 있습니다.

4. YOLO Licenses

  • AGPL-3.0 License

AGPL-3.0 라이선스는 상업적 이용을 허용합니다. 상업적으로 소프트웨어를 이용하고 수정하여 사용할 수 있습니다. 하지만 AGPL-3.0 라이선스의 조건을 준수해야 합니다.

이는 소스 코드의 공개, 라이선스 조건의 준수, 웹 애플리케이션의 경우 사용자에게 소스 코드 접근을 허용하는 등의 규정을 포함합니다.

따라서, AGPL-3.0 라이선스를 사용하는 소프트웨어를 상업적으로 이용하려면 해당 라이선스의 조건을 충족시켜야 합니다.

소스 코드의 공개와 라이선스 조건의 준수는 AGPL-3.0 라이선스의 핵심 요소이며, 이를 준수하지 않는다면 라이선스 위반으로 간주될 수 있습니다.

따라서, AGPL-3.0 라이선스를 사용하는 소프트웨어를 상업적으로 이용하고자 할 경우, 해당 라이선스의 조건을 자세히 검토하고 준수해야 합니다.

참고

https://dev.to/andreygermanov/how-to-create-yolov8-based-object-detection-web-service-using-python-julia-nodejs-javascript-go-and-rust-4o8e

https://medium.com/@mycodingmantras/building-a-real-time-object-detection-and-tracking-app-with-yolov8-and-streamlit-part-3-78090a08b848

다음 포스팅은 YOLOv8 설치 및 실행 방법

댓글 남기기

%d 블로거가 이것을 좋아합니다: