成为计算机视觉工程师的第一个月,我都学会了什么?
作者 | Richmond Alake
译者 | 弯月
题图 | 自视觉中国
出品 | AI科技大本营(ID:rgznai100)
我写这篇文章的目的是为了向那些没有接触过机器学习行业的人们介绍一下我作为计算机视觉工程师第一个月以来的体验,希望这些内部信息能够让你们在做职业选择时有所启发。
但是请记住,本文只是我的个人体验,并不代表整个行业。
我将在本文中探讨以下内容:
在这一个月里我的内心充满了恐惧
视觉工程师的研究要求
为什么研究很重要
哪些技术有助于以机器学习为中心的工作取得成功
恐惧与责任
老实说,我在惴惴不安中度过了第一个月。这并不是我的第一份正式工作,在成为机器学习/计算机视觉工程师之前,我曾做过三年半的Web开发。
但这次的感觉有很大的不同。我感到恐惧的原因有以下几种:
我负责与公司产品相关的所有计算机视觉工作
我们团队非常信任我的各项决定
恐惧不一定是一件坏事,我用恐惧武装自己,迫使自己将工作做到尽善尽美,并在需要时给予100%的回报。
研究
作为公司的首位以机器学习为中心的员工,大家希望我提出最恰当的工作流程。
其中包括许多研究工作。
作为一名机器学习工程师,你必须理解各个发表论文中提及的最新技术的关键细节。
实现技巧对工程师至关重要,但是你必须成为该领域的专家,才能解释清楚机器学习模型的工作原理,或为什么选择其中一种方法而舍弃其他方法。
在这一个月里,我阅读了大量有关标准计算机视觉问题解决方案的研究论文,例如姿态估计、语义分割、对象检测等等。
技术
我们公司主要的产品以iOS移动应用的形式呈现。
而我没有接触过开发iOS移动应用的经验,因此在这一个月里我不得不熟悉Xcode(开发移动应用程序的IDE)以及Swift(苹果的移动开发编程语言)。
很多人可能不太了解,其实一名优秀的机器学习工程师也必须掌握软件开发的技术。
机器学习工程师的工作不仅限于Jupyter Notebook和Python脚本,而且还需要使用新的编程语言来构建网站或移动应用,这是一个非常高的要求。
每天,我都需要交替使用Swift、Python和JavaScript来完成各种不同的任务。
其中的关键并不是要掌握大量编程语言,而是需要具备掌握大多数编程语言基础知识的能力。
学习面向对象编程(OOP)是一个不错的起点。
通常,从一种编程语言中学到的知识在其他语言中也通用。
硬件
在我的个人项目中,一般我会使用Nividia Geforce GTX 1650来训练大多数机器学习模型。但这个GPU远远比不上训练最新模型所需的硬件规范。
在这一个月里,我的任务是总结出公司应该购买的GPU工作站技术规范。
为了选择合适的硬件组件,我需要预见未来几个月甚至几年我将要训练的模型类型。
为了做出正确的决定,我不得不做大量的研究工作,搞清楚最新的研究论文采用了哪些硬件规格来训练模型。
同样,我还需要研究能够支持稳定工作站的其他硬件组件。
我考虑了以下各个方面:
冷却系统
主板和处理器
电源容量
GPU插槽
以及其他……
文档记录
软件的文档记录过程冗长、乏味且无聊。但是将商定的技术方法全部记录下来至关重要。
我们必须记录采取的每项决定和方法,以方便告知团队成员和后来的新人。
在第一个月里,我在记录文档上了大约12个小时,虽然很没意思,但非常有必要。
我记录的内容包括:
记录推进机器学习项目时采用的流程
研究论文的摘要,方便大家快速消化重要资料
关键项目以及软件解决方案的实现方法
GPU工作站硬件规格比较
代码内文档,说明实现代码的原因和逻辑
各个岗位都有很多需要记录的领域。每周都应该花费至少2个小时来专门处理文档。
喜欢这份工作
作为公司正式的计算机视觉工程师,我在第一个月里学习了很多有关如何应用机器学习技术的见解。
我发现,许多人可能不知道机器学习模型并不是最终产品。机器学习本身只是软件工程中的一个环节;只有将我们的研究成果嵌入到软件系统中,才能以创新的方式执行任务。
展望未来,第一个月的工作让我意识到我很喜欢机器学习能够带来的创造性输出。
朝着创新的目标努力可以让平凡的模型实现、调试以及训练任务少些无聊。
总结
在第一个月中,我实现了以下目标:
为计算机视觉的实现过程设定标准
学习一种新的编程语言
提供用于构建公司GPU工作站的硬件规范
学习计算机视觉技术的实现技术,例如姿态估计、手势识别和语义分割等
学习TensorFlow和TensorFlow Lite
在接下来的几个月中,我将探索并实现更多最新的解决方案。希望在三个月后,我能在这个岗位上更上一层楼。
原文链接:
https://towardsdatascience.com/my-first-month-as-a-computer-vision-engineer-5813574d394a
推荐阅读
真没想到,Python 还能实现 5 毛特效
作词家下岗系列:教你用 AI 做一个写歌词的软件
AI修复100年前晚清影像喜提热搜,这两大算法立功了
阿里云自研数据仓库 AnalyticDB 再捧 TPC 全球冠军
调查了 17,000 多位程序员,当前的云原生开发现状究竟如何?
CSW:惊天巨骗 or 比特币“图腾”中本聪?
从 0 到 70%:Chrome 上位揭秘!
你点的每个“在看”,我都认真当成了AI
相关文章:

