Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenCV社区洞察 #9

Open
hipudding opened this issue Aug 31, 2023 · 0 comments
Open

OpenCV社区洞察 #9

hipudding opened this issue Aug 31, 2023 · 0 comments
Labels
Ascend Something isn't working publish New feature or request

Comments

@hipudding
Copy link

hipudding commented Aug 31, 2023

OpenCV背景

OpenCV是1998年在Intel公司内的CVL(计算机视觉库)项目,由Gary Bradski发起,并由Vadim Pisarevsky担任技术主管,于1999年开源,2000年首次公开发布。2008年OpenCV的核心成员加入Willow GarageItseez公司继续开发。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

合作联系方式:[email protected](美国),[email protected] (中国)

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项目。可联系中国团队([email protected])洽谈。其中提到了在不同硬件平台上的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提供了许多在线课程(收费),完成学习后可以获得毕业证书以及优秀证书,针对企业和组织也提供了培训计划。

昇腾接入方式

贡献开源方式

  1. HAL:OpenCV在core,imgproc,feature2d这三个模块都提供了HAL机制,通过include hal_replacement.hpp替换相关宏定义,决定真正的执行后端。
  2. 命名空间:使用独立模块,实现与cv相同的函数接口。使用命名空间的方式进行调用。

两种接入方式比较

比较项 HAL 命名空间
实现成本 低,进需要实现定义好的函数接口即可,不涉及Matrix对象,入参出参均为常见数据类型。 较高,需要自定义实现NPU上的Mat结构,代码生成等相关工作。
用户使用成本 对用户完全透明,无缝替换。 用户需要替换函数调用接口,有可能涉及Mat对象转换NPU Mat对象操作。
性能 每个算子执行前后均涉及内存数据搬迁,无法异步执行,效率低。 计算过程中算子无需搬迁,可使用异步执行,效率高。
现有实现 carotene,Nvdia实现的SIMD加速库。 CUDA加速。
@Yikun Yikun added Ascend Something isn't working publish New feature or request labels Aug 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ascend Something isn't working publish New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants