GPL 3.0 YOLO 사용 시 주의사항

HeungJun Kim·2022년 8월 26일
0

1. GPL 3.0 License YOLO

실시간 object detection를 위해 다양한 paper가 나왔지만, 결국은 yolo가 최고의 성능을 자랑한다.
2018년에 공개된 yolov3 이후로 yolo는 많이 개선되었고 realtime SOTA(yolov7) 까지 오게 되었다.

그러나,
많은 사람들이 사용하는 ultralytics yolo 구현이 GPL 3.0이라는 사실을 모르는 사람이 많다.

ultralytics를 base로 개발된 WongKinYiu의 yolo 시리즈 구현 또한 GPL 3.0 라이선스가 전염되었다.

ultralytics repo의 이슈를 찾아보니 이러한 질문글이 있었다.

1) 상업적 사용 제약사항 완화를 위한 GPL3.0 라이선스 정책 완화 요청

2) Kaggle 제출을 위한 GPL3.0 라이선스 정책 완화 요청

1번 질문의 경우 비전관련 솔루션 업체에서 yolo를 사용해 솔루션을 개발하더라도,
GPL 라이선스로 인해 솔루션 형태의 제품을 판매할 수가 없다는것.
소스코드를 공개하는것은 gpl yolo 소스코드 이외에도 회사의 노력으로 개발된 기술들이 경쟁업체에 노출될 수 밖에 없기 때문에, GPL3.0의 강력한 라이선스 정책을 완화해달라는 요청이다.

ulgralytics의 glenn-jocher는 더 많은 사람들과 학생들이 yolo를 접하고 개선해 나갈 수 있게 GPL3.0을 적용했으며, 변경 계획은 없다고 확고하게 답한다.

2번 질문도 비슷한 내용인데 Kaggle 경진대회에 yolo v5를 사용하면 좋은 성적을 달성할 수 있지만 Kaggle의 GPL 라이선스의 프로젝트는 제출금지 제약사항으로 인해 yolo v5의 인기에 악영향을 끼치고 있다는 것.

여기서도 glenn-jocher 는 라이선스 정책에 대해서는 단호한 입장이다.

2. Inference 코드만 직접 개발하면 GPL YOLO로 학습된 모델을 배포해도 될까?

pytorch 기반의 GPL YOLO를 통해 학습된 모델(weight) 만 가져와서, inference source 코드는 직접 작성하면 라이선스 문제를 회피 할 수 있는가에 대한 논의가 많은데, 아직 확실한 답변을 찾지는 못했다.

나의 경우 GPL 라이선스인 yolo v7 커스텀 모델을 TensorRT, Deep Stream SDK에 포팅해서 사용중인데, Jetson board에 배포되는 app의 추론코드는 yolov7과 전혀 별도의 코드로 동작한다.
yolo v7의 training 코드로 학습된 모델(pytorch .pt)은, Nvidia Deepstream SDK의 변환 형식인 .cfg / .wts 로 변환한 뒤,
Deepstream의 TensorRT 변환 Script에 의해 FP32/FP16/INT8 형식의 모델로 변경되고, inference 단계에서의 후처리 NMS 또한 모델에 포함시키거나 TensorRT Plugin에 의해 동작한다.

이런 경우는 라이선스로부터 자유로운것인지 더 조사를 해봐야 겠다.

profile
Computer Vision / Object Detection / SW개발

1개의 댓글

comment-user-thumbnail
2022년 10월 18일

github를 돌아다니면서 MIT나 GPL3.0 같은 것들이 뭔지 궁금해 했었는데 저런 뜻이었군요

답글 달기