본문 바로가기

IT/개발

객체 탐지 모델 YOLO의 버전별 라이센스 비교 (MIT, Apache 2.0, GPL-3.0, AGPL-3.0 차이, license)

반응형

1.  YOLO 개요

 

YOLO (You Only Look Once)는 객체 탐지(Object Detection) 분야에서 널리 사용되는 딥러닝 모델입니다. 객체 탐지 모델은 이미지나 비디오 프레임에서 객체의 위치와 종류를 식별하는 데 사용됩니다. YOLO는 그 이름에서 알 수 있듯이 이미지를 한 번에 처리하여 객체를 탐지하는 방식을 사용합니다. 이는 다른 모델들이 사용하는 슬라이딩 윈도우나 영역 제안(region proposal) 방식을 사용하는 것과 대조적입니다

 

버전별 특성 비교를 보면 다음과 같습니다.

 

출처 : https://github.com/WongKinYiu/yolov9

 

 

 2. YOLO의 주요 특징 요약

 

*속도와 효율성

 

YOLO는 전체 이미지를 단 한 번의 전진 패스(forward pass)로 처리합니다. 이 때문에 매우 빠르며, 실시간 객체 탐지가 가능합니다.

일반적인 객체 탐지 모델들이 여러 단계로 이미지를 처리하는 것과 달리, YOLO는 단일 신경망을 통해 이미지를 처리하여 속도를 극대화합니다.

 

*전체 이미지에서 예측

 

YOLO는 이미지를 SxS 그리드로 나누고 각 그리드 셀에 대해 예측을 수행합니다. 각 셀은 여러 바운딩 박스와 이 박스들이 포함하는 객체의 확률을 예측합니다.

모든 그리드 셀에서 예측한 결과를 종합하여 최종 객체 탐지 결과를 도출합니다.

 

*종단 간 학습

 

YOLO는 입력 이미지에서 객체의 위치와 클래스 확률을 직접 예측하는 종단 간(end-to-end) 방식으로 학습합니다.

이를 통해 복잡한 파이프라인을 단순화하고, 훈련 및 추론 과정을 쉽게 관리할 수 있습니다.

 

3.  YOLO 버전별 라이센스 

YOLO (You Only Look Once)는 여러 버전이 존재하며 각각의 라이센스는 다를 수 있습니다.

yolov1부터 yolov3까지는 Joseph Redmon이 개발하였으나 이후에는 수많은 파생 버전이 생겨나게 되었습니다. 동일한 이름의 yolo도 개발자에 따라 라이선스가 다르니 반드시 확인이 필요합니다.

 

다음은 라이선스와 YOLO의 파생 버전을 표시한 그림입니다.

약간 차이가 있는 부분도 있어서 따로 아래에 라이선스 부분을 기술 하였습니다.

 

출처 : https://medium.com/deelvin-machine-learning/the-evolution-of-the-yolo-neural-networks-family-from-v1-to-v7-48dd98702a3d

 

  • YOLOv1, YOLOv2, YOLOv3

 

Joseph Redmon 개발하였으며, C기반의 Darknet이라는 오픈소스 신경망 프레임워크에서 구현되었습니다.

버전들은 주로 MIT 라이센스를 따릅니다

Pytorch 기반 https://github.com/ultralytics/yolov3 AGPL-3.0입니다

 

  • YOLOv4

Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao 의해 개발되었습니다. 버전은 또한 Darknet에서 구현되었으며, GPL-3.0 (GNU General Public License v3.0) 라이센스를 따릅니다.

 

pytorch 기반 https://github.com/WongKinYiu/PyTorch_YOLOv4 내용에 YOLOv4 which is based on ultralytics/yolov3 라고 되어 있으니 AGPL-3.0입니다.

 

  • YOLOv5

https://github.com/ultralytics/yolov5 Ultralytics 코드는 AGPL-3.0 입니다.

 

  • YOLOv6

https://github.com/meituan/YOLOv6은 GPL-3.0 입니다.

 

  • YOLOv7

https://github.com/WongKinYiu/yolov7 AGPL-3.0 입니다.

 

  • YOLOv8

https://github.com/ultralytics/ultralytics YOLOv8 AGPL-3.0 입니다.

 

  • YOLOv9

https://github.com/WongKinYiu/yolov9 GPL-3.0입니다.

 

 

  • YOLOR, ScaledYOLO4, YOLOX 등등 기타 

https://github.com/WongKinYiu/yolor GPL-3.0입니다

https://github.com/WongKinYiu/ScaledYOLOv4 GPL-3.0입니다

https://github.com/Megvii-BaseDetection/YOLOX Apache-2.0 입니다.

 

라이선스에서 자유롭고 싶다면 YOLOX 사용하는 것도 좋습니다.

 

4. 코드 재사용시 각각의 라이센스 특징 및 제한 

