2015-03-13 22:42:54 liuuze5 阅读数 13936
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    29929 人正在学习 去看看 张中强

整理了一下网上一些公司对图像处理算法工程师的招聘要求:

                                                            图像处理算法工程师

 

职位要求

编程技能:

1、 具有较强的编程能力和良好的编程习惯, 精通c/c++编程,并熟练使用VS 或matlab开发环境;

2、 在计算机技术领域拥有扎实的技术功底,尤其在数据结构、算法和代码、软件设计方面功力深厚;

    对数据结构有一定的研究基础如链表、堆杖、树等,熟悉数据库编程;

3、 出色的算法分析能力,对某一特定算法可以做广泛的综述,有实际算法实现经验;

4、 熟悉面向对象编程思想,精于windows下的C/C++、VC++程序设计,熟悉MATLAB,对MFC有相对的了解和应用经验;

专业技能:

1、扎实的数学功底和分析技能,精通计算机视觉中的数学方法;

     高等数学(微积分)、线性代数(矩阵论)、随机过程、概率论、

     摄影几何、模型估计、数理统计、张量代数、数据挖掘、数值分析等;

2、具备模式识别、图像处理、机器视觉、信号处理和人工智能等基础知识;

     对图像特征、机器学习有深刻认识与理解;

3、精通图像处理基本概念和常用算法包括图像预处理算法和高级处理算法;

     常见的图像处理算法,包括增强、分割、复原、形态学处理等; 

     熟悉常见的模式识别算法,特别是基于图像的模式识别算法,掌握特征提取、特征统计和分类器设计; 
4、熟练使用OpenCV、Matlab、Halcon中的一种或一种以上工具库;

5、熟悉机器视觉系统的硬体选型,包括CCD相机,镜头及光源;熟悉相机与镜头搭配;

 

外语:

1. 英文熟练,能够熟练阅读和理解专业英文资料,有英文文献检索和阅读能力;
2. 良好的英语沟通能力

综合能力:

1.对工作认真负责,积极主动,勤奋踏实;

2.做事严谨,注重细节,有耐心,能够在压力下独立工作;

3.学习钻研能力强,有较强的理解能力和逻辑思维能力和良好的创新意识;

4.良好的协调沟通能力和团队合作精神; 

经验要求:

1.两年以上C/C++ 程序设计经验;

2.具有2年以上在Linux/Unix环境下用C/C++语言开发图像处理软件的经验。

3.数字图像处理、模式识别的理论知识和实践经验;

  有基于OpenCV开发项目经验,机器视觉行业经验;

  具有图像处理算法设计和开发经验;

  参与过机器视觉系统分析和设计;

4. 在Matlab 或其它数学软件上开发算法的经验;

 

视觉算法经验:请提供实现的算法列表

    目标识别、图像配准、三维测量、标定和重建、手势识别; 

    表面缺陷检测;尺寸测量;特征识别;

    图像去噪、滤波、融合算法
    3A算法:如自动曝光、自动对焦、自动白平衡


【工作内容】: 


1.为解决实际问题而进行探索性研究和创新,设计与模式识别、图像/视频智能分析处理相关的算法。

  图形图像处理、计算机视觉相关算法的研发以及应用程序的编写;

  参与核心软件项目算法设计及算法实现;研究图像处理算法,开发和调试算法原型

  软件算法研发:算法的代码实现、优化以及移植及其测试;

  负责机器视觉系统图象处理、分析及识别算法的设计、实现及调试;

  参与图象算法视觉应用软件的设计与实现。参与图象处理技术研究与设计;

2、对已有的计算机视觉算法进行实用化开发和优化研究;
   精益求精,将算法做到极致,使算法真正实用化;

  参与预研性的算法分析和论证,为产品开发提供基础研究及论证;


岗位职责:

1、 协助工程师进行算法的测试.;C++语言验证、测试算法;

2、编写算法规格说明;
3、相关专业文献的查阅; 
4、将部分matlab程序转为C或C++语言程序。 

1) 辅助图像处理工作
2) 大规模图像搜集与分类 
3) 与开发人员等进行沟通,跟踪产品的体验效果并改进;
4)负责公司的机器视觉与传感器项目的技术支持(如项目可行性评估、现场DEMO、装机、培训等)

   和 维护工作;

 

