《程序员》于 2000 年创刊,其理念为技术改变世界,创新驱动中国。2021 年,全新的《程序员》重新起航,以专业的内容为立足点,以音视频、图文专栏等丰富的多媒体形式为载体,立足当下,放眼未来,为读者带来全方位的技术和产业解读。

本文为新《程序员》 第一期内容,继对话 Unix 命名者 Brian W. Kernighan与 Vue.js 创造者尤雨溪之后,我们邀请到 OpenCV 创始人Gary Bradski,揭开谷歌自动驾驶基础机器人汽车Stanley背后不为人知的细节。

相比于OpenCV创始人,Gary Bradski拥有非常多的身份,他是科学家、工程师、创业者和技术内容的作者。在计算机视觉领域,Gary Bradski可谓是一代宗师。他不仅创立了OpenCV这个时下非常流行的计算机视觉和机器学习库,还曾创立CARLA、GTSAM、Open3D、DLG等多个人工智能相关的项目。

2005年,Gary Bradski与谷歌无人驾驶之父Sebastian Thrun组队赢得了DARPA挑战赛冠军,他们大赛中开发的机器人汽车Stanley后来被放在了史密森学会-美国国家博物馆中。这次尝试,成为了谷歌自动驾驶的基础。

在接受《程序员》采访时,Gary再次谈起了这次夺冠背后不为人知的细节,同时也谈及了OpenCV未来的发展,以及他对开源、学习方法、领导方式的理解。

观点速览:

  • 开源商业化:如果我要走商业化的道路,应该可以赚很多钱,但我更关心开源对社会进步的推动。但另一方面,我并不认同开源完全免费,资金支持很重要。
  • 「从基础学习」和「从0学习」:这跟学习的领域有关,你要学习化学,可能需要从0开始。但你要学习计算机,已经有很多基础的东西被开发出来了,比如编译器、线性代数求解器等,如果你要从头去写这些,肯定会写得非常烂。
  • 编程学习:很多人可以在大学里通过计算机科学考试,但却无法成为一个优秀的程序员;今天学术界过度重视科研成果,我认为论文不是为了发而发,而是你真的有东西想发的时候才发。
  • 编程思维:在写程序时,有些人会先对对象进行实例化,然后再运行。这种方法很初级,会造成延时。高级的方法是先运行程序,在需要的时候再去实例化对象。这些技巧是高级程序员才懂得,也是学习机器视觉必须要掌握的。
  • 好领导者:我认为好的领导者应该是实干的,而不是单纯指挥别人。好的领导者也需要具备长远的眼光,能够去激励别人完成工作。
  • 中国技术生态:我认为整个亚洲社会都太重视「学历」和「证书」了,但中国开发者在开源方面做得很好,为开源发展做了很多贡献。

学术价值 VS 商业价值

《程序员》:创建OpenCV的初心是什么?

Gary:当我还在Intel实验室的时候,实验室刚刚成立,希望我们能多发表论文,以奠定实验室的权威性。但以我的个性,我基本上不怎么搭理公司的规定,因为当时计算机已经发展很快了,所以我希望研究一些对整个计算机领域更具价值的方向。我发现计算机视觉需要大量的计算,而大部分实验室都在重复造轮子,有些工作甚至是学校里的研究生就能做的。于是我去了MIT实验室,发现他们自己开发了一些库,实验室内部的人都可以使用。我当时就想,为什么不能把这样的库开放给所有人呢?这就是我创建OpenCV最核心的原因。

第二,如果大家能基于一个通用、公开的基础设施来做开发,就能更清楚这套基础设施的特点和基本原理,从而可以减少很多bug。

第三,我做OpenCV是想加速AI产业的发展,尤其是智能AI(intelligent AI),这是我毕生所愿。我也希望OpenCV可以让计算机视觉从学术价值转变为商业价值。

《程序员》:能否介绍下OpenCV近期的发展与动向?

Gary:目前我主要的工作聚焦在OpenCV基金会上,主要是去拉一些资金。另外,我们在中国(深圳)也建立了团队,这个团队是我个人出资组建的。他们主要负责收集用户的需求,以及收集世界各地基于OpenCV开发的优秀项目。此外,过去我们一直没有特别好的反馈机制,目前我也在这方面做了一些改进,让开发者可以更快地获得反馈。

