{
  "id": 164845,
  "title": "To anyone using YoloV5, torchvision, etc: a warning about licensing",
  "url": "/competitions/global-wheat-detection/discussion/164845",
  "author_name": "Matt",
  "post_date": "2020-07-07T18:19:16.145000",
  "votes": 38,
  "comment_count": 46,
  "views": 0,
  "content": "<p>Today we received a <a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/163433#919074\">confirmation from the competition organizers</a> that they will be strictly accepting solutions that fit an MIT license.</p>\n\n<p>This means that if you are including or modifying source code that is released under a more restrictive license (like GPL for YoloV5 and BSD-3 for torchvision), it might not fit under the MIT license requirement.</p>\n\n<p>Please look at my discussions with <a href=\"/pestipeti\">@pestipeti</a> and <a href=\"/rwightman\">@rwightman</a> below for more information and to come to your own conclusions. I'm certainly no expert on any of this so if I got something wrong, please feel free to point it out!</p>",
  "messages": [
    {
      "id": 919140,
      "postDate": "2020-07-07T18:19:16.147Z",
      "content": "<p>Today we received a <a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/163433#919074\">confirmation from the competition organizers</a> that they will be strictly accepting solutions that fit an MIT license.</p>\n\n<p>This means that if you are including or modifying source code that is released under a more restrictive license (like GPL for YoloV5 and BSD-3 for torchvision), it might not fit under the MIT license requirement.</p>\n\n<p>Please look at my discussions with <a href=\"/pestipeti\">@pestipeti</a> and <a href=\"/rwightman\">@rwightman</a> below for more information and to come to your own conclusions. I'm certainly no expert on any of this so if I got something wrong, please feel free to point it out!</p>",
      "rawMarkdown": "Today we received a [confirmation from the competition organizers](https://www.kaggle.com/c/global-wheat-detection/discussion/163433#919074) that they will be strictly accepting solutions that fit an MIT license.\n\nThis means that if you are including or modifying source code that is released under a more restrictive license (like GPL for YoloV5 and BSD-3 for torchvision), it might not fit under the MIT license requirement.\n\nPlease look at my discussions with @pestipeti and @rwightman below for more information and to come to your own conclusions. I'm certainly no expert on any of this so if I got something wrong, please feel free to point it out!",
      "votes": 38
    },
    {
      "id": 920661,
      "postDate": "2020-07-08T18:32:34.657Z",
      "content": "<p>All, </p>\n\n<p>This Global Wheat Detection competition, and this thread in particular were recently brought to my attention here  <a href=\"https://github.com/ultralytics/yolov5/issues/317\">https://github.com/ultralytics/yolov5/issues/317</a>.</p>\n\n<p>I'm very happy that the community is finding YOLOv5 useful!! I personally have not participated in any Kaggle competitions, but I did participate in a National Geospatial-Intelligence Agency (NGA) competition that got me interested in YOLO and propelled me down my ML path a couple summers ago. I created a repo at the time to document my efforts:\n<a href=\"https://github.com/ultralytics/xview-yolov3\">https://github.com/ultralytics/xview-yolov3</a></p>\n\n<p>It's a nice irony now to see the situation reversed, with other young people learning and using YOLOv5 to start their own research and competition efforts. I'm very humbled and hopeful that smart minds might use what we have developed as the basis for further advancements of their own in the future :)</p>\n\n<p>Regarding the licensing issues, both of our YOLO repositories, <a href=\"https://github.com/ultralytics/yolov3\">https://github.com/ultralytics/yolov3</a> and <a href=\"https://github.com/ultralytics/yolov5\">https://github.com/ultralytics/yolov5</a> are licensed as GPL 3.0. The intention of the license is allow full use for any purpose (academic, research or commercial) of the original or modified code, provided that derivative works are open sourced and licensed as the same. The greater good we have in mind here is the capability of all people to benefit from advancements made with future open-sourced works that begin from or leverage YOLOv5 as a starting point.</p>\n\n<p>Ultralytics was founded to work on particle physics applications, we sleep with one eye open towards expanding knowledge and advancing science. We are always open to new ideas, but we believe we have the right license in place for our work. Isaac Newton once said <strong>\"If I have seen further it is by standing on the shoulders of Giants.\"</strong> I believe that if we allow future works to hide from the world as proprietary code, which other licenses provide provisions for, we are reducing the possible giants that future Isaac Newtons may stand on, and diminishing all of our own futures slightly so.</p>",
      "rawMarkdown": "All, \n\nThis Global Wheat Detection competition, and this thread in particular were recently brought to my attention here  https://github.com/ultralytics/yolov5/issues/317.\n\nI'm very happy that the community is finding YOLOv5 useful!! I personally have not participated in any Kaggle competitions, but I did participate in a National Geospatial-Intelligence Agency (NGA) competition that got me interested in YOLO and propelled me down my ML path a couple summers ago. I created a repo at the time to document my efforts:\nhttps://github.com/ultralytics/xview-yolov3\n\nIt's a nice irony now to see the situation reversed, with other young people learning and using YOLOv5 to start their own research and competition efforts. I'm very humbled and hopeful that smart minds might use what we have developed as the basis for further advancements of their own in the future :)\n\nRegarding the licensing issues, both of our YOLO repositories, https://github.com/ultralytics/yolov3 and https://github.com/ultralytics/yolov5 are licensed as GPL 3.0. The intention of the license is allow full use for any purpose (academic, research or commercial) of the original or modified code, provided that derivative works are open sourced and licensed as the same. The greater good we have in mind here is the capability of all people to benefit from advancements made with future open-sourced works that begin from or leverage YOLOv5 as a starting point.\n\nUltralytics was founded to work on particle physics applications, we sleep with one eye open towards expanding knowledge and advancing science. We are always open to new ideas, but we believe we have the right license in place for our work. Isaac Newton once said **\"If I have seen further it is by standing on the shoulders of Giants.\"** I believe that if we allow future works to hide from the world as proprietary code, which other licenses provide provisions for, we are reducing the possible giants that future Isaac Newtons may stand on, and diminishing all of our own futures slightly so.",
      "votes": 14
    },
    {
      "id": 920185,
      "postDate": "2020-07-08T12:15:30.853Z",
      "content": "<p>The organizers have to make a decision very fast. If they choose to invalidate Yolo / Torchvision then the havoc that had already started would only get worse with dozens of different opinions and endless posts and replies. If on the other hand, we can continue with our work (developing algorithms) and not legal mambo jumbo then the gains would be much higher for the competition.     </p>",
      "rawMarkdown": "The organizers have to make a decision very fast. If they choose to invalidate Yolo / Torchvision then the havoc that had already started would only get worse with dozens of different opinions and endless posts and replies. If on the other hand, we can continue with our work (developing algorithms) and not legal mambo jumbo then the gains would be much higher for the competition.     ",
      "votes": 5
    },
    {
      "id": 921572,
      "postDate": "2020-07-09T11:49:54.603Z",
      "content": "<p>Hi All,</p>\n\n<p>It's right time to switch to <a href=\"https://github.com/AlexeyAB/darknet\">AlexeyAB/darknet/YOLOv4</a> because it's free to use and give you better mAP score. You can see my training result done with 416x416 image resolution-\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1158131%2F45913eb448ceb8bd9a2691443bfb780b%2Fwheat_map.JPG?generation=1594295297209659&amp;alt=media\" alt=\"\"></p>\n\n<p>Anyone can perform better with bigger resolution image if you have more GPU RAM.</p>\n\n<p>See it's license here- <a href=\"https://github.com/AlexeyAB/darknet/blob/master/LICENSE\">https://github.com/AlexeyAB/darknet/blob/master/LICENSE</a></p>\n\n<p>Hoping to see more top scorer using AlexeyAB/darknet's YOLOv4 :)</p>",
      "rawMarkdown": "Hi All,\n\nIt's right time to switch to [AlexeyAB/darknet/YOLOv4](https://github.com/AlexeyAB/darknet) because it's free to use and give you better mAP score. You can see my training result done with 416x416 image resolution-\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1158131%2F45913eb448ceb8bd9a2691443bfb780b%2Fwheat_map.JPG?generation=1594295297209659&amp;alt=media)\n\nAnyone can perform better with bigger resolution image if you have more GPU RAM.\n\nSee it's license here- [https://github.com/AlexeyAB/darknet/blob/master/LICENSE](https://github.com/AlexeyAB/darknet/blob/master/LICENSE)\n\nHoping to see more top scorer using AlexeyAB/darknet's YOLOv4 :)",
      "votes": 2
    },
    {
      "id": 922158,
      "postDate": "2020-07-09T20:39:03.483Z",
      "content": "<p>As far as I understood, if I only use <a href=\"https://github.com/rwightman/efficientdet-pytorch\">https://github.com/rwightman/efficientdet-pytorch</a> as my main model without modifying the source code, I am good to go?</p>",
      "rawMarkdown": "As far as I understood, if I only use https://github.com/rwightman/efficientdet-pytorch as my main model without modifying the source code, I am good to go?",
      "votes": 1,
      "replies": [
        {
          "id": 923524,
          "postDate": "2020-07-11T00:11:45.857Z",
          "content": "<p><a href=\"/yassinealouini\">@yassinealouini</a> my code is licensed Apache 2.0, you can modify it as much as you like, cut &amp; paste, or just use without modifying. All you need to do is fulfill the reqs of the Apache 2.0 license wrt to my code and you can license your code as you see fit (ie MIT).</p>\n\n<p>To fulfill the Apache 2.0 license you would:\n1. Keep the original source license file(s) somewhere (in a external/other licenses folder or in a location with code from the original source). If I pull external code into my repo I also bring in the license file, otherwise I'd likely reference the original github/pypi url, or path relative to submodule if using submodules.\n2. Retain any copyrights or attributions in docs or files from the original sources if they exist. If you cut &amp; paste code from elsewhere, good practice to add a line in the file/class/function docstring or comments depending on the scope that includes a one-two liner of the source/copyright/license type. You can always add your own copyright on top of others to cover your own modifications.\n3.  Add some sort of attribution mention in your docs or in a file (Apache 2.0 mentions a NOTICE file, see the PyTorch NOTICE file as an example), I think it's a-ok to have a 'Third Party Licenses / Credits' section in a README or doc with something like..\n```\nThis solution/module/whatever makes use of the following libraries/modules:</p>\n\n<p>EfficientDet-PyTorch (<a href=\"https://github.com/rwightman/efficientdet-pytorch\">https://github.com/rwightman/efficientdet-pytorch</a>) licensed under Apache 2.0, Copyright Ross Wightman, License: third_party/effdet/LICENSE</p>\n\n<p>PyTorch (<a href=\"https://github.com/pytorch/pytorch\">https://github.com/pytorch/pytorch</a>) ...\n```</p>\n\n<p>If you use Chrome, type <code>chrome://credits</code> in the browser bar to see how they make available the list of licenses for the libs they use.</p>",
          "rawMarkdown": "@yassinealouini my code is licensed Apache 2.0, you can modify it as much as you like, cut &amp; paste, or just use without modifying. All you need to do is fulfill the reqs of the Apache 2.0 license wrt to my code and you can license your code as you see fit (ie MIT).\n\nTo fulfill the Apache 2.0 license you would:\n1. Keep the original source license file(s) somewhere (in a external/other licenses folder or in a location with code from the original source). If I pull external code into my repo I also bring in the license file, otherwise I'd likely reference the original github/pypi url, or path relative to submodule if using submodules.\n2. Retain any copyrights or attributions in docs or files from the original sources if they exist. If you cut &amp; paste code from elsewhere, good practice to add a line in the file/class/function docstring or comments depending on the scope that includes a one-two liner of the source/copyright/license type. You can always add your own copyright on top of others to cover your own modifications.\n3.  Add some sort of attribution mention in your docs or in a file (Apache 2.0 mentions a NOTICE file, see the PyTorch NOTICE file as an example), I think it's a-ok to have a 'Third Party Licenses / Credits' section in a README or doc with something like..\n```\nThis solution/module/whatever makes use of the following libraries/modules:\n\nEfficientDet-PyTorch (https://github.com/rwightman/efficientdet-pytorch) licensed under Apache 2.0, Copyright Ross Wightman, License: third_party/effdet/LICENSE\n\nPyTorch (https://github.com/pytorch/pytorch) ...\n```\n\nIf you use Chrome, type `chrome://credits` in the browser bar to see how they make available the list of licenses for the libs they use.",
          "votes": 25
        },
        {
          "id": 923538,
          "postDate": "2020-07-11T00:45:35.777Z",
          "content": "<p>Thank you for this detailed explanation Ross! We appreciate you contributing your time and knowledge 😄 </p>",
          "rawMarkdown": "Thank you for this detailed explanation Ross! We appreciate you contributing your time and knowledge 😄 ",
          "votes": 1
        },
        {
          "id": 923725,
          "postDate": "2020-07-11T05:35:39.547Z",
          "content": "<p>Very thorough answer. Thanks for sharing all the details! The chrome suggestion is great indeed and I've seen similar software companies do similar things. 👌 </p>",
          "rawMarkdown": "Very thorough answer. Thanks for sharing all the details! The chrome suggestion is great indeed and I've seen similar software companies do similar things. 👌 "
        }
      ]
    },
    {
      "id": 919525,
      "postDate": "2020-07-08T00:25:35.487Z",
      "content": "<p>I have a question... Could we use efficientDet?</p>",
      "rawMarkdown": "I have a question... Could we use efficientDet?",
      "votes": 1,
      "replies": [
        {
          "id": 919533,
          "postDate": "2020-07-08T00:31:06.723Z",
          "content": "<p>Seeing as the creator of <a href=\"https://github.com/rwightman/efficientdet-pytorch\">this efficientdet pytorch implementation</a>, <a href=\"/rwightman\">@rwightman</a>, is in this thread I'd say he's the foremost expert on that! 😁 </p>\n\n<p>From what he's previously said, it does seem like his Apache license can \"fit\" the MIT requirement but I'd be interested to see what he has to say.</p>",
          "rawMarkdown": "Seeing as the creator of [this efficientdet pytorch implementation](https://github.com/rwightman/efficientdet-pytorch), @rwightman, is in this thread I'd say he's the foremost expert on that! 😁 \n\nFrom what he's previously said, it does seem like his Apache license can \"fit\" the MIT requirement but I'd be interested to see what he has to say.",
          "votes": 1
        },
        {
          "id": 919556,
          "postDate": "2020-07-08T01:01:30.687Z",
          "content": "<p>So we can not use efficientDet?..... <a href=\"/matthewmasters\">@matthewmasters</a> </p>",
          "rawMarkdown": "So we can not use efficientDet?..... @matthewmasters "
        },
        {
          "id": 919574,
          "postDate": "2020-07-08T01:42:20.200Z",
          "content": "<p>As I said above, it does seem (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164845#919457\">given what Ross has said</a>) that it would be okay to use. I'm still not 100% certain though and don't want to mislead you, so just read what you can and come to your own conclusions.</p>",
          "rawMarkdown": "As I said above, it does seem ([given what Ross has said](https://www.kaggle.com/c/global-wheat-detection/discussion/164845#919457)) that it would be okay to use. I'm still not 100% certain though and don't want to mislead you, so just read what you can and come to your own conclusions."
        },
        {
          "id": 919581,
          "postDate": "2020-07-08T01:47:28.503Z",
          "content": "<p>Thank you for your answer. </p>",
          "rawMarkdown": "Thank you for your answer. "
        },
        {
          "id": 919611,
          "postDate": "2020-07-08T02:33:19.337Z",
          "content": "<p>For my EfficientDet impl, it is licensed Apache 2.0. I usually choose Apache because\n1. I don't make or intend to make money directly from the code I publish, but I do appreciate acknowledgement when it is used. Apache has an attribution requirement and derivative works should include a mention as described in the license details.\n2. I don't hold any patents that I can grant rights to, so the patent clause does not bother me like it would an org like Facebook</p>\n\n<p>So I do not see any problems here but I'm not a lawyer. The Apache 2.0 license is permissive, as long as you comply with the terms for the code it covers, retain any specified notices or copyrights in code and license docs, provide any specified attribution, it is my understanding that you can license your code that builds on top of it as MIT or other permissive licenses. Usually some structure in the code helps make this clear (code in /src is mine, released under MIT, /external/blah is Apache 2.0 by org X, /external/bar/ BSD-3 by org Y), pointers to what code is new/yours, what code is from sources with other licenses (and possibly modified), file src/from_other_lib.py includes code from Z, include a 'open source licenses' section in a doc/README/manual/about page, etc.</p>\n\n<p>GPL is explicit in that it says even the smallest amount of GPL included in a derived work would force the entire shebang to be GPL (in as many words), the 'viral' clause. There is no such wording in any of the permissive licenses. </p>\n\n<p>Now if you went and took a bunch of BSD-3 or Apache 2.0 code, put it in your solution, removed copyright notices, made no mention of where the code came from, what the original license or copyrights are, etc you would violate both the letter and spirit of anything but the 'do what the F. you want with it' type licenses. </p>\n\n<p>There are other EfficientDet impl. The official Google one is also Apache. At least one of the other PyTorch ones is LGPL which is a whole other confusing mess when it comes to Python.</p>",
          "rawMarkdown": "For my EfficientDet impl, it is licensed Apache 2.0. I usually choose Apache because\n1. I don't make or intend to make money directly from the code I publish, but I do appreciate acknowledgement when it is used. Apache has an attribution requirement and derivative works should include a mention as described in the license details.\n2. I don't hold any patents that I can grant rights to, so the patent clause does not bother me like it would an org like Facebook\n\nSo I do not see any problems here but I'm not a lawyer. The Apache 2.0 license is permissive, as long as you comply with the terms for the code it covers, retain any specified notices or copyrights in code and license docs, provide any specified attribution, it is my understanding that you can license your code that builds on top of it as MIT or other permissive licenses. Usually some structure in the code helps make this clear (code in /src is mine, released under MIT, /external/blah is Apache 2.0 by org X, /external/bar/ BSD-3 by org Y), pointers to what code is new/yours, what code is from sources with other licenses (and possibly modified), file src/from_other_lib.py includes code from Z, include a 'open source licenses' section in a doc/README/manual/about page, etc.\n\nGPL is explicit in that it says even the smallest amount of GPL included in a derived work would force the entire shebang to be GPL (in as many words), the 'viral' clause. There is no such wording in any of the permissive licenses. \n\nNow if you went and took a bunch of BSD-3 or Apache 2.0 code, put it in your solution, removed copyright notices, made no mention of where the code came from, what the original license or copyrights are, etc you would violate both the letter and spirit of anything but the 'do what the F. you want with it' type licenses. \n\nThere are other EfficientDet impl. The official Google one is also Apache. At least one of the other PyTorch ones is LGPL which is a whole other confusing mess when it comes to Python.",
          "votes": 12
        },
        {
          "id": 919619,
          "postDate": "2020-07-08T02:39:37.270Z",
          "content": "<p>Great in-depth explanation Ross! I truly appreciate you taking the time to share this with us all, thank you very much 😄 </p>",
          "rawMarkdown": "Great in-depth explanation Ross! I truly appreciate you taking the time to share this with us all, thank you very much 😄 ",
          "votes": 1
        }
      ]
    },
    {
      "id": 924865,
      "postDate": "2020-07-11T17:03:11.030Z",
      "content": "<p>Does that mean that i can't even gain medal for the solution that uses yolo v5? Or are these restrictions only applicable to solutions that receive money?</p>",
      "rawMarkdown": "Does that mean that i can't even gain medal for the solution that uses yolo v5? Or are these restrictions only applicable to solutions that receive money?",
      "votes": 2,
      "replies": [
        {
          "id": 925069,
          "postDate": "2020-07-11T19:43:46.900Z",
          "content": "<p>GUCHI GANG, GUCHI SQUAD, UVAZJAEMYI KOLLEGA</p>",
          "rawMarkdown": "GUCHI GANG, GUCHI SQUAD, UVAZJAEMYI KOLLEGA",
          "votes": -14
        },
        {
          "id": 925179,
          "postDate": "2020-07-11T21:37:49.567Z",
          "content": "<p>That's correct, you cannot use Yolov5 in either of your final submissions.</p>",
          "rawMarkdown": "That's correct, you cannot use Yolov5 in either of your final submissions."
        },
        {
          "id": 926749,
          "postDate": "2020-07-13T00:47:30.560Z",
          "content": "<p>And what about torchvision models!?</p>",
          "rawMarkdown": "And what about torchvision models!?"
        },
        {
          "id": 926760,
          "postDate": "2020-07-13T01:04:15.353Z",
          "content": "<p>From what I understand, you are allowed to link it (i.e. <code>import torchvision</code>) but you cannot include or modify any of their source code. It should also be listed in your requirements.txt.</p>",
          "rawMarkdown": "From what I understand, you are allowed to link it (i.e. `import torchvision`) but you cannot include or modify any of their source code. It should also be listed in your requirements.txt."
        },
        {
          "id": 928214,
          "postDate": "2020-07-13T19:49:17.003Z",
          "content": "<p><a href=\"/matthewmasters\">@matthewmasters</a> As with Apache 2, there is no such restriction with BSD 3, you can include and modify torchvision code, you should just make a reference/note wrt to the origin of the code and maybe a oner liner torchvision license/copyright (don't think that's strictly required but good practice) where you use that code and you must include the full torchvision license somewhere in your 'documentation or distribution' </p>",
          "rawMarkdown": "@matthewmasters As with Apache 2, there is no such restriction with BSD 3, you can include and modify torchvision code, you should just make a reference/note wrt to the origin of the code and maybe a oner liner torchvision license/copyright (don't think that's strictly required but good practice) where you use that code and you must include the full torchvision license somewhere in your 'documentation or distribution' ",
          "votes": 4
        }
      ]
    },
    {
      "id": 919272,
      "postDate": "2020-07-07T19:20:18.643Z",
      "content": "<p>I am not sure that we cannot use Torchvision (BSD-3). The only difference between BSD-3 and MIT is the patent usage restriction of BSD. MIT does not grant any usage neither. </p>\n\n<p><strong>From BSD-3</strong></p>\n\n<blockquote>\n  <p>Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</p>\n</blockquote>\n\n<p>I think in every case if you want to use a patent/trademark (for any purpose) you'd need written permission from the copyright holder. Even if MIT does not restrict specifically.</p>\n\n<p>So if we don't promote the final solution like: \"Use this solution, build on Torchvision, Facebook's awesome library\", I think we are good to go.</p>",
      "rawMarkdown": "I am not sure that we cannot use Torchvision (BSD-3). The only difference between BSD-3 and MIT is the patent usage restriction of BSD. MIT does not grant any usage neither. \n\n**From BSD-3**\n&gt; Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nI think in every case if you want to use a patent/trademark (for any purpose) you'd need written permission from the copyright holder. Even if MIT does not restrict specifically.\n\nSo if we don't promote the final solution like: \"Use this solution, build on Torchvision, Facebook's awesome library\", I think we are good to go.\n",
      "votes": 2,
      "replies": [
        {
          "id": 919364,
          "postDate": "2020-07-07T20:03:44.213Z",
          "content": "<p>I'm not sure that's correct, but I'm also not very familiar with software license legalese so please correct me if I'm wrong.</p>\n\n<p>In the BSD-3 license, one of the conditions states</p>\n\n<blockquote>\n  <p>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</p>\n</blockquote>\n\n<p>Meaning that any redistribution must contain the exact same BSD-3 license, which goes against the goal of having an MIT license. Furthermore, although I highly doubt that the organizers intend to promote the final solution using the name of the copyright holder, it is another restriction added onto the MIT license that I don't think they want to be held to.</p>\n\n<p>Of course I wish we wouldn't have to worry about these issues at all, but it would really suck to win and be disqualified for conflicting licenses.</p>",
          "rawMarkdown": "I'm not sure that's correct, but I'm also not very familiar with software license legalese so please correct me if I'm wrong.\n\nIn the BSD-3 license, one of the conditions states\n&gt; Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\nMeaning that any redistribution must contain the exact same BSD-3 license, which goes against the goal of having an MIT license. Furthermore, although I highly doubt that the organizers intend to promote the final solution using the name of the copyright holder, it is another restriction added onto the MIT license that I don't think they want to be held to.\n\nOf course I wish we wouldn't have to worry about these issues at all, but it would really suck to win and be disqualified for conflicting licenses.",
          "votes": 1
        },
        {
          "id": 919371,
          "postDate": "2020-07-07T20:08:09.427Z",
          "content": "<p>Need a lawyer.</p>\n\n<ul>\n<li>Pandas - BSD-3</li>\n<li>Numpy - BSD-3</li>\n<li>OpenCV - BSD-3</li>\n<li>Albumentations - MIT</li>\n</ul>",
          "rawMarkdown": "Need a lawyer.\n\n- Pandas - BSD-3\n- Numpy - BSD-3\n- OpenCV - BSD-3\n- Albumentations - MIT\n",
          "votes": 6
        },
        {
          "id": 919377,
          "postDate": "2020-07-07T20:15:28.040Z",
          "content": "<p>Yes, I believe you can <code>import</code> packages like this because you are not redistributing or modifying any code ( <a href=\"/rwightman\">@rwightman</a> seems to have some expertise and talked about this <a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/163433#917855\">here</a> ). I think that is perfectly permissible so long as you simply include the package name as a dependency in your requirements.txt. However, like I said in my OP, if you are actually taking code or modifying any source code, then your solution likely doesn't meet the MIT requirements.</p>",
          "rawMarkdown": "Yes, I believe you can `import` packages like this because you are not redistributing or modifying any code ( @rwightman seems to have some expertise and talked about this [here](https://www.kaggle.com/c/global-wheat-detection/discussion/163433#917855) ). I think that is perfectly permissible so long as you simply include the package name as a dependency in your requirements.txt. However, like I said in my OP, if you are actually taking code or modifying any source code, then your solution likely doesn't meet the MIT requirements."
        },
        {
          "id": 919381,
          "postDate": "2020-07-07T20:21:12.183Z",
          "content": "<p>So importing and use Torchvision is OK? Probably I misunderstood your topic. By \"using any code\" you meant copying the source with or without modification?</p>",
          "rawMarkdown": "So importing and use Torchvision is OK? Probably I misunderstood your topic. By \"using any code\" you meant copying the source with or without modification?\n",
          "votes": 1
        },
        {
          "id": 919386,
          "postDate": "2020-07-07T20:24:18.337Z",
          "content": "<p>From my understanding, yes. Though like I said, I'm no expert on this and am trying to err on the side of caution. And sorry if my original post was unclear, I'll edit it now and try to make that part clearer!</p>",
          "rawMarkdown": "From my understanding, yes. Though like I said, I'm no expert on this and am trying to err on the side of caution. And sorry if my original post was unclear, I'll edit it now and try to make that part clearer!"
        },
        {
          "id": 919388,
          "postDate": "2020-07-07T20:27:50.837Z",
          "content": "<p>No worries. I am more or less done with this competition (because of many other reasons).</p>",
          "rawMarkdown": "No worries. I am more or less done with this competition (because of many other reasons).",
          "votes": 2
        },
        {
          "id": 919393,
          "postDate": "2020-07-07T20:31:29.800Z",
          "content": "<p>Yeah, me too. I am hoping to simply wrap up my solution nicely and make a decent write-up about it for the CVPPP paper submission.</p>",
          "rawMarkdown": "Yeah, me too. I am hoping to simply wrap up my solution nicely and make a decent write-up about it for the CVPPP paper submission."
        },
        {
          "id": 919457,
          "postDate": "2020-07-07T21:53:26.407Z",
          "content": "<p>Devil is in the detail and the precision of the wording with this stuff. In the Yolov5 question thread the wording <a href=\"/maggiemd\">@maggiemd</a> used was 'fit the MIT license'. As long as the derived work can be licensed as MIT, you should be good to go.</p>\n\n<p>BSD-* and Apache and most open source licenses that are permissive (read: not copyleft) should be fully compatible with licensing the end work under MIT so long as any extra requirements of the original licenses (attribution, including the copyright, etc) are followed.</p>\n\n<p>GPL would not 'fit'. You can include MIT code with GPL code but the end result has to be GPL and cannot remain MIT. GPL is a copyleft license that restricts properietary use.</p>",
          "rawMarkdown": "Devil is in the detail and the precision of the wording with this stuff. In the Yolov5 question thread the wording @maggiemd used was 'fit the MIT license'. As long as the derived work can be licensed as MIT, you should be good to go.\n\nBSD-* and Apache and most open source licenses that are permissive (read: not copyleft) should be fully compatible with licensing the end work under MIT so long as any extra requirements of the original licenses (attribution, including the copyright, etc) are followed.\n\nGPL would not 'fit'. You can include MIT code with GPL code but the end result has to be GPL and cannot remain MIT. GPL is a copyleft license that restricts properietary use.",
          "votes": 5
        },
        {
          "id": 919464,
          "postDate": "2020-07-07T22:01:33.557Z",
          "content": "<p>Thank you for chiming in with your expertise Ross, it is very helpful! If I'm not mistaken though, doesn't BSD-3 require that you use a BSD license in any derivative/modification though? Since it has that one extra condition about promotion, then that condition has to be included in the future, making it no longer MIT? (Hopefully I worded that clearly enough)</p>",
          "rawMarkdown": "Thank you for chiming in with your expertise Ross, it is very helpful! If I'm not mistaken though, doesn't BSD-3 require that you use a BSD license in any derivative/modification though? Since it has that one extra condition about promotion, then that condition has to be included in the future, making it no longer MIT? (Hopefully I worded that clearly enough)",
          "votes": 1
        },
        {
          "id": 919475,
          "postDate": "2020-07-07T22:21:59.920Z",
          "content": "<p>If you get into the legal semantics/specifics of all of this nothing is ever clear. In practice I'm not aware of any concerns using BSD-3 in MIT project though. </p>\n\n<p>BSD-3 states you must keep/reproduce the copyright notice and disclaimer. In most pratical situations I've encountered, you typically append those extra disclaimers and attributions (Apache 2 requires attribution to be passed along in documentation) to the bottom of the derived work license, in documentation, etc. Don't strip any copyrights. As a rule, add new coprights/disclaimers on top, retain old ones as a default. Now that could be all be wrong if it was formally challenged but I doubt that'll happen given the intent of these permissive licenses.</p>",
          "rawMarkdown": "If you get into the legal semantics/specifics of all of this nothing is ever clear. In practice I'm not aware of any concerns using BSD-3 in MIT project though. \n\nBSD-3 states you must keep/reproduce the copyright notice and disclaimer. In most pratical situations I've encountered, you typically append those extra disclaimers and attributions (Apache 2 requires attribution to be passed along in documentation) to the bottom of the derived work license, in documentation, etc. Don't strip any copyrights. As a rule, add new coprights/disclaimers on top, retain old ones as a default. Now that could be all be wrong if it was formally challenged but I doubt that'll happen given the intent of these permissive licenses.",
          "votes": 3
        },
        {
          "id": 919477,
          "postDate": "2020-07-07T22:30:12.773Z",
          "content": "<p>Alright, I understand, I'll just try my best and try not to worry too much about the specifics. Thank you again for all this great information and your help!</p>",
          "rawMarkdown": "Alright, I understand, I'll just try my best and try not to worry too much about the specifics. Thank you again for all this great information and your help!"
        },
        {
          "id": 919919,
          "postDate": "2020-07-08T07:31:00.067Z",
          "content": "<p>Yes <a href=\"/rwightman\">@rwightman</a> BSD and Apache would fit the requirements to fit the MIT licence. GPL-v3 seems to be  the major pain point</p>",
          "rawMarkdown": "Yes @rwightman BSD and Apache would fit the requirements to fit the MIT licence. GPL-v3 seems to be  the major pain point",
          "votes": 1
        }
      ]
    },
    {
      "id": 919913,
      "postDate": "2020-07-08T07:27:49.103Z",
      "content": "<p>Importing or using a software BSD licence does not invalidate your solution because it is not a copyleft licence. LGPL is also authorized if you only import it. Only GPL-v3 is an issue for this competition as it is not clear if your winning solution can stay MIT or not, except if you are only importing the library and not modifying</p>",
      "rawMarkdown": "Importing or using a software BSD licence does not invalidate your solution because it is not a copyleft licence. LGPL is also authorized if you only import it. Only GPL-v3 is an issue for this competition as it is not clear if your winning solution can stay MIT or not, except if you are only importing the library and not modifying",
      "votes": 1,
      "replies": [
        {
          "id": 920046,
          "postDate": "2020-07-08T09:04:26.497Z",
          "content": "<p>So - Can you clarify, if I use YoloV5 as is (changing parameters only using the config)  is allowed or not? As YooV5 is GPL-v3 </p>",
          "rawMarkdown": "So - Can you clarify, if I use YoloV5 as is (changing parameters only using the config)  is allowed or not? As YooV5 is GPL-v3 ",
          "votes": 2
        },
        {
          "id": 920190,
          "postDate": "2020-07-08T12:22:37.190Z",
          "content": "<p>Echoing <a href=\"/omershect\">@omershect</a> ... Is YOLOv5 then <em>acceptable</em> if we only import from the library; i.e. from <a href=\"https://github.com/ultralytics/yolov5\">Ultralytics YOLOv5</a>, and not modify any part of the code except change hyperparameters?</p>",
          "rawMarkdown": "Echoing @omershect ... Is YOLOv5 then *acceptable* if we only import from the library; i.e. from [Ultralytics YOLOv5](https://github.com/ultralytics/yolov5), and not modify any part of the code except change hyperparameters?",
          "votes": 1
        },
        {
          "id": 920592,
          "postDate": "2020-07-08T17:39:25.557Z",
          "content": "<p>All of this ia a bit grey because much hasn't been formally tested in court. But as for the spirit of GPL and what many interpret it to mean, <code>import blah</code> is still a problem with GPL, but not with LGPL (allows dynamic linking). It all comes down to what is considered a single combined program, the derived work. </p>\n\n<p>Dynamic and static linking with any GPL library will produce a single program that requires the end result to be GPL. For dynamic languages there is debate on whether import is equivalent to dynamic linking, whether the result is a single program. In some cases with so/dll files included in the module it is clear. But for others not so much. </p>\n\n<p>Then there is a FAQ on plugins,  see <a href=\"https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins\">https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins</a> ... \nIf they consider forking a process and communicating via pipes with complex data structures to constitue a single program, I feel you'd be hard pressed to argue that importing a python module does not.</p>\n\n<p>EDIT: removed commentary on commercial option, Glenn Jocher made his viewpoint on the matter clear below, his priority is maintaining the openness of his work</p>",
          "rawMarkdown": "All of this ia a bit grey because much hasn't been formally tested in court. But as for the spirit of GPL and what many interpret it to mean, `import blah` is still a problem with GPL, but not with LGPL (allows dynamic linking). It all comes down to what is considered a single combined program, the derived work. \n\nDynamic and static linking with any GPL library will produce a single program that requires the end result to be GPL. For dynamic languages there is debate on whether import is equivalent to dynamic linking, whether the result is a single program. In some cases with so/dll files included in the module it is clear. But for others not so much. \n\nThen there is a FAQ on plugins,  see https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins ... \nIf they consider forking a process and communicating via pipes with complex data structures to constitue a single program, I feel you'd be hard pressed to argue that importing a python module does not.\n\nEDIT: removed commentary on commercial option, Glenn Jocher made his viewpoint on the matter clear below, his priority is maintaining the openness of his work",
          "votes": 1
        },
        {
          "id": 921228,
          "postDate": "2020-07-09T06:25:28.730Z",
          "content": "<p>&gt; except if you are only importing the library and not modifying</p>\n\n<p>Now, there's a new possibility, so yes what <a href=\"/omershect\">@omershect</a> asked is very important (changing parameters only using the config is allowed or not) <a href=\"/bendvd\">@bendvd</a> <a href=\"/maggiemd\">@maggiemd</a> </p>",
          "rawMarkdown": "&gt; except if you are only importing the library and not modifying\n\nNow, there's a new possibility, so yes what @omershect asked is very important (changing parameters only using the config is allowed or not) @bendvd @maggiemd ",
          "votes": 1
        },
        {
          "id": 927051,
          "postDate": "2020-07-13T07:08:17.157Z",
          "content": "<p>Please make it clear that could we use YoloV5 without modifying?</p>",
          "rawMarkdown": "Please make it clear that could we use YoloV5 without modifying?"
        }
      ]
    },
    {
      "id": 926270,
      "postDate": "2020-07-12T15:55:56.887Z",
      "content": "<p>ss</p>",
      "rawMarkdown": "ss",
      "votes": -3,
      "replies": [
        {
          "id": 926419,
          "postDate": "2020-07-12T17:51:32.700Z",
          "content": "<p>Hope that was an accident...</p>",
          "rawMarkdown": "Hope that was an accident...",
          "votes": 3
        }
      ]
    },
    {
      "id": 932221,
      "postDate": "2020-07-16T20:33:05.097Z",
      "content": "<p>It seems that CenterNet is \"safe\": <a href=\"https://github.com/xingyizhou/CenterNet/blob/master/NOTICE\">https://github.com/xingyizhou/CenterNet/blob/master/NOTICE</a>\nDo you think this is the case given the NOTICE? 👀 </p>",
      "rawMarkdown": "It seems that CenterNet is \"safe\": https://github.com/xingyizhou/CenterNet/blob/master/NOTICE\nDo you think this is the case given the NOTICE? 👀 "
    },
    {
      "id": 923136,
      "postDate": "2020-07-10T14:56:37.913Z",
      "content": "<p>Is this an image processing competition?</p>",
      "rawMarkdown": "Is this an image processing competition?"
    },
    {
      "id": 920896,
      "postDate": "2020-07-08T22:20:57.937Z",
      "content": "<p>Then how about Apache 2.0 license?</p>",
      "rawMarkdown": "Then how about Apache 2.0 license?\n\n"
    },
    {
      "id": 920292,
      "postDate": "2020-07-08T13:34:54.230Z",
      "rawMarkdown": "",
      "votes": -1,
      "isDeleted": true
    },
    {
      "id": 923001,
      "postDate": "2020-07-10T13:26:40.720Z",
      "content": "<p>Thank you </p>",
      "rawMarkdown": "Thank you "
    }
  ],
  "comments": [
    {
      "id": 920661,
      "author_name": "Glenn Jocher",
      "author_url": "",
      "post_date": "2020-07-08T18:32:34.657000",
      "content": "<p>All, </p>\n\n<p>This Global Wheat Detection competition, and this thread in particular were recently brought to my attention here  <a href=\"https://github.com/ultralytics/yolov5/issues/317\">https://github.com/ultralytics/yolov5/issues/317</a>.</p>\n\n<p>I'm very happy that the community is finding YOLOv5 useful!! I personally have not participated in any Kaggle competitions, but I did participate in a National Geospatial-Intelligence Agency (NGA) competition that got me interested in YOLO and propelled me down my ML path a couple summers ago. I created a repo at the time to document my efforts:\n<a href=\"https://github.com/ultralytics/xview-yolov3\">https://github.com/ultralytics/xview-yolov3</a></p>\n\n<p>It's a nice irony now to see the situation reversed, with other young people learning and using YOLOv5 to start their own research and competition efforts. I'm very humbled and hopeful that smart minds might use what we have developed as the basis for further advancements of their own in the future :)</p>\n\n<p>Regarding the licensing issues, both of our YOLO repositories, <a href=\"https://github.com/ultralytics/yolov3\">https://github.com/ultralytics/yolov3</a> and <a href=\"https://github.com/ultralytics/yolov5\">https://github.com/ultralytics/yolov5</a> are licensed as GPL 3.0. The intention of the license is allow full use for any purpose (academic, research or commercial) of the original or modified code, provided that derivative works are open sourced and licensed as the same. The greater good we have in mind here is the capability of all people to benefit from advancements made with future open-sourced works that begin from or leverage YOLOv5 as a starting point.</p>\n\n<p>Ultralytics was founded to work on particle physics applications, we sleep with one eye open towards expanding knowledge and advancing science. We are always open to new ideas, but we believe we have the right license in place for our work. Isaac Newton once said <strong>\"If I have seen further it is by standing on the shoulders of Giants.\"</strong> I believe that if we allow future works to hide from the world as proprietary code, which other licenses provide provisions for, we are reducing the possible giants that future Isaac Newtons may stand on, and diminishing all of our own futures slightly so.</p>",
      "votes": 14,
      "replies": []
    },
    {
      "id": 920185,
      "author_name": "QuantScientist",
      "author_url": "",
      "post_date": "2020-07-08T12:15:30.853000",
      "content": "<p>The organizers have to make a decision very fast. If they choose to invalidate Yolo / Torchvision then the havoc that had already started would only get worse with dozens of different opinions and endless posts and replies. If on the other hand, we can continue with our work (developing algorithms) and not legal mambo jumbo then the gains would be much higher for the competition.     </p>",
      "votes": 5,
      "replies": []
    },
    {
      "id": 921572,
      "author_name": "Prateek Gupta",
      "author_url": "",
      "post_date": "2020-07-09T11:49:54.603000",
      "content": "<p>Hi All,</p>\n\n<p>It's right time to switch to <a href=\"https://github.com/AlexeyAB/darknet\">AlexeyAB/darknet/YOLOv4</a> because it's free to use and give you better mAP score. You can see my training result done with 416x416 image resolution-\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1158131%2F45913eb448ceb8bd9a2691443bfb780b%2Fwheat_map.JPG?generation=1594295297209659&amp;alt=media\" alt=\"\"></p>\n\n<p>Anyone can perform better with bigger resolution image if you have more GPU RAM.</p>\n\n<p>See it's license here- <a href=\"https://github.com/AlexeyAB/darknet/blob/master/LICENSE\">https://github.com/AlexeyAB/darknet/blob/master/LICENSE</a></p>\n\n<p>Hoping to see more top scorer using AlexeyAB/darknet's YOLOv4 :)</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 922158,
      "author_name": "Yassine Alouini",
      "author_url": "",
      "post_date": "2020-07-09T20:39:03.483000",
      "content": "<p>As far as I understood, if I only use <a href=\"https://github.com/rwightman/efficientdet-pytorch\">https://github.com/rwightman/efficientdet-pytorch</a> as my main model without modifying the source code, I am good to go?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 923524,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-11T00:11:45.857000",
          "content": "<p><a href=\"/yassinealouini\">@yassinealouini</a> my code is licensed Apache 2.0, you can modify it as much as you like, cut &amp; paste, or just use without modifying. All you need to do is fulfill the reqs of the Apache 2.0 license wrt to my code and you can license your code as you see fit (ie MIT).</p>\n\n<p>To fulfill the Apache 2.0 license you would:\n1. Keep the original source license file(s) somewhere (in a external/other licenses folder or in a location with code from the original source). If I pull external code into my repo I also bring in the license file, otherwise I'd likely reference the original github/pypi url, or path relative to submodule if using submodules.\n2. Retain any copyrights or attributions in docs or files from the original sources if they exist. If you cut &amp; paste code from elsewhere, good practice to add a line in the file/class/function docstring or comments depending on the scope that includes a one-two liner of the source/copyright/license type. You can always add your own copyright on top of others to cover your own modifications.\n3.  Add some sort of attribution mention in your docs or in a file (Apache 2.0 mentions a NOTICE file, see the PyTorch NOTICE file as an example), I think it's a-ok to have a 'Third Party Licenses / Credits' section in a README or doc with something like..\n```\nThis solution/module/whatever makes use of the following libraries/modules:</p>\n\n<p>EfficientDet-PyTorch (<a href=\"https://github.com/rwightman/efficientdet-pytorch\">https://github.com/rwightman/efficientdet-pytorch</a>) licensed under Apache 2.0, Copyright Ross Wightman, License: third_party/effdet/LICENSE</p>\n\n<p>PyTorch (<a href=\"https://github.com/pytorch/pytorch\">https://github.com/pytorch/pytorch</a>) ...\n```</p>\n\n<p>If you use Chrome, type <code>chrome://credits</code> in the browser bar to see how they make available the list of licenses for the libs they use.</p>",
          "votes": 25,
          "replies": []
        },
        {
          "id": 923538,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-11T00:45:35.777000",
          "content": "<p>Thank you for this detailed explanation Ross! We appreciate you contributing your time and knowledge 😄 </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 923725,
          "author_name": "Yassine Alouini",
          "author_url": "",
          "post_date": "2020-07-11T05:35:39.547000",
          "content": "<p>Very thorough answer. Thanks for sharing all the details! The chrome suggestion is great indeed and I've seen similar software companies do similar things. 👌 </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 919525,
      "author_name": "ChrisXie",
      "author_url": "",
      "post_date": "2020-07-08T00:25:35.487000",
      "content": "<p>I have a question... Could we use efficientDet?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 919533,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-08T00:31:06.723000",
          "content": "<p>Seeing as the creator of <a href=\"https://github.com/rwightman/efficientdet-pytorch\">this efficientdet pytorch implementation</a>, <a href=\"/rwightman\">@rwightman</a>, is in this thread I'd say he's the foremost expert on that! 😁 </p>\n\n<p>From what he's previously said, it does seem like his Apache license can \"fit\" the MIT requirement but I'd be interested to see what he has to say.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 919556,
          "author_name": "Chanhu",
          "author_url": "",
          "post_date": "2020-07-08T01:01:30.687000",
          "content": "<p>So we can not use efficientDet?..... <a href=\"/matthewmasters\">@matthewmasters</a> </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919574,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-08T01:42:20.200000",
          "content": "<p>As I said above, it does seem (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164845#919457\">given what Ross has said</a>) that it would be okay to use. I'm still not 100% certain though and don't want to mislead you, so just read what you can and come to your own conclusions.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919581,
          "author_name": "Chanhu",
          "author_url": "",
          "post_date": "2020-07-08T01:47:28.503000",
          "content": "<p>Thank you for your answer. </p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919611,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-08T02:33:19.337000",
          "content": "<p>For my EfficientDet impl, it is licensed Apache 2.0. I usually choose Apache because\n1. I don't make or intend to make money directly from the code I publish, but I do appreciate acknowledgement when it is used. Apache has an attribution requirement and derivative works should include a mention as described in the license details.\n2. I don't hold any patents that I can grant rights to, so the patent clause does not bother me like it would an org like Facebook</p>\n\n<p>So I do not see any problems here but I'm not a lawyer. The Apache 2.0 license is permissive, as long as you comply with the terms for the code it covers, retain any specified notices or copyrights in code and license docs, provide any specified attribution, it is my understanding that you can license your code that builds on top of it as MIT or other permissive licenses. Usually some structure in the code helps make this clear (code in /src is mine, released under MIT, /external/blah is Apache 2.0 by org X, /external/bar/ BSD-3 by org Y), pointers to what code is new/yours, what code is from sources with other licenses (and possibly modified), file src/from_other_lib.py includes code from Z, include a 'open source licenses' section in a doc/README/manual/about page, etc.</p>\n\n<p>GPL is explicit in that it says even the smallest amount of GPL included in a derived work would force the entire shebang to be GPL (in as many words), the 'viral' clause. There is no such wording in any of the permissive licenses. </p>\n\n<p>Now if you went and took a bunch of BSD-3 or Apache 2.0 code, put it in your solution, removed copyright notices, made no mention of where the code came from, what the original license or copyrights are, etc you would violate both the letter and spirit of anything but the 'do what the F. you want with it' type licenses. </p>\n\n<p>There are other EfficientDet impl. The official Google one is also Apache. At least one of the other PyTorch ones is LGPL which is a whole other confusing mess when it comes to Python.</p>",
          "votes": 12,
          "replies": []
        },
        {
          "id": 919619,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-08T02:39:37.270000",
          "content": "<p>Great in-depth explanation Ross! I truly appreciate you taking the time to share this with us all, thank you very much 😄 </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 924865,
      "author_name": "Ilya Fedorov",
      "author_url": "",
      "post_date": "2020-07-11T17:03:11.030000",
      "content": "<p>Does that mean that i can't even gain medal for the solution that uses yolo v5? Or are these restrictions only applicable to solutions that receive money?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 925069,
          "author_name": "Georgiy Kuzmin",
          "author_url": "",
          "post_date": "2020-07-11T19:43:46.900000",
          "content": "<p>GUCHI GANG, GUCHI SQUAD, UVAZJAEMYI KOLLEGA</p>",
          "votes": -14,
          "replies": []
        },
        {
          "id": 925179,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-11T21:37:49.567000",
          "content": "<p>That's correct, you cannot use Yolov5 in either of your final submissions.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 926749,
          "author_name": "Bhavesh Jain",
          "author_url": "",
          "post_date": "2020-07-13T00:47:30.560000",
          "content": "<p>And what about torchvision models!?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 926760,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-13T01:04:15.353000",
          "content": "<p>From what I understand, you are allowed to link it (i.e. <code>import torchvision</code>) but you cannot include or modify any of their source code. It should also be listed in your requirements.txt.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 928214,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-13T19:49:17.003000",
          "content": "<p><a href=\"/matthewmasters\">@matthewmasters</a> As with Apache 2, there is no such restriction with BSD 3, you can include and modify torchvision code, you should just make a reference/note wrt to the origin of the code and maybe a oner liner torchvision license/copyright (don't think that's strictly required but good practice) where you use that code and you must include the full torchvision license somewhere in your 'documentation or distribution' </p>",
          "votes": 4,
          "replies": []
        }
      ]
    },
    {
      "id": 919272,
      "author_name": "Peter",
      "author_url": "",
      "post_date": "2020-07-07T19:20:18.643000",
      "content": "<p>I am not sure that we cannot use Torchvision (BSD-3). The only difference between BSD-3 and MIT is the patent usage restriction of BSD. MIT does not grant any usage neither. </p>\n\n<p><strong>From BSD-3</strong></p>\n\n<blockquote>\n  <p>Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</p>\n</blockquote>\n\n<p>I think in every case if you want to use a patent/trademark (for any purpose) you'd need written permission from the copyright holder. Even if MIT does not restrict specifically.</p>\n\n<p>So if we don't promote the final solution like: \"Use this solution, build on Torchvision, Facebook's awesome library\", I think we are good to go.</p>",
      "votes": 2,
      "replies": [
        {
          "id": 919364,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T20:03:44.213000",
          "content": "<p>I'm not sure that's correct, but I'm also not very familiar with software license legalese so please correct me if I'm wrong.</p>\n\n<p>In the BSD-3 license, one of the conditions states</p>\n\n<blockquote>\n  <p>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</p>\n</blockquote>\n\n<p>Meaning that any redistribution must contain the exact same BSD-3 license, which goes against the goal of having an MIT license. Furthermore, although I highly doubt that the organizers intend to promote the final solution using the name of the copyright holder, it is another restriction added onto the MIT license that I don't think they want to be held to.</p>\n\n<p>Of course I wish we wouldn't have to worry about these issues at all, but it would really suck to win and be disqualified for conflicting licenses.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 919371,
          "author_name": "Peter",
          "author_url": "",
          "post_date": "2020-07-07T20:08:09.427000",
          "content": "<p>Need a lawyer.</p>\n\n<ul>\n<li>Pandas - BSD-3</li>\n<li>Numpy - BSD-3</li>\n<li>OpenCV - BSD-3</li>\n<li>Albumentations - MIT</li>\n</ul>",
          "votes": 6,
          "replies": []
        },
        {
          "id": 919377,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T20:15:28.040000",
          "content": "<p>Yes, I believe you can <code>import</code> packages like this because you are not redistributing or modifying any code ( <a href=\"/rwightman\">@rwightman</a> seems to have some expertise and talked about this <a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/163433#917855\">here</a> ). I think that is perfectly permissible so long as you simply include the package name as a dependency in your requirements.txt. However, like I said in my OP, if you are actually taking code or modifying any source code, then your solution likely doesn't meet the MIT requirements.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919381,
          "author_name": "Peter",
          "author_url": "",
          "post_date": "2020-07-07T20:21:12.183000",
          "content": "<p>So importing and use Torchvision is OK? Probably I misunderstood your topic. By \"using any code\" you meant copying the source with or without modification?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 919386,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T20:24:18.337000",
          "content": "<p>From my understanding, yes. Though like I said, I'm no expert on this and am trying to err on the side of caution. And sorry if my original post was unclear, I'll edit it now and try to make that part clearer!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919388,
          "author_name": "Peter",
          "author_url": "",
          "post_date": "2020-07-07T20:27:50.837000",
          "content": "<p>No worries. I am more or less done with this competition (because of many other reasons).</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 919393,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T20:31:29.800000",
          "content": "<p>Yeah, me too. I am hoping to simply wrap up my solution nicely and make a decent write-up about it for the CVPPP paper submission.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919457,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-07T21:53:26.407000",
          "content": "<p>Devil is in the detail and the precision of the wording with this stuff. In the Yolov5 question thread the wording <a href=\"/maggiemd\">@maggiemd</a> used was 'fit the MIT license'. As long as the derived work can be licensed as MIT, you should be good to go.</p>\n\n<p>BSD-* and Apache and most open source licenses that are permissive (read: not copyleft) should be fully compatible with licensing the end work under MIT so long as any extra requirements of the original licenses (attribution, including the copyright, etc) are followed.</p>\n\n<p>GPL would not 'fit'. You can include MIT code with GPL code but the end result has to be GPL and cannot remain MIT. GPL is a copyleft license that restricts properietary use.</p>",
          "votes": 5,
          "replies": []
        },
        {
          "id": 919464,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T22:01:33.557000",
          "content": "<p>Thank you for chiming in with your expertise Ross, it is very helpful! If I'm not mistaken though, doesn't BSD-3 require that you use a BSD license in any derivative/modification though? Since it has that one extra condition about promotion, then that condition has to be included in the future, making it no longer MIT? (Hopefully I worded that clearly enough)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 919475,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-07T22:21:59.920000",
          "content": "<p>If you get into the legal semantics/specifics of all of this nothing is ever clear. In practice I'm not aware of any concerns using BSD-3 in MIT project though. </p>\n\n<p>BSD-3 states you must keep/reproduce the copyright notice and disclaimer. In most pratical situations I've encountered, you typically append those extra disclaimers and attributions (Apache 2 requires attribution to be passed along in documentation) to the bottom of the derived work license, in documentation, etc. Don't strip any copyrights. As a rule, add new coprights/disclaimers on top, retain old ones as a default. Now that could be all be wrong if it was formally challenged but I doubt that'll happen given the intent of these permissive licenses.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 919477,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-07T22:30:12.773000",
          "content": "<p>Alright, I understand, I'll just try my best and try not to worry too much about the specifics. Thank you again for all this great information and your help!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 919919,
          "author_name": "Etienne David",
          "author_url": "",
          "post_date": "2020-07-08T07:31:00.067000",
          "content": "<p>Yes <a href=\"/rwightman\">@rwightman</a> BSD and Apache would fit the requirements to fit the MIT licence. GPL-v3 seems to be  the major pain point</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 919913,
      "author_name": "Etienne David",
      "author_url": "",
      "post_date": "2020-07-08T07:27:49.103000",
      "content": "<p>Importing or using a software BSD licence does not invalidate your solution because it is not a copyleft licence. LGPL is also authorized if you only import it. Only GPL-v3 is an issue for this competition as it is not clear if your winning solution can stay MIT or not, except if you are only importing the library and not modifying</p>",
      "votes": 1,
      "replies": [
        {
          "id": 920046,
          "author_name": "OmerS",
          "author_url": "",
          "post_date": "2020-07-08T09:04:26.497000",
          "content": "<p>So - Can you clarify, if I use YoloV5 as is (changing parameters only using the config)  is allowed or not? As YooV5 is GPL-v3 </p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 920190,
          "author_name": "Misty Perutti",
          "author_url": "",
          "post_date": "2020-07-08T12:22:37.190000",
          "content": "<p>Echoing <a href=\"/omershect\">@omershect</a> ... Is YOLOv5 then <em>acceptable</em> if we only import from the library; i.e. from <a href=\"https://github.com/ultralytics/yolov5\">Ultralytics YOLOv5</a>, and not modify any part of the code except change hyperparameters?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 920592,
          "author_name": "RossWightman",
          "author_url": "",
          "post_date": "2020-07-08T17:39:25.557000",
          "content": "<p>All of this ia a bit grey because much hasn't been formally tested in court. But as for the spirit of GPL and what many interpret it to mean, <code>import blah</code> is still a problem with GPL, but not with LGPL (allows dynamic linking). It all comes down to what is considered a single combined program, the derived work. </p>\n\n<p>Dynamic and static linking with any GPL library will produce a single program that requires the end result to be GPL. For dynamic languages there is debate on whether import is equivalent to dynamic linking, whether the result is a single program. In some cases with so/dll files included in the module it is clear. But for others not so much. </p>\n\n<p>Then there is a FAQ on plugins,  see <a href=\"https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins\">https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins</a> ... \nIf they consider forking a process and communicating via pipes with complex data structures to constitue a single program, I feel you'd be hard pressed to argue that importing a python module does not.</p>\n\n<p>EDIT: removed commentary on commercial option, Glenn Jocher made his viewpoint on the matter clear below, his priority is maintaining the openness of his work</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 921228,
          "author_name": "Neuron Engineer",
          "author_url": "",
          "post_date": "2020-07-09T06:25:28.730000",
          "content": "<p>&gt; except if you are only importing the library and not modifying</p>\n\n<p>Now, there's a new possibility, so yes what <a href=\"/omershect\">@omershect</a> asked is very important (changing parameters only using the config is allowed or not) <a href=\"/bendvd\">@bendvd</a> <a href=\"/maggiemd\">@maggiemd</a> </p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 927051,
          "author_name": "cxt",
          "author_url": "",
          "post_date": "2020-07-13T07:08:17.157000",
          "content": "<p>Please make it clear that could we use YoloV5 without modifying?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 926270,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-07-12T15:55:56.887000",
      "content": "<p>ss</p>",
      "votes": -3,
      "replies": [
        {
          "id": 926419,
          "author_name": "Matt",
          "author_url": "",
          "post_date": "2020-07-12T17:51:32.700000",
          "content": "<p>Hope that was an accident...</p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 932221,
      "author_name": "Yassine Alouini",
      "author_url": "",
      "post_date": "2020-07-16T20:33:05.097000",
      "content": "<p>It seems that CenterNet is \"safe\": <a href=\"https://github.com/xingyizhou/CenterNet/blob/master/NOTICE\">https://github.com/xingyizhou/CenterNet/blob/master/NOTICE</a>\nDo you think this is the case given the NOTICE? 👀 </p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 923136,
      "author_name": "Samrat Chaudhuri",
      "author_url": "",
      "post_date": "2020-07-10T14:56:37.913000",
      "content": "<p>Is this an image processing competition?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 920896,
      "author_name": "Ji Wong Park",
      "author_url": "",
      "post_date": "2020-07-08T22:20:57.937000",
      "content": "<p>Then how about Apache 2.0 license?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 920292,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-07-08T13:34:54.230000",
      "content": "",
      "votes": -1,
      "replies": []
    },
    {
      "id": 923001,
      "author_name": "mrinal chandra mishra",
      "author_url": "",
      "post_date": "2020-07-10T13:26:40.720000",
      "content": "<p>Thank you </p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "919140": "Today we received a [confirmation from the competition organizers](https://www.kaggle.com/c/global-wheat-detection/discussion/163433#919074) that they will be strictly accepting solutions that fit an MIT license.\n\nThis means that if you are including or modifying source code that is released under a more restrictive license (like GPL for YoloV5 and BSD-3 for torchvision), it might not fit under the MIT license requirement.\n\nPlease look at my discussions with @pestipeti and @rwightman below for more information and to come to your own conclusions. I'm certainly no expert on any of this so if I got something wrong, please feel free to point it out!",
    "920661": "All, \n\nThis Global Wheat Detection competition, and this thread in particular were recently brought to my attention here  https://github.com/ultralytics/yolov5/issues/317.\n\nI'm very happy that the community is finding YOLOv5 useful!! I personally have not participated in any Kaggle competitions, but I did participate in a National Geospatial-Intelligence Agency (NGA) competition that got me interested in YOLO and propelled me down my ML path a couple summers ago. I created a repo at the time to document my efforts:\nhttps://github.com/ultralytics/xview-yolov3\n\nIt's a nice irony now to see the situation reversed, with other young people learning and using YOLOv5 to start their own research and competition efforts. I'm very humbled and hopeful that smart minds might use what we have developed as the basis for further advancements of their own in the future :)\n\nRegarding the licensing issues, both of our YOLO repositories, https://github.com/ultralytics/yolov3 and https://github.com/ultralytics/yolov5 are licensed as GPL 3.0. The intention of the license is allow full use for any purpose (academic, research or commercial) of the original or modified code, provided that derivative works are open sourced and licensed as the same. The greater good we have in mind here is the capability of all people to benefit from advancements made with future open-sourced works that begin from or leverage YOLOv5 as a starting point.\n\nUltralytics was founded to work on particle physics applications, we sleep with one eye open towards expanding knowledge and advancing science. We are always open to new ideas, but we believe we have the right license in place for our work. Isaac Newton once said **\"If I have seen further it is by standing on the shoulders of Giants.\"** I believe that if we allow future works to hide from the world as proprietary code, which other licenses provide provisions for, we are reducing the possible giants that future Isaac Newtons may stand on, and diminishing all of our own futures slightly so.",
    "920185": "The organizers have to make a decision very fast. If they choose to invalidate Yolo / Torchvision then the havoc that had already started would only get worse with dozens of different opinions and endless posts and replies. If on the other hand, we can continue with our work (developing algorithms) and not legal mambo jumbo then the gains would be much higher for the competition.     ",
    "921572": "Hi All,\n\nIt's right time to switch to [AlexeyAB/darknet/YOLOv4](https://github.com/AlexeyAB/darknet) because it's free to use and give you better mAP score. You can see my training result done with 416x416 image resolution-\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1158131%2F45913eb448ceb8bd9a2691443bfb780b%2Fwheat_map.JPG?generation=1594295297209659&amp;alt=media)\n\nAnyone can perform better with bigger resolution image if you have more GPU RAM.\n\nSee it's license here- [https://github.com/AlexeyAB/darknet/blob/master/LICENSE](https://github.com/AlexeyAB/darknet/blob/master/LICENSE)\n\nHoping to see more top scorer using AlexeyAB/darknet's YOLOv4 :)",
    "922158": "As far as I understood, if I only use https://github.com/rwightman/efficientdet-pytorch as my main model without modifying the source code, I am good to go?",
    "919525": "I have a question... Could we use efficientDet?",
    "924865": "Does that mean that i can't even gain medal for the solution that uses yolo v5? Or are these restrictions only applicable to solutions that receive money?",
    "919272": "I am not sure that we cannot use Torchvision (BSD-3). The only difference between BSD-3 and MIT is the patent usage restriction of BSD. MIT does not grant any usage neither. \n\n**From BSD-3**\n&gt; Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nI think in every case if you want to use a patent/trademark (for any purpose) you'd need written permission from the copyright holder. Even if MIT does not restrict specifically.\n\nSo if we don't promote the final solution like: \"Use this solution, build on Torchvision, Facebook's awesome library\", I think we are good to go.\n",
    "919913": "Importing or using a software BSD licence does not invalidate your solution because it is not a copyleft licence. LGPL is also authorized if you only import it. Only GPL-v3 is an issue for this competition as it is not clear if your winning solution can stay MIT or not, except if you are only importing the library and not modifying",
    "926270": "ss",
    "932221": "It seems that CenterNet is \"safe\": https://github.com/xingyizhou/CenterNet/blob/master/NOTICE\nDo you think this is the case given the NOTICE? 👀 ",
    "923136": "Is this an image processing competition?",
    "920896": "Then how about Apache 2.0 license?\n\n",
    "920292": "",
    "923001": "Thank you "
  }
}