-
Notifications
You must be signed in to change notification settings - Fork 2
Description
OpenCV背景
OpenCV是1998年在Intel公司内的CVL(计算机视觉库)项目,由Gary Bradski发起,并由Vadim Pisarevsky担任技术主管,于1999年开源,2000年首次公开发布。2008年OpenCV的核心成员加入Willow Garage和Itseez公司继续开发。Itseez公司在2016年被Intel收购,核心开发团队重回Intel。
目前主要由Intel公司赞助OpenCV核心开发团队,并且很多OpenCV的开发者是Intel的雇员。这是一个由Intel公司主导,OpenCV.org非盈利基金会运营的开源项目。2019年以来,核心开发团队由Intel,OpenCV中国团队和xperience.ai公司组成。
版本发布策略
目前每6个月发布一次版本,社区没有明确说明每个版本的生命周期。
4.x版本
| 版本号 | 发布时间 | 时间间隔 |
|---|---|---|
| 4.8.0 | 2023.6.29 | \ |
| 4.7.0 | 2022.12.28 | 6个月 |
| 4.6.0 | 2022.6.7 | 6个月 |
| 4.5.5 | 2021.12.25 | 6个月 |
| 4.5.4 | 2021.10.10 | 2个月 |
| 4.5.3 | 2021.7.6 | 3个月 |
| 4.5.2 | 2021.4.3 | 3个月 |
| 4.5.1 | 2020.12.22 | 4个月 |
| 4.5.0 | 2020.10.12 | 2个月 |
4.0.0版本发布于2018.11.18。
3.x版本
| 版本号 | 发布时间 | 时间间隔 |
|---|---|---|
| 3.4.20 | 2023.6.27(仅打Tag) | \ |
| 3.4.19 | 2022.12.27(仅打Tag) | 6个月 |
| 3.4.18 | 2022.6.5(仅打Tag) | 6个月 |
| 3.4.17 | 2021.12.25(仅打Tag) | 6个月 |
| 3.4.16 | 2021.10.10 | 2个月 |
| 3.4.15 | 2021.7.6 | 3个月 |
| 3.4.14 | 2021.4.2 | 3个月 |
| 3.4.13 | 2020.12.22 | 4个月 |
| 3.4.12 | 2020.10.12 | 2个月 |
3.x版本最新的一个release版本3.4.16发布时间为2021.10,最后一个tag版本3.4.20发布时间为2021.6。
3.0发布于2015.6.24。
2.x版本
2.x版本的最新一个release版本是2.4.13.6,发布于2018.2.26,从发布时间上看,已经不再维护。
社区没有明确说明每个大版本的支持周期
OpenCV基金会
领导团队
-
Gary Bradski (Itseez, Intel)
-
Anna Petrovicheva (Intel)
-
Vladimir Dudnik (Intel)
-
Stefano Fabri (Deeper)
-
Tatiana Khanova (Xperience.ai)
-
Satya Mallick (OpenCV CEO)
-
Vadim Pisarevsky (Huawei)
-
Vincent Rabaud (Google)
-
Edgar Riba (farm-ng)
-
Aleksandr Voron (N/A)
领导团队(leadership meeting),每周三 8:00 am, 太平洋时间,通过Hangouts沟通,会议纪要记录在github的wiki上。
开发团队和贡献者社区
github社区活跃开发者
| 姓名 | 社区职位 | 就职公司 |
|---|---|---|
| Alexander Smorkalov | 活跃commitor,合入PR数量众多 | Xperience.AI |
| Vadim Pisarevsky | OpenCV技术负责人 | 华为 |
| Alexander Alekhin | 活跃开发者,reviewer,commitor | Intel |
| Ilya Lavrenov | 活跃开发者 | Itseez CTO |
| Dmitry Kurtaev | 活跃开发者,reviewer,commitor | YADRO |
| ... ... |
小粒度特性和bug fix可以用issue跟踪,大粒度特性需要有进化提案跟踪。贡献社区需要参考OpenCV社区的贡献指导,所提交的代码需要符合社区编码规范。
领域主席
| 领域 | 姓名 | 单位 |
|---|---|---|
| RISC-V | Mingjie Xing | 中国科学院软件研究所 |
| 人脸识别与分析 | Weihong Deng | 北京邮电大学 |
| 人体检测 | Andrea Pennisi | University of Antwerp |
| 图像增强 | Zhangyang "Atlas" Wang | The University of Texas at Austin |
| 形状检测 | Qi Jia | 大连理工大学 |
| 文档 | Dr. Vikas Ramachandra | Columbia University in the City of New York |
| 辅助技术 | Jagadish Mahendran | Bovi.ag |
官方论坛
社区交流可以在官方论坛上互动。
OpenCV合作伙伴
- Intell, OpenCV 白金会员
- 黄金会员:Microsoft Azure, Google summer of Code, FUTUREWEI, 华为(成为黄金会员方式:捐献十万美金,开发者或者其他资源)
- 发展合作伙伴:KHADAS, ORBBEC, RunPod
合作联系方式:contact@opencv.ai(美国),admin@opencv.org.cn (中国)
OpenCV中国团队
OpenCV中国团队于2019年9月成立, 非营利目的,致力于OpenCV的开发、维护和推广工作。OpenCV中国团队由OpenCV项目发起人Gary Bradski担任团队顾问,OpenCV技术负责人Vadim Pisarevsky领导技术开发,OpenCV中文社区创始人于仕琪博士担任团队负责人。
国内负责人和核心开发成员均为于仕琪博士团队,并且是于仕琪的研究助理,主要社区提交为DNN相关内容。
| 姓名 | 职位 | github id | OpenCV贡献 | 社区职位 | 备注 |
|---|---|---|---|---|---|
| 吴佳 | 研究助理 | kaingwade | 1PR 38 ++ 0-- | 无 | |
| 母自豪 | 研究助理,2018级研究生 | zihaomu | 79PR 42,381 ++ 22,986 -- | reviewer | |
| 冯远滔 | 研究助理,2018级研究生 | fengyuentau | 51PR 7,863 ++ 2,053 -- | reviewer | DNN支持CANN后端作者 |
| 钟万里 | 研究助理 | WanliZhong | 18PR 561 ++ 147 -- | reviewer |
OpenCV欢迎外部公司合作,可由OpenCV中国团队指导,外部公司软件工程师开发,提交patch到OpenCV项目。可联系中国团队(admin@opencv.org.cn)洽谈。其中提到了在不同硬件平台上的OpenCV的加速,契合昇腾使能的诉求。
社区运作方式
- 代码仓库和版本控制:OpenCV代码托管在github上,使用git做版本管理,社区成员在这些仓库中提交代码和PR,有reviewer进行代码review,并最终由commitor合入代码。OpenCV有三个主要代码库:
- opencv:opencv主要代码库,包含关键数据结构和成熟算法,HAL方式在此库以3rd_party的方式贡献
- opencv_contrib:opencv扩展模块库,依赖opencv_core,社区提交要求先进入此库,成熟后合入主库。cuda等算法均在此库,命名空间方式以独立模块方式在此库贡献
- opencv_extra:opencv扩展数据库,存放测试数据,供测试使用
- 讨论和沟通:OpenCV社区使用(邮件列表?未找到)github,论坛进行技术讨论和沟通
- 问题追踪和解决:OpenCV使用github issue进行问题追踪:
- opencv - 库和稳定模块的一般问题,与构建相关的问题
- opencv_contrib -实验模块及其依赖项的问题
- opencv.org - 官方网站的问题
- 文档和教程:最新的版本使用Doxygen来展示文档,其中包含了使用教程
- 社区活动和会议:开发者可以参与谷歌代码之夏活动来提交新的想法和代码,社区领导团队每周三太平洋时间8:00 am在环聊上开展会议,并归档到wiki上。
- 教育和培训:社区联合Bigision提供了许多在线课程(收费),完成学习后可以获得毕业证书以及优秀证书,针对企业和组织也提供了培训计划。
昇腾接入方式
贡献开源方式
- HAL:OpenCV在core,imgproc,feature2d这三个模块都提供了HAL机制,通过include
hal_replacement.hpp替换相关宏定义,决定真正的执行后端。 - 命名空间:使用独立模块,实现与cv相同的函数接口。使用命名空间的方式进行调用。
两种接入方式比较
| 比较项 | HAL | 命名空间 |
|---|---|---|
| 实现成本 | 低,进需要实现定义好的函数接口即可,不涉及Matrix对象,入参出参均为常见数据类型。 | 较高,需要自定义实现NPU上的Mat结构,代码生成等相关工作。 |
| 用户使用成本 | 对用户完全透明,无缝替换。 | 用户需要替换函数调用接口,有可能涉及Mat对象转换NPU Mat对象操作。 |
| 性能 | 每个算子执行前后均涉及内存数据搬迁,无法异步执行,效率低。 | 计算过程中算子无需搬迁,可使用异步执行,效率高。 |
| 现有实现 | carotene,Nvdia实现的SIMD加速库。 | CUDA加速。 |