目前OpenCV已经有了DNN库,我们新增了一些功能,尤其是在深度学习方面,我们还优化了硬件模型,使其可以更好地在更轻量的设备上运行。在深度学习方面,用户可以自己训练模型。我们也为用户提供了一整套针对不同场景的模型,供用户自己训练模型,当然,用户也可以从现有的模型中选择一个适合自己的。

不仅如此,针对机器人的支持我们也做了优化,目前OpenCV可以支持机器人在移动中定位和建模。

《程序员》:未来你对OpenCV还有哪些规划?

Gary:有两个规划。第一,我希望能组建一个开发团队,负责修改bug和对用户的技术支持。同时,我还希望能组建一个会务团队和广告团队,因为我想规划一些新的活动。要组建这些团队需要稳定的收入,比如每年一两百万美元的收入,才能实现。

第二,我们计划做一些培训课程,通过培训的学员可以得到我们的认证。尤其是在一些发展中国家,例如印度和中国,我们希望那些经济条件有限的学员也能拥有学习机会。但这个课程并不是「学术型」的课程,而是更偏重于实践,我们可以保证通过学习的人,其水平能胜任各种产品开发。这种培训也降低了企业的招人门槛。

另外,我还有个想法,你知道FIRST的机器人大赛吗?它是面向高中生的机器人比赛。我想做个跟它不一样的机器人比赛,参与对象既可以是高中生也可以是高校的学生。他们在大赛中聚焦一些更具现实意义的东西,比如让机器人种植食物、修路、维护基础设施、或者在一旁巡逻等等。比赛周期也不限定在一天,而是长期。这样的比赛更具现实性,也更有价值。

《程序员》:在你看来,近年来机器视觉领域有哪些新的发展?

Gary:我觉得很多几何视觉(geometric vision)的东西依然对今天有用,例如SLAM。但AI和深度学习的发展也加速了机器视觉的发展,比如OpenCV目前也有运行深度网络的推理引擎,它可以在很多方面与经典计算机视觉技术结合。以我的经验来看,很多应用,都是深度学习与经典技术结合的产物

学编程,要实践

《程序员》:OpenCV的诞生也启发了一些新的学习思路,你如何看待「从基础学习」(Learn from a baseline)和「从0学习」(learn from zero)这两种学习模式?

Gary:我认为这跟学习的领域有关,你要学习化学,可能需要从0开始学习。但你要学习计算机,已经有很多基础的东西被开发出来了,比如编译器、线性代数求解器等,如果你要从头去写这些,肯定会写得非常烂。另一方面,我也看到很多计算机专业的人连Calibration和Bundle都不知道;很多人可以在大学里通过CS(计算机科学)的考试,但却无法成为一个优秀的程序员。

我写程序时还是用的汇编语言,所以我对计算机的了解也比一般程序员深。但今天开发工具那么多,你即使不了解底层原理,也能做开发。这就像你就算不会造车,也能开车一样。归根结底,到底应该以哪种方式学习,是一个权衡的过程,需要平衡各个因素后才能决定。

但我认为造成这种迷思的原因,也跟今天学术界过度重视科研成果有关,教授和研究者们都去忙着发表论文了。要是他们有更多时间聚焦在开源项目上,他们对一个领域的理解就可以深度与广度兼得。因此,我认为论文不是为了发而发,而是你真的有东西想发的时候才发。

《程序员》:对于想要学习机器视觉的人,你有什么书籍可以推荐吗?

Gary:从来没有哪本书让我真正满足过。我现在基本是在线上学习,线上有很多教程和资料,比如我在线上学习PyTorch。但也会看一些「真正的编程书」(real programming books),我认为在这方面人们学习得还不够,尤其一些高级程序员的编程思维。比如在写程序时,有些人会先对对象进行实例化,然后再运行。这种方法很初级,会造成延时。高级的方法是先运行程序,在需要的时候再去实例化对象。这些技巧是高级程序员才懂得,也是学习机器视觉必须要掌握的。

好领导,要实干

《程序员》:你给自己的Title是首席科学官(Chief Science Officer),它与CTO有什么区别?

Gary:现在,我的工作不仅仅是首席科学官,有时也要行使CEO和CTO的职能。在我看来CEO更多是聚焦于企业管理相关的工作,例如融资、监管、社交等。而CTO更聚焦技术细节,例如选择正确的开发模型等,他要确保所有的想法正确实现。首席科学官则更多是研究最新的技术动向,它与CTO的区别是,它更多聚焦在该做什么,CTO是聚焦在该怎么做。因为CTO的工作需要极度聚焦于细节,但我现在已经不想过多聚焦于细节了,所以我选择了做首席科学官。

《程序员》:在之前的一个采访中,你曾说你是个很好的leader(领导者),你认为好的领导者应该具备怎样的素质?

Gary:这个没有定论,但我认为好的领导者应该是实干的,而不是单纯指挥别人。好的领导者也需要具备长远的眼光,能够去激励别人完成工作。我参加DARPA挑战赛的时候,卡内基·梅隆大学参赛队的leader是Red Whittaker(卡内基·梅隆大学教授,主要研究领域为机器人),他曾在海军陆战队服役,他的领导风格就是指挥型的:你做这个、你做那个,非常颐指气使。而我所在的队伍是Sebastian Thrun领导的,他的领导风格是尽量与我保持同步,因为我很努力,他甚至会害怕让我失望。在这样的团队中,会很受启发,所以我更欣赏这种领导风格。

《程序员》:既然说到了DARPA挑战赛,还有什么有趣的幕后故事可以跟我们分享吗?

Gary:当时我还在Intel实验室,我听说Sebastian Thrun要来斯坦福休假,就联系了他,问他愿不愿意以兼职的形式来我们实验室做点事情。他很爽快地答应了。后来他私下跟我说他打算到斯坦福工作,我就问他能否跟着他干,就当是收个非正式的研究生,他也很爽快地答应了。后来他跟我说他要参加DARPA挑战赛,我当时已经听说Red Whittaker也要参加,所以就很想在大赛中战胜他,证明Sebastian Thrun的领导方式比他好。这是我当时最主要的目标。

此外,我在计算机视觉方面有一些积累,也对我们的作品有很大帮助。比如,Sebastian希望通过激光来实现汽车的视觉感知,但激光只能对空间深度进行感知,效果不太理想。后来我们又尝试使用普通的摄像头,但这些摄像头很容易坏,也容易进灰尘。最后,我们使用了单目摄像头(monocamera),它能将激光对空间的感知与机器视觉结合起来,让汽车「看得」更远。我当时就预感到我们可能会拿冠军,结果果真如此。

虽然当时自动驾驶已经有人能实现了,但那次比赛证明了自动驾驶技术具有普适性,也成为了今天自动驾驶行业的开端。

One More Thing

《程序员》:你的身份很多,也在很多企业的管理名单中,你是如何运用时间的?

Gary:我并不是一个很会运营时间的人,我同时做了很多事。我是很多公司的管理成员,但有些时候是别人邀请我加入,帮他们站台以获得融资。在这种情况下我不做什么实际的事,只是帮他们站站台就好。另一些公司则相反,需要做实事。在时间管理方面,我经常告诉别人要聚焦,把一件事情做好,自己却常常做不到。但我还是会放下一部分事情,比如我在LinkedIn上有很多关注者,我就无法一一回复他们的信息。

《程序员》:近年来开源软件商业化是很热的话题,你怎么看?

Gary:我做开源软件库20年了,刚开始是凭着一腔热情。我在很多岗位都待过,也参加过很多活动。虽然我做得很好,但当时并没有商业化。其实当时也有一些商业化很成功的开源公司,如红帽,如果我要走商业化的道路,应该可以赚很多钱,但我更关心开源对社会进步的推动。

但另一方面,我并不认同开源完全免费。最初做OpenCV,只有我和另一位小伙伴,没有任何收入,运营起来非常艰难。当时我就想,要是用户每次使用能付5美分,我们就能组建一个专门的会务团队和24小时的技术支持。因此,现在我认为资金支持很重要。

