计算机视觉库OpenCV即将迎来 20 周年,其重要版本 OpenCV 5 也发布在即。OpenCV 官方宣布,随着此版本的推行,OpenCV 的开源许可协议将从 3-clause BSD变更为 Apache 2。
自项目发布之初,OpenCV 就一直使用较为宽松的 BSD 协议。然而,BSD 协议已很难满足快速发展的计算机视觉领域,尤其因为该协议不涉及专利,而使用该协议的代码很有可能包含一些专利算法的实现。根据 OpenCV 的介绍,“从传统的视觉算法到深度学习拓扑网络以及两者的混合,越来越多的算法申请了专利”。但在 BSD 条款下,专利用户的权利难以得到保障。
此前的报道有提到过,为了避免这个问题,OpenCV 选择不接收有专利的算法。这样做虽然保障了安全性,但也让一些优秀算法无法进入 OpenCV。
经过考量,OpenCV 团队发现 Apache 2 是最为有效的解决方案。因为 “Apache 2 比 BSD 协议更新,提供了与 BSD 许可相同的免费使用特性,还包含有关专利的使用条款”。关于专利,Apache 2 中有两项条款做了大致说明:
如果个人或实体在 Apache 2 协议下提供代码,由于包含的专利被授予了一个隐含许可,则用户不能因违反该实体在该代码中的专利或从该代码派生的作品中的专利而被起诉。
如果个人或实体(A)决定起诉某人或某个实体(B),被起诉的(B)创建了一个由(A)的专利所涵盖的上述(1)中代码派生的作品,那么(A)将失去他们所有的 Apache 2 专利诉讼保护,从而可能使他们面临其他方面的法律攻击。
OpenCV 表示,虽然这种专利保护不是绝对的,但Apache 2 在这方面目前是最先进的,因此决定进行协议变更。
迁移将从 OpenCV 4.4 开始,考虑到原有许可和原有版权,该版本会在同一个仓库中复制分支。仍旧需要使用 BSD 许可证的用户,可以继续使用 OpenCV 2.x、OpenCV 3.x 和 OpenCV 4.x,以及最新的 OpenCV 4.4。
从 OpenCV pre-5.0(将在新创建的分支中开发)和 OpenCV pre-4.5(“master”分支)开始,许可证将正式更改为 Apache 2。所有新功能的贡献者都必须同意将他们的代码在 Apache 2 许可证下授权。
此次协议变更,对于 OpenCV 用户来说,并无太大变化,主要是需要增加针对专利诉讼的保护措施。Apache 2 许可下的 OpenCV 仍然可以自由地用于商业和非商业项目。