소프트웨어 라이센스는 소프트웨어의 사용, 복제, 수정 및 배포 권한을 규정하는 법적 문서입니다. MIT, Apache License 2.0, GNU General Public License v3.0 (GPL-3.0), 그리고 GNU Affero General Public License v3.0 (AGPL-3.0)는 널리 사용되는 오픈 소스 라이센스입니다.

 

(1) MIT 라이센스

 MIT 라이센스는 가장 단순하고 유연한 오픈 소스 라이센스 중 하나로, 사용자가 소프트웨어를 자유롭게 사용할 수 있도록 허용합니다. 이 라이센스는 매사추세츠 공과대학(Massachusetts Institute of Technology, MIT)에서 처음 작성되어 그 이름을 따왔습니다.

 

  • 사용 및 배포

 소프트웨어를 자유롭게 사용할 수 있습니다.

소프트웨어의 복제본을 무제한으로 배포할 수 있습니다.

소프트웨어를 수정할 수 있습니다.

수정된 소프트웨어를 배포할 수 있습니다.

  • 조건

 원본 소프트웨어의 저작권 고지와 라이센스 정보를 모든 복제본에 포함해야 합니다. 이는 수정된 소프트웨어에도 동일하게 적용됩니다원본 저작권 및 라이센스 고지를 포함하는 한, 소프트웨어를 상업적으로 사용할 수 있습니다.

  • 책임 제한

 소프트웨어는 "있는 그대로" 제공되며, 사용에 대한 보증이 없습니다. , 소프트웨어 사용으로 인한 문제나 손해에 대해 저작권자는 책임을 지지 않습니다.

 

 

(2) Apache License 2.0

Apache License 2.0 Apache Software Foundation에서 만든 라이센스로, 사용자와 개발자 모두에게 유연한 조건을 제공합니다.

 

  • 사용 및 배포

 소프트웨어를 무료로 사용할 수 있습니다.

수정된 소프트웨어를 포함하여 소프트웨어의 복제본을 배포할 수 있습니다.

소스 코드와 바이너리 형식 모두 배포 가능합니다.

  • 조건

 수정된 파일에는 원본 저작권과 라이센스 정보를 포함해야 합니다.

수정된 파일에는 수정된 사항에 대한 고지가 포함되어야 합니다.

소프트웨어 배포 시 원본 라이센스와 함께 배포해야 합니다.

특허 라이센스가 포함되어 있습니다.

  • 책임 제한

 기업에서 사용하기 용이하며, 상업적 목적으로도 사용할 수 있습니다.

GPL과 달리, Apache 라이센스는 수정된 소스 코드를 공개할 의무가 없습니다.

 

(3) GNU General Public License v3.0 (GPL-3.0)

GPL-3.0 Free Software Foundation에서 만든 라이센스로, 자유 소프트웨어 운동의 철학을 반영합니다. 소프트웨어의 자유로운 사용, 수정, 배포를 강조합니다.

 

  • 사용 및 배포

 소프트웨어를 무료로 사용할 수 있습니다.

수정된 소프트웨어를 포함하여 소프트웨어의 복제본을 배포할 수 있습니다.

소스 코드와 함께 배포해야 합니다.

  • 조건

 소프트웨어를 배포할 때, 동일한 GPL 라이센스를 유지해야 합니다.

수정된 파일에는 원본 저작권과 라이센스 정보를 포함해야 합니다.

수정된 파일에는 수정된 사항에 대한 고지가 포함되어야 합니다.

소프트웨어 배포 시 소스 코드를 제공하거나 소스 코드를 얻을 수 있는 방법을 제공해야 합니다.

  • 첵임 제한

 강력한 카피레프트(소스 코드 공개 의무)를 요구합니다.

소프트웨어가 다른 소프트웨어와 결합될 때, 결합된 소프트웨어도 GPL을 따라야 합니다.

 

(4) GNU Affero General Public License v3.0 (AGPL-3.0)

AGPL-3.0 GPL-3.0의 변형으로, 네트워크를 통해 소프트웨어를 사용하는 경우에도 소스 코드를 공개할 의무를 추가로 규정합니다.

  

  • 사용 및 배포

 소프트웨어를 무료로 사용할 수 있습니다.

수정된 소프트웨어를 포함하여 소프트웨어의 복제본을 배포할 수 있습니다.

소스 코드와 함께 배포해야 합니다.

  • 조건

 소프트웨어를 배포할 때, 동일한 AGPL 라이센스를 유지해야 합니다.

수정된 파일에는 원본 저작권과 라이센스 정보를 포함해야 합니다.

수정된 파일에는 수정된 사항에 대한 고지가 포함되어야 합니다.

소프트웨어가 네트워크를 통해 사용될 때도 소스 코드를 제공해야 합니다.

  • 특징

 GPL-3.0과 유사하지만, 네트워크를 통한 사용을 커버하여 클라우드 서비스나 웹 애플리케이션에서 사용될 때도 소스 코드를 공개해야 합니다.

소프트웨어 서비스 모델을 통해 배포되는 소프트웨어의 카피레프트를 강화합니다.

반응형