我们在深圳大学建立了一个OpenCV的小团队,也在中国和全世界筹集资金。我们有很多计划,比如搞个新的OpenCV大会等,而这一切都需要资金。

《程序员》:最后,对于中国的开发者或技术生态圈,你有什么想说的?

Gary:我与很多中国开发者合作过,我认为整个亚洲社会都太重视「学历」和「证书」了。我有个合伙人,他连高中都没上过,这样的人在亚洲社会显然没有什么竞争力。但他真的很聪明,做事很有一套,也很有想法。如果让我在清华、MIT(麻省理工大学)的毕业生和他之间做个选择,我可能会选择他。

但我认为中国开发者在开源方面做得很好,为开源发展做了很多贡献。最后,如果你是个创业者,你需要在情绪管理方面足够成熟,也需要经常自我反思。开发者和有学术背景的创业者经常容易干太多事,因此要学会取舍。

要知道,有时候少就是多。

从 Unix 开发者 Brian W. Kernighan,到 OpenCV 创始人 Gary Bradski,再到 Vue.js 作者尤雨溪……新《程序员》第一期以「开发者的黄金十年」为主题,与多位国内外知名的技术领袖和新锐代表进行了深度对话,希望为中国开发者打开新时代的「机遇之窗」。

除了技术引领,我们也希望透过技术对行业进行深入洞察。因此,新《程序员》第一期也邀请到了来自快手、滴滴、贝壳找房、作业帮等知名企业的技术负责人,用案例实践为读者阐述直播、出行、居住、在线教育等多个行业变革背后的技术架构和技术引擎。

《新程序员·开发者黄金十年》正式发布

由近百位专家参与、经数月打磨后,《新程序员001:开发者黄金十年》面向所有开发者正式官宣发布!不仅包含了开发者们一如既往期待与喜爱的全球技术大师深邃思考、优秀开发者技术创造等深度内容,更以数字多媒体的新形态让开发者们随时随地阅读、观看,带来视频图文的多重体验。

用一位开发者和我们说的话来表达:“当年的那个《程序员》回来了!”

当年的那个《程序员》不仅回来了,而且洋溢着新的活力。