天然良方对付小病
打嗝、口臭、消化不良……我们的身体时常会受到一些小毛病的困扰。20位来自美国各大医院的权威医生在美国《预防》杂志网站上发表文章,向读者介绍了一些纯天然的便捷方法,来快速应对这些小病。 生姜止吐。先用热水冲泡生姜片,过滤后把姜汤倒在…

Spring中使用Schedule调度
在spring中两种办法使用调度,以下使用是在spring4.0中。 一、基于application配置文件,配置入下: 1 <bean id"jobDetail" class"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">…

DNS域名解析优化之tinydns/djbdns篇——测试篇
要开始还债了。 今天整理了一下一套bind9的配置,把记录都清理了一番。想了想,顺带安装了个geoipdns来做性能测试。整理记录的时候用bind-to-tinydns转换了一下记录格式。这些过程以后再说。 NS服务器是同一台Dell PowerEdge 2950。先启动的geoipdns&…
使用Combox控件的一个问题
Combox控件是MFC里边一个比较常用的控件,基本可以看成是一个文本框和一个下拉列表组合而成。但是我在用的时候碰到了一个问题,当我用AddString()函数加了4,5个字符串后,运行之后点击下拉箭头并没有下拉框的显示,或者说显示不出来。…
深度学习基础总结,无一句废话(附完整思维导图)
作者 | Python与算法社区责编 | Carol封图 | CSDN 付费下载于自视觉中国线型回归预测气温、预测销售额、预测商品价格等模型:权重,偏差模型训练:feed 数据学习模型参数值,使得误差尽可能小训练集、测试集、验证集、样本、标签、特…

unity, monoDevelop ide 代码提示不起作用的解决方法
monoDevelop ide 代码提示不起作用,可能是因为ide里索引了一些不存在的文件,检查一下solution窗口里是否有文件变红,如下图中springControlEx.cs。将变红的文件remove掉,然后去unity菜单中点File->Save Project。
DeeCamp 2020 赛题大公开!快来看你想选哪个
DeeCamp 2020 开放性竞赛赛题来啦,快来看看有没有你感兴趣的题目!加入DeeCamp2020,你将和来自全球的优秀小伙伴组队挑战真实世界的难题,还能冲刺大奖。五大赛道,14个新颖赛题,总有一款适合你!De…
Combox控件下拉选择不同值触发的动作响应
项目中需要根据combox控件下拉列表选择不同的值,然后能触发相应的动作。比如我的项目中,通过combox空间的下拉列表选择不同的C盘,D盘,E盘,F盘,然后能在list控件中把各个盘符的文件目录列出来。 那么触发…

不用se11创建表结构,作smartforms
Call form时不用传内表,切记。 1。在Global Definitions->types页面里输: types:begin of wa_test, matnr like mara-marnt, maktx like makt-maktx, end of wa_test. types:it_test type wa_test occurs 1. 2. 在Global Definitions->Global Data…

linux入门(三)常见Linux指令及其用法
一、上回说到说到Linux的shell指令运行的原理,这回我们来看看Linux中shell的权限管理,所谓的“权限”是指某一类人做某一件事的权利。在shell中这一类人被分为了三种:(1)文件拥有者user(2)文件拥…

设置Enter键为默认键
进行MFC编程中,很多时候需要设置快捷键,比如我的项目中,播放器的实现,需要快进、快退、播放、暂停等,除了具体的按钮操作外应该还能通过键盘的快捷键来进行操作。 关于如何设置一个菜单的快捷键或是一个按钮的快捷键&…
MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
来源 | 微软研究院AI头条(ID: MSRAsia)编者按:目标检测与目标跟踪这两个任务有着密切的联系。针对目标跟踪任务,微软亚洲研究院提出了一种通过目标检测技术来解决的新视角,采用简洁、统一而高效的“目标检测小样本学习…

从哲学角度分析,框架的[无用之用]效果
小树的用途少,人们不理睬它、不砍伐它、才有机会长成有用之巨木,此为「无用」之用﹗老子说过:「人皆知有用之用,而莫知无用之用」,这与框架观念是一致的。 数千年前,老子提出了这「有、无」哲理,…

xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原
1、Full backuop,一定要先做: innobackupex --defaults-file/etc/my.cnf --userroot --passwordevlink /home/mysql/backup/2、Incremental backup,可以每隔一小时或者三小时做一次: innobackupex --defaults-file/etc/my.cnf --userroot --passw…