岗位职责:

1、负责计算机视觉中的图像采集,处理面阵和线扫描相机的成像和控制 ;
2、针对特定的计算机视觉问题,设计目标识别与快速定位与检测算法的实现,并进行优化;
3、对彩色图像和灰度图像实现物体表面的污点划痕检测算法设计和实现;
4、处理三维物体表面数据获取和实现三维测量算法的实现;
5、处理点激光和线激光源的成像,散斑噪声滤波和轮廓检测;
6、负责算法与软件GUI开发工程师接口;
7、完成上级领导交办的其他的工作。




 

图像算法工程师三重境界



一、传统图像算法工程师: 
主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法、去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测;

二、现代图像算法工程师: 
涉及模式识别,主要表现的经验为AdaboostSVM的研究与应用,特征选取与提取,包括智能驾驶的研究与应用、行人检测、人脸识别;

三、人工智能时代图像算法工程师: 
深度学习,主要在大型互联网公司或者研究所机构,具体体现在TensorFlow等开源库的研究与应用,包括机器人的研、基于深度学习的人脸识别;







2019-05-16 16:37:37 tech_otaku0512 阅读数 207
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    29929 人正在学习 去看看 张中强

寒武纪科技:

  1. 熟悉Tensflow/Mxnet/Caffe等深度学习平台架构;
  2. 熟悉opencv等常见cv库的使用;
  3. Linux编程开发经验;

SenTime商汤科技:

  1. 较强的算法实现能力,熟练掌握 C/C++ 编程,熟悉 Shell/Python/Matlab 编程;
  2. 如研究生发表过第一作者CCF A类会议或期刊等论文,或本科发表过第一作者CCF B类以上会议或期刊论文;
  3. 有较强的代码能力优先,获得过ACM或其他商业代码竞赛的荣誉,如ACM区预赛金牌、NOI银牌以上、百度之星决赛等;
  4. 比如ImageNet等学术数据集或者Kaggle等一些国内外商业比赛;
  5. 基本的算法设计和实现能力,熟悉Python/C++/CUDA编程,掌握PyTorch/TensorFlow/MXNet等框架;
  6. 在相关领域顶级期刊或会议发表过论文优先;
  7. 三维视觉或计算机图形学研究经历优先;

Megvil旷视:

  1. 完成过 MIT 6.824 或同等分布式系统课程;
  2. 开源分布式存储系统(如 Ceph, HDFS)开发经验;
  3. 熟练掌握 Go/C++, 有一定项目经验;
  4. 熟悉 Python 等至少一门脚本语言,使用过 Theano, Caffe, Torch, TensorFlow 等开源深度学习框架优先;
  5. 有深度模型训练,图像分类、物体检测与分割、视频分析、三维建模、计算机图形学等相关科研经历者(例如顶级会议第一作者)优先;
  6. 深度学习/机器学习;计算机视觉(包括分类,检测,分割,跟踪,SLAM和三维重建);
  7. 熟悉本研究领域的最新研究成果,公开数据集,和相关的开源系统;

深兰科技上海:

  1. 计算机基础知识扎实,熟练掌握Python、C/C++/C#、Java中的一种
  2. 有图像处理领域相关竞赛经验者优先;有OCR领域图像处理经验者优先, 有活体检测经验者优先;
  3. 本科及以上学历,计算机、自动化、通信等相关专业;
  4. 熟悉计算机视觉基本理论知识,熟练掌握OpenCV,并具备至少1年以上的相关工作经验;
  5. 熟练掌握计算机视觉和图像处理基本算法,并在以下某个或多个方向有深入研究者优先:如图像识别理解,人脸检测识别、目标检测和跟踪、图像质量评价,图像分割增强等;

Bilibili:

1、负责APP产品的视频图像处理模块的设计和研发;
2、研究创新产品体验。

工作要求:

  1. 至少5年以上相关工作经验,本科以上学历,计算机软件或相关专业;
  2. 有扎实的OC/JAVA/C++语言基础,理解面向对象设计基本原则,能熟练运用常用设计模式;
  3. 熟练掌握OpenGL,图像滤镜处理相关的技能;
  4. 熟悉流媒体相关处理技术,熟悉常见的图像处理和音视频。

酷我:

  1. 图像处理、计算机视觉专业方向,本科及以上学历;
  2. 熟练使用C/C++编程语言;
  3. 熟悉图像处理基本方法(边缘检测,区域提取,低通滤波,特征提取,交点检测,二值化等),具备相关领域研究和实现;
  4. 熟练使用OpenCV进行视觉应用开;
2017-06-08 10:46:08 junzhen_chen 阅读数 539
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    29929 人正在学习 去看看 张中强


1. 首先要先下载一个JavaOpenCV ,是一个强大的图像算法API库


2.《数字图像处理_第三版_中_冈萨雷斯》这本书建议看看


3. 前期熟悉一下卷积神经网络算法


4.Python可以强大的支持人脸识别算法,可以学习Python

2019-12-13 09:26:42 qq_41258326 阅读数 10
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    29929 人正在学习 去看看 张中强

既然学了人工智能这个专业,研究生期间主要方向是机器学习,计算机视觉,图像处理。所以很想了解现在这个领域的就业方向及相关要求。
今天在“增强视觉 | 计算机视觉 增强现实”上看到一则招聘智能图像/视频处理工程师的广告,岗位要求如下:

动手能力强,熟练掌握C/C++/Matlab语言,有较强的算法分析和实现能力,并具备良好的代码与文档风格;

了解人脸识别、目标检测、跟踪和识别、图像处理等技术,具备一年以上实际工作经验;

参与项目需求分析、负责设计完成需求规格、软件架构、测试策略,撰写相关的技术文档;

搭建研发环境,完成系统中相关软件模块的编码、调试、单元测试、功能验证,保证项目进度和产品质量;

协助完成项目的系统集成测试、版本交付等工作,对项目实施和维护提供支持;

于是搜了一些关于图像、视频处理方面的就业要求,做一下总结,以便让自己明确研究生期间的学习任务,即便做不成科学家,也得有点技术吧。

1.编程语言:熟悉C++/C/OpenCV/Matlab开发语言,主要是有较强的C++/C图像处理编程能力,绝大多数岗位都要求熟悉OpenCV,Matlab在理论验证阶段比较方便,但是在操作硬件和效率上远不及C++/C,所以一般公司对此没要求。以后还要仔细学习C++/C,还是先从C++ primer开始,之后再看些effective系列的。另外,还要求具备良好的代码与文档风格,以后写代码还是要讲求规范了。

2.知识储备:机会总是青睐有准备的人。图像处理应用很广,因此不同岗位要求侧重不同,最基本都必须掌握图形处理的开发与研究,熟悉图像处理的各种算法,特别是图像去燥、图像增强、复原、质量改善、检测、色彩科学、图像分割、图像识别处理、图像跟踪、图像的获取及视频处理,具体应用包括人脸识别、医学影像处理、多点识别、文字检测与是识别。特别的,结合不同应用,还需要自然语言处理知识。另外,要有优秀的数学功底(特别是线性代数、优化理论、统计知识)。

3.英语水平:优秀的英文写作技能,英语口语流利。主要是能读懂英文技术文档,在研究院还需要写论文,公司更需要写技术文档,所以平时得多积累专业词汇。至于英语口语,还是从听力开始吧,中科院自动化所的图像处理、机器学习的课都很经典,大多数是留学归来的年轻教师,可以开拓思路,顺便积累专业词汇。这个寒假要把图像处理的课听完,再多做些试验。个人还比较喜欢“The Big Bang Theory”,悠闲加娱乐。