对话OpenCV创始人Gary:“亚洲社会都太重视学历和证书”相关推荐

  1. A16Z 合伙人对话Coinlist创始人:元宇宙的核心是所有权,Meta最终会过时

    "可拥有元宇宙中物品的人只能是巨头公司,这是一个奇怪的想法,这基本上是说只有扎克伯格被允许拥有元宇宙,只有他可以拥有整个元宇宙,为什么我们每个人不能在元宇宙中都拥有自己的房间.自己的财产?因 ...

  2. 对话YouTube创始人陈士骏:创新向中国转移

    对话YouTube创始人陈士骏:创新向中国转移 2011-11-14 09:55 | 7072次阅读 | 来源:21世纪网 [已有13条评论]发表评论 关键词:YouTube,陈士骏 | 作者:侯继勇 ...

  3. 【独家】对话Trinity创始人李一灵:智能经济的基石

    点击上方 "蓝色字" 可关注我们! 记者:Clover 提到Trinity,大部分人首先想到的可能就是黑客帝国这部经典科幻片了.影片中Trinity的身份以及影片的内容想必大家也都 ...

  4. 王峰两小时闭门对话Polkadot创始人Gavin Wood实录,带你了解Web 3.0、跨链机制、程序设计及“一键发链”那些事...

    这是「王峰十问」继本月初对话MakerDAO创始人Rune谈论DeFi之后,又一场与国际知名区块链项目的话题碰撞. 本文旨在传递更多市场信息,不构成任何投资建议. 文 | 王峰十问 出品 | 火星财经 ...

  5. 操盘手与散户老妈的对话 看完后所有人都沉默了

    俺妈让俺替她看看她买的A股,俺一看吓了一跳--赚钱的那几只股票每只都只赚了几百块,而赔钱的股票中有好几只都赔了上千块,还有一只赔了五千多! 俺问:"妈,中国股市那么火,您怎么还赔钱呢?&qu ...

  6. 【业界思考】Sam Altman 山姆奥特曼:Idea Generation 创意产生——优秀的创始人对任何事情都有很多想法

    Sam Altman 山姆奥特曼:Idea Generation 创意产生--优秀的创始人对任何事情都有很多想法 文章目录 Sam Altman 山姆奥特曼:Idea Generation 创意产生- ...

  7. 王者荣耀苹果微信哪个服务器最强,王者荣耀:QQ区和微信区玩家们最大区别,每一条都太“真实”了...

    原标题: 王者荣耀:QQ区和微信区玩家们最大区别,每一条都太"真实"了 王者荣耀上线了四年多 了,很多的玩家也都尝试过去不同区开小号玩玩,不得不说,王者荣耀系统分区不互通这一点真害 ...

  8. 为什么大多数公司都不重视技术?

    前言 今年年初来了一家国内某电器大厂,本来技术面试的时候提供的offer说的是架构组岗位,主要是搭建公司平台的基础设施,不会接触业务或者离业务很远,刚开始以为很有技术含量,公司又是大厂,offer就接 ...

  9. 做程序员一般都需要什么学历?大厂招不招低学历?你想知道的都在这里了

    我做编程已经有几年了,能不能做程序员和学历没有太直接的关系,但不意味着学习编程什么门槛也没有. 如果高中以下学历学习编程会相当相当费劲,毕竟和别的行业相比编程的门槛还是比较高,有多少人觉得对编程感兴趣 ...

  10. 这个社会硕士,本科学历够用么。怎么还有那么多人想读博士?

    编者荐语 拥有博士学位或博士学位同等学力,意味着一个人有能力由学习阶段进入学术阶段.具备出原创理论成果的能力或学力是博士学位的核心内涵,也是拥有博士学位的人的最本质特征. 整理自丨知乎 链接丨http ...

最新文章

  1. python的用途实例-三个实例带你了解生成器的作用
  2. (视频) 基于HTML5的服务器远程访问工具
  3. 【JavaSE02】Java基本语法-注意点
  4. C# 读取硬盘信息类
  5. mysql哨兵机制_Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了
  6. 如何分析个股基本面_个股分析报告要分析哪些方面?股票基本面分析实例
  7. 【解决】Windows Mobile 6 Professional SDK Refresh.msi 在xp上一直卡死
  8. 改善代码质量的编程规范
  9. 人脸识别精度提升 | 基于Transformer的人脸识别(附源码)
  10. jquery API参考手册
  11. 世界地图html效果,html5 css3响应式世界地图代码
  12. python合并单元格的快捷键是什么_【答疑】wps word表格如何合并单元格,快捷键是什么? - 羽兔网问答...
  13. 谷歌邮箱lmap服务器填什么_解决Gmail的imap收发邮件无法连接服务器的问题
  14. android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录
  15. 阿里云国内节点centos7.2安装k8sv1.12.3
  16. 阿里又上美国“售假黑名单” 是被故意抹黑了吗
  17. 腾讯区块链正式落地法律场景,携手慧狮构建“司法联盟链”
  18. 2.1.2 Android刘海屏适配
  19. RHEL下编译wireshark源码
  20. First name, Middle name, Last name

热门文章

  1. Cisco 3850 Mgmt VRF Configuration
  2. Oracle 数据库修复,IBM DB2 数据库修复,MY SQL 数据库修复,SQL Server 数据 库修复,Sybase 数据库,Foxpro 数据库,Access 数据库,Informi
  3. 命令行窗口-隐藏黑窗口
  4. 群发邮件软件和邮件群发工具哪个好?如何群发邮件不进入垃圾箱
  5. layui爬坑之路——input value属性绑定函数返回值
  6. 基于python的安全即时通讯系统
  7. 可部署于windows和Linux的即时通讯系统
  8. 一篇文章带你入门python基础开发
  9. 漆翔宇计算机学院浙江大学,浙江大学20172018学年大学生学科竞赛获奖清单.pdf
  10. 纯前端实现页面的回到顶部和回到底部功能