这个项目现在已经死掉了,这些经历还是有些价值,这里记录下来,供大家批评。
背景
首先回顾一下这个项目的背景。2009年,国家连续出台了多个关于网络扫黄打非的政策和文件,也对一些管理不力的电信机房进行曝光,限时整治。
2009年底的曝光中,当时我们的客户单位某地电信,以一名之差没有被曝光(这个情况是当时他们自己讲的,具体内情不是很了解)。所以,2010年初,当时他们的主管领导找到我们公司,希望我们能给开发一套不良信息监测的系统。
在老总和当时的技术总监的主导下,2010年3月份,这个项目就这么立项了。
当时的我还是进入公司后不久,(我是2009年10月份进入的公司),职位是图像算法工程师,这个项目之前主要在做人脸识别的一些算法研究,以及辅助语义网络项目完成一套图像算法语义词典。
项目初始阶段
起始时项目的分工情况我已不太了解了(我当时刚入公司,并且还是远程做,主要负责图像方面的工作,公司的很多讨论我都没有参与),大体上是分成网络、语义和图像三个部分来做这个事情,网络部负责抓包组包,将还原出的的网页或图片信息分别交给文字检测(语义)和图像检测两部分进行处理,处理后将结果返回给网络部,网络部通过网页的形式展现结果,并提供相应的操作接口。
我很自然的被分配到图像组进行基于内容的不良图片检测的研究。开始时图像组是由老总亲自带,具体研发过程我就不细说了,反正到了4月份的时候,推出了一个window版本的demo。检测结果当时还是比较粗糙的,大约过检(false positive)20%,不良检测率在60%~70%吧,因为当时的训练和测试集都整理的比较少,也没有经过系统的测试。
4月份有一次开会,老总说是要选择一名项目经理负责图像组的研发,不过选择的结果不是任命,竟然是大家一起推选。他先提名了一名资格最老的女员工M,但M是又推托,她又推荐了远程工作的X,X又推到我……当时很是滑稽,我当时也搞不懂为什么是这样(后来虽然有些懂了,但这里还是不要说了吧),后来我竟然跟X是平票,两个都是远程工作的……再后来,远在加拿大的副总AC又投了我一票,并且说要我多负点责任云云。对于责任我确是不容推托的,年终总结里我也曾表过要以主人翁的姿态来工作,所以,当时虽然对远程进行团队管理研发型团队没有什么信心,对员工这种“推”选时的心态很是不解,还是一口应了下来。后来自己担心的这两点都有让自己尝到了苦头。
首先,这是一个研发型的团队,主要是围绕新算法新模型打转,我是一点管理经验都没有。我在以前的公司做企业信息化,倒是带过一个四五个人的团队,但是纯粹的软件开发的话,工作量比较容易量化,进度也容易控制。而研发型的团队,从提出方案思路,到最终形成可以交付使用的系统,中间的不确定性因素太多。
对于一个新的算法的确立,一般的过程是:每遇到一个问题,(1)大家分头调研,查看最新论文,然后汇总,确定采用哪几个方法,(2)然后再实现,进行实验对比。(3)确定最合适的算法,然后进行封装,提交使用。
来看看这中间的不确定性和管理的难度主要集中在哪里:
(1) 我沿用以前的方式来做调查,调查的时候,大家一人分一个方向去调研,看相关论文。但这样的弊病是太过分散,大家各自忙各自的,讨论的时候彼此的细节都不太了解。返回来的结果也经常是:没发现什么好的思路,我调查的那个方法好像不怎么好……往往听到这里我脑子里就炸了
(2) 实现的时候,过程拖的太长,或者因为实现的过程中掺进了人为错误:我的算法还有点问题,我的结果不太好。还有一个比较大的问题是试验数据的整理。很多在标准测试库上跑的很好的算法,到实际图片上会大大降低精度,很多算法都经不起验证。所以,要想测的好,就得针对自己的实际图片进行训练或测试,而样本整理要不失去普遍性就得注意数据来源以及人工筛选的尺度等等。这个在管理上也是比较难控制的。
(3) 封装是风险最小的一个环节,但是往往也会有很多意外出现,比如,在matlab中测试好好的算法,由于对细节的理解不同,用c+改写出来,也会遇到这样那样的问题。
对于人员方向过于分散的问题,我后来采用的办法是尽量集中几个比较可靠的算法,让两个以上的人去负责一个方向,这样一是可以让成员在研究的时候可以相互讨论,相互促进,实验的时候可以彼此验证,二是缩小了范围后,大家可以有精力去了解对方算法的一些情况看,在小组讨论的时候可以提出有用的意见。研究后要整理相关的文档进行总结。
对于样本采集当时是让网络部的人员为我们写爬虫爬了几个网站,然后让实习生什么的一起来分类。至于分类尺度,分类之前总体给他们定一个标准,分类过程中就没有别的方法进行控制了。
这都是后来的一些做法了,一开始可以说是一团糟。我本身远程做,通过skype进行沟通讨论,许多时候沟通不到位。所以搞得自己很是被动。任务安排下去以后,进度一拖再拖,老员工对我这样的新员工也不满抱怨……组员又很少有做文档的习惯,经常我让他们做个实验,返回给我一个最后的数据,连测过多少图片都不知道,问起来还说图片已经删掉……
有点长,先写这些,稍后再续,欢迎批评,留下您的宝贵意见。
推荐阅读:
一次项目经历[2]
http://haibuo1981.iteye.com/blog/1408235
一次项目经历[3]
http://haibuo1981.iteye.com/blog/1409142
分享到:
相关推荐
在上述的面试项目经历中,开发者展示了如何综合运用这些技术来构建一个B2C零食售卖商城。 首先,该项目采用Spring Boot作为后端框架,它简化了Spring的配置,提供了快速开发的能力。Spring Security则用于处理用户...
标题解释:标题“第一次面试 Java 实习生经历”直接表明了文章的主题,即作者的第一次 Java 实习生面试经历。 描述解释:描述部分重复了标题的内容,没有提供更多的信息。 标签解释:标签“java JavaScript”表明...
个人简历项目经历怎么写|个人简历中每一个项目都能显露个人信息 个人简历是求职的敲门砖,也是求职的第一部分,在个人简历上可以看到很多方面的信息,而招聘官也正是从其个人简历中,所显露出来的信息来判断是否...
这篇描述分享了一位求职者初次参加Android面试的经历。面试发生在2015年,地点是一家名为teleca的公司。从描述中我们可以提炼出以下几个与Android面试相关的重要知识点: 1. **准备阶段**:面试者在面试前复习了...
本项目经历过4个月的测试,bug总量在一个非常低的水平。 方案包括以下部分:Dtu硬件代码:(MCU:STM32F103C8T6?模块:移远m26) Dtu上位机代码:(环境C++和VB) Dtu配置软件代码:(环境C++和VB) Dtu生产测试软件...
1. **勇于尝试**:作者在面对母亲的挑战时,尽管没有经验,仍然愿意尝试去做午饭,这体现了勇于接受新挑战的精神。在IT行业中,这种勇于尝试新事物的态度同样重要,因为技术更新迅速,不断学习和适应是必要的。 2. ...
《第一次做项目经理》这本书是为初次担任项目经理的读者量身打造的教育资料,旨在通过一个化名为王薇的真实项目经理的故事,结合多个项目管理案例,帮助读者理解并掌握项目管理的基本概念和实践技巧。 项目经理在21...
标题所述的“山西省一次能源资源消费统计管理信息系统开题报告”是关于开发一个针对山西省的一次能源消费数据管理系统的项目提案。该项目旨在提升一次能源资源的利用率,通过电子化、流程化的方式改善能源消耗的统计...
这个项目表明他对提高采油效率有深入理解,特别是对三次采油技术的重视,这是提高低渗透或成熟油田产量的重要方法。 3. **论文发表**:基于他的研究,他在学校报刊上发表了论文《油气田采收率的研究》,显示了他的...
【Java程序员面试交流项目经验】在面试中,Java程序员需要准备的不仅仅是技术知识,更重要的是如何将自己的项目经验、个人能力和职业潜力展现给面试官。...记住,每一次回答后的“谢谢”都是礼貌的体现,也是加分项。
这些第一次可能是编写代码、解决复杂问题、调试程序或者是构建自己的项目。就像文中描述的做西红柿炒鸡蛋,初次尝试可能会遇到困难,比如调料放多了(类比于编程中可能出现的过度复杂或错误),但这个过程是学习和...
这篇文档的标题和描述均指向一个“第一次拔牙”的个人经历,显然这并不是一篇与IT相关的文章,而是属于文学创作或个人回忆类的文本。不过,我们可以从中提取一些普遍适用的生活经验和心理感受,并尝试将其转化为一种...
记录一次vue-cli项目上线到阿里云并配置Nginx服务器的经历-附件资源
【标题】"MyqqS1结业项目"指的是一个针对初学者的编程学习项目,主要聚焦于"Myqq"这个特定的软件或应用的开发。Myqq可能是对腾讯QQ的一个自定义实现或者是一个教学示例,旨在帮助学生...这是一次全面而实用的学习经历。
在IT领域,这可以类比为初次接触新技术或新项目,例如第一次编写代码、第一次搭建服务器或者第一次解决复杂的技术问题。这些初次尝试往往伴随着挑战和不确定性,但正是这些经历推动了个人的成长和技能提升。 文档中...
我一次性通过信息系统项目管理师考试,现分享软考信息系统项目管理师考试资料、经验、经历、复习方法
3. **基于门户系统的单点登录工具**:单点登录(Single Sign-On, SSO)是一种身份验证机制,允许用户在多个应用系统中只需要一次登录。在此项目中,工程师可能研究了不同类型的B/S和C/S应用的认证机制,如基于cookie...
对于应届毕业生来说,如何在有限的项目经历中展现出自己的能力和潜力尤为关键。本文将围绕“面试—项目那点事”这一主题,详细解析应届毕业生在准备项目面试时需要注意的关键点。 #### 一、项目挑选 项目挑选是...