4.社交能力:硬件条件之后就是软件条件。大多数公司如是说:“良好的表达能力、团队合作精神和创新能力”。我觉得就是社交能力,HR看你合不合群。有个同学去参加面试,参加面试的还有研究生和来自理工科背景更雄厚的本科生,在群面、无领导小组讨论和辩论阶段,很多背景很强的学生却因太过张扬和表现自己被pass(这是同学分析的原因)。看来沉着、稳重还是必要的,谁也不想招个老板进来。而所谓的创新能力,另一个同学的面试经历给了我很大启发。他现在已经实习两个月了,回顾自己面试,他觉得正像面试官说的:“你还没入门呢”。而之所以拒掉N个研究生,选择同学这个应届毕业生,主要是他对这个方向很有热情,本科期间在毫无指导的情况下,主动接触了很多零零碎碎的东西,帮助同学和老师解决了一个又一个稀奇古怪的问题。据他说,这些东西在之后的工作中没一样能用到的,但是没有这些基础又是绝对干不了活的。之后的工作也是,没有人盯着他干活,老板给个指标,就放手做去吧,老板只要个结果。公司里每个人基本都要独挡一面,有时候还得独挡几面,所以非关键难题请教前辈,其他细节问题别人也不清楚,清楚也没时间指导。同学主动去学,去解决问题的能力是最让老板放心的。从他的话中体现出来的热情才是他“创新能力”的原动力。

额……要学的真多,鸭梨倍增,貌似都是本科没学过的,学过的,不常用,也忘差不多了。曾经的那些前端开发,spring框架,数据库神马的似乎是不太用的上了,我就是在不断印证那句话:生命在于折腾。

2017-09-21 13:39:40 duxinyuhi 阅读数 16770
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    29929 人正在学习 去看看 张中强

从16年九月份开始,参加了一些公司的算法工程师/机器学习工程师岗位的校园招聘,做一些总结,希望可以给大家准备这个职位提供些信息。

一、需要的基本技能

  1. 数据结构知识
  2. 掌握一门编程语言,c/c++/Java/Python
  3. 机器学习常用算法或者某一细分领域(推荐,自然语言处理,图像识别,语音识别等)的常用算法

二、笔试和面试内容