MFC按钮添加提示文字
转载自: http://blog.163.com/guo_linda/blog/static/12377305720101122105030162/ MFC里这个类叫做CToolTipCtrl,具体用法很简单。 1、在类头文件中声明CToolTipCtrl的类对象m_ctrlTT。 2、在初始化函数OnInitDialog()中设置m_ctrlTT。 EnableTool…
Go远超Python,机器学习人才极度稀缺,全球16,655位程序员告诉你这些真相
作者 | 唐小引题图 | HackerEarth 报告出品 | AI科技大本营(ID:rgznai100)Go 正变得越来越受开发者欢迎。几年前,滴滴的工程师曾告诉我,在滴滴 Go 已经得到了非常广泛的应用,去年,在腾讯内部使用…

WinCE中命令行工具Viewbin简介(查看nk.bin中包含的文件)
Viewbin是微软提供的一个命令行工具,在WinCE5.0和WinCE6.0中,可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小,运行的起始地址等。还能查看到里…

元素多层嵌套,JS获取问题
如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧。 HTML: <!DOCTYPE html> <html lang"en"> …
MFC静态文本控件设置超链接
有时我们需要在窗口上设置一个超链接,比如在Aboutdlg上设置“我的博客”这样的超链接.具体的设置方法如下。 1、首先我们在窗体上添加一个Static文本控件,修改Caption属性,设置成你想要的超链接标题,比如“更多内容欢迎访问小梦的…
百度云「升级战」:王海峰站台,新架构全面AI化,AI和知识中台登场
5月18日,"ABC SUMMIT 2020百度夏季云智峰会"在线上召开。刚刚经历了人事变动的百度云迎来重磅升级,大会以"百度智能云加速产业智能化"为主题,百度智能云全新战略、新架构首次亮相,AI中台、知识中台两大创新平…

Mysql实现非程序控制读写分离
五一假期,有个博友给我发邮件,说我的这篇blog:http://bobwu.blog.51cto.com/2918362/537077 只能通过程序员在程序中实现读写分离,咨询能否实现程序员无察觉的读写分析,呵呵,我明白意思。回答是肯定的&…
MFC系统托盘的实现
通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出&a…
王海峰发布百度智能云最新架构,推出AI中台和知识中台
5月18日,在百度云智峰会上,百度CTO王海峰发布最新百度智能云架构规划。首先,他分享了百度利用AI、大数据、云计算等技术帮助疫情防控、复工复产的成果:AI多人测温1周检测2700万人次,时空大数据记录人流迁徙24亿人次&am…

Linux虚拟内存优化的方法
首先查看虚拟内存的使用情况,使用命令 # free 查看当前系统的内存使用情况。 一般来说,linux的物理内存几乎是完全used。这个和windows非常大的区别,它的内存管理机制将系统内存充分利用,并非windows无论多大的内存都要…

statpot:使用mongo+bootstrap+highcharts做统计报表
最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度。客户端会调用一个接口来记录接口的访问情况,我的需求就需要分析这些数据,然后做出个统计报表。 需求实现 最初的时候想着每天把这些接口访问情况的信息存储到mysql中&…
磁盘文件目录罗列和list控件的使用
开发类似ftp客户端的这种软件,需要对每个磁盘下的文件目录进行罗列并显示。方便文件的上传、下载等。就如同我们打开每个磁盘所显示的那样,罗列了你这个磁盘目录下的所有文件夹和文件。 那我们在自己的程序中如何做到这样呢? 主要用到两个…
潘石屹Python考试成绩99分,网友:还有一分怕你骄傲
整理 | 伍杏玲题图 | 视觉中国来源 | 程序人生(ID:coder_life)5月16日凌晨00:21分,地产大亨潘石屹在微博晒出自己的Python编程一级考试成绩,99分,厉害!像每个学生时期的我们,还会“检…

让Chrome成为你的pdf阅读器
我在Mac OS上使用过的浏览器有Chrome、Safari和Firefox,由于做的产品要支持多浏览器,所以这几种浏览器都会用到,Chrome的使用频率更高一些。 之前想通过浏览器在线阅读PDF时,一般都会提示进行下载,装了类似iGetter或Fo…

l5如何通过路由走api版本回退查找设置
l5如何通过路由走api版本回退查找设置 具体需求 当前遇到的问题是使用laravel写接口,但是接口是有版本号的,我们把版本号放在url中,比如: http://yejianfeng.com/api/user/info/?uid1 http://yejianfeng.com/api1.1/user/info/?…

jspf插件框架
简介:jspf (Java Simple Plugin Framework) 是一个插件框架,用于减少小型项目的的开发时间,增加代码的可维护性。他完全隐藏了组件的详细实现,只用到他们的接口。加载组件所需要的代码也很少,便于编写。jspf框架完全基…