えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

YOLOXのライセンス問題とYOLOX-ROSの対応について

いつもこのブログおよびGitHubリポジトリをご覧いただきありがとうございます。

YOLOXについて

さて、表題の件についてですが、先日YOLOXについてglenn-jocher氏からライセンス違反の指摘がありました。具体的には3箇所の関数についてYOLOv5と同じ内容のものがあったとのことです。

YOLOv5はGPL 3.0のライセンスをベースにオープンソース化しており、GPL 3.0はソースコードの流用やライブラリとしての利用時にそのライセンスを継承することが求められています。

github.com

YOLOX-ROSの対応について

私はYOLOX-ROSというリポジトリを作成しており、このリポジトリでは、YOLOXのライブラリを活用してROS2ノードとして動作するプログラムを公開しています。このリポジトリのライセンスはApache-2.0 License として公開しております。

仮に、YOLOXがGPL 3.0ライセンスだった場合はYOLOX-ROSもGPL 3.0で公開する必要があるため、現時点ではYOLOXと同様にライセンス違反が疑われる状態にあります。

YOLOXの作成チームは「該当部分を削除して(置き換えることで)対応する」と答えており、ライブラリの変更を行うことが予想されます。

そのため、ケースに分けて次のように対応を行う予定です。また、すべてのケースにおいてライセンス問題が解消した時点でライセンス解決前段階の暫定リリースを出す予定です。

YOLOX-ROSのライセンス進捗については、以下のissueをご確認ください。

github.com

ケース1:YOLOXがGPL 3.0になった場合

この場合は、YOLOX-ROSのライセンスもGPL 3.0になります。

ケース2:YOLOXが代替ライブラリの提案によってApache 2.0ライセンスを保ち、v0.1.0のリリースの変更にも対応した場合

この場合は、YOLOX-ROSのライセンスはApache 2.0ライセンスのままとなります。この場合は、インストール時の参照先を見てREADMEを書き換え、仮にリリース0.1.0が修正されなかった場合(例えば、0.1.0互換の0.1.0-fixというタグが作成された場合)、書き換える前のライセンスをGPL 3.0にする予定です。

ケース3:YOLOXが代替ライブラリの提案によってApache 2.0ライセンスを保つが、最新バージョンのみの修正の場合

この場合は、YOLOX-ROSの対応バージョンが0.1.0のみとなるため、この状態では、GPL 3.0に移行する可能性があります。早急に最新バージョンに対応したYOLOX-ROSを公開し、現時点の状態をGPL 3.0としてリリースを出します。

お願い

現在公開されているYOLOX-ROSはApache 2.0ライセンスで公開されていますが、YOLOXのyolov5ライセンス問題が解消されるまで、Apache 2.0ライセンスを理由にこのソースコードを採用することはやめてください。

また、現時点のソースコードのライセンスはGPL 3.0に変更される可能性が高いことをご留意ください。




オープンソース開発においてライセンス条項というものは尊重されるべきものであり、この件でライセンスの違反によるソースコードの盗用が疑われる事態になったことを残念に思います。

既存のソースコードの流用というのはソフトウェア開発ではしばしば行われていると思います。引用元を示さないソフトウェア記事の投稿も点在する現在、そのソースコードのライセンス元が不透明になり意図しない剽窃が起こる可能性も考えられます。この件のような関数に対する指摘はめったに起こらないとしても、細心の注意を払いながらソフトウェア開発を行うべきだと考えています。

私自身も引用元をはっきりと示し、ライセンスに対しては細心の注意を払いながらソフトウェア開発を行う所存です。