大多是技术笔试然后二到三轮的技术面试

  1. 技术笔试都是考察基本的计算机知识,概率统计相关题目,智力题,linux常用命令和编程/算法能力等

    • 计算机知识包括:
      主要是数据结构包括数组,增删链表,树,排序算法等。也可能会有数据库基本语句,操作系统进程和 线程相关的,计算机网络的TCP/IP协议部分)
    • 编程能力:
      一到三道在线编程题目
    • 算法能力:
      给出一个场景,回答使用什么算法去建模解决
  2. 面试问题

    • 机器学习常用算法,例如:
      • 决策树的ID3,C4.5,CART等,决策树的split原理和剪枝策略
      • 神经网络如何工作
      • SVM的原理及公式推导
      • 朴素贝叶斯的公式
      • Bagging 和 Boosting的区别
      • GBDT的参数怎么调
      • 聚类过程
      • 偏差和方差是什么,高偏差和高方差说明了什么
      • 怎么理解损失函数,SVM的损失函数是什么,写出公式
      • 过拟合怎么解决,L1和L2正则化有什么区别
      • 为什么用最小二乘而不是最小四乘
      • GB和牛顿法的区别,它们和泰勒公式的关系
    • 数据结构算法知识,手写代码,例如:

      • 最大子数组和
      • 快速排序
      • 字典排序
    • 特征工程

    • PCA的原理

    • 数据结构算法知识,手写代码,例如:

      • 最大子数组和
      • 快速排序
      • 字典排序
    • 编程能力,考察熟悉的编程语言的相关知识,编程语言掌握一门即可,例如:

      • java:static的作用,hashmap,arraylist和linklist的区别,多线程
      • c/c++:实现strstr(判断一个字符串是否是另一个的子串)
    • 编程能力,考察熟悉的编程语言的相关知识,编程语言掌握一门即可,例如:

      • java:static的作用,hashmap,arraylist和linklist的区别,多线程
      • c/c++:实现strstr(判断一个字符串是否是另一个的子串)
      • python:安装Python的命令是什么,用python读取一个文件,一行一行的输出(不能用库函数)

      • python:安装Python的命令是什么,用python读取一个文件,一行一行的输出(不能用库函数),python常用库

    • 大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count

    • 深度学习知识:

      • 深度学习框架
      • CNN:什么是卷积,为什么要padding(根据简历的具体项目问
    • Udacity的机器学习项目P0和P1,如果写,请想好如下问题:

      • P0(泰坦尼克号项目):预测这个有啥用?召回率是多少?(题目中并没有算)
      • P1(预测波士顿房价):特征都是离散的,为什么用决策树?
        (虽然是用的决策回归树,但我也没想 到更好的回答的方式)。。。

这些面试题目仅供大家参考,各个公司问每个人的也不一样,会根据公司的需求,个人简历上的项目问

三、总结:

  1. 各个公司的侧重点不太一样,有的公司侧重数据分析/数据挖掘(京东,笔试题好多spass),有的公司偏向推荐算法(协同过滤,CTR点击率预估)(美团,汽车之家也很注重思维能力),用户画像(百度的百家号),有的公司侧重大数据开发(要求里写了Hadoop/Hive)(中国移动),有的公司更侧重算法层面,建模能力(滴滴)

  2. 如果是面试自然语言处理(NLP),图像识别,语音识别之类的公司,基本是要求深度学习知识的。创业公司的话,要求关注最新会议,跟paper,关注领域内最新进展

四、推荐网站和书目

推荐编程刷题网站:牛客网,Leecode
推荐书目《剑指offer》(c++),《程序员代码面试指南》(java编写),
《机器学习(周志华著)》(西瓜书),《统计学习方法(李航著)》

五:一些建议:

掌握基本知识后要确定好自己的目标,机器学习是一个大的方向,还有很多细分,究竟是要做文本,推荐,图像还是语音识别,差别都很大,人不可能面面俱到,掌握好一个领域的内容就很厉害啦~~

六:数据分析与机器学习的区别

个人的一点理解,具体还是看岗位要求怎么写的
数据分析偏向统计一些,要会SQL/Spass/SAS等数据分析软件等,更适合数学和统计专业
* 大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count

  • 深度学习知识:

     * 深度学习框架
     * CNN:什么是卷积,为什么要padding(根据简历的具体项目问
    
    • Udacity的机器学习项目P0和P1,如果写,请想好如下问题:
      • P0(泰坦尼克号项目):预测这个有啥用?召回率是多少?(题目中并没有算)
      • P1(预测波士顿房价):特征都是离散的,为什么用决策树?
        (虽然是用的决策回归树,但我也没想 到更好的回答的方式)。。。

这些面试题目仅供大家参考,各个公司问每个人的也不一样,会根据公司的需求,个人简历上的项目问

三、总结:

  1. 各个公司的侧重点不太一样,有的公司侧重数据分析/数据挖掘(京东,笔试题好多spass),有的公司偏向推荐算法(协同过滤,CTR点击率预估)(美团,汽车之家也很注重思维能力),用户画像(百度的百家号),有的公司侧重大数据开发(要求里写了Hadoop/Hive)(中国移动),有的公司更侧重算法层面,建模能力(滴滴)

  2. 如果是面试自然语言处理(NLP),图像识别,语音识别之类的公司,基本是要求深度学习知识的。创业公司的话,要求关注最新会议,跟paper,关注领域内最新进展

四、推荐网站和书目

推荐编程刷题网站:牛客网,Leecode
推荐书目《剑指offer》(c++),《程序员代码面试指南》(java编写),
《机器学习(周志华著)》(西瓜书),《统计学习方法(李航著)》

五:一些建议:

掌握基本知识后要确定好自己的目标,机器学习是一个大的方向,还有很多细分,究竟是要做文本,推荐,图像还是语音识别,差别都很大,人不可能面面俱到,掌握好一个领域的内容就很厉害啦~~

六:数据分析与机器学习的区别

个人的一点理解,具体还是看岗位要求怎么写的
数据分析偏向统计一些,要会SQL/Spass/SAS等数据分析软件等,更适合数学和统计专业
机器学习要求编程能力较强,即算法实现能力,更适合数学和计算机专业

七:感受到的现状

机器学习是一个相对开发来说较新的职位,一些公司也开始增加这些职位,需求还是有的,要求也较高

机器学习要求编程能力较强,即算法实现能力,更适合数学和计算机专业

以上是一些笔试面试总结,仅供大家参考,欢迎大家补充交流和批评指正

2016年11月

没有更多推荐了,返回首页