人工智能原本只是人类一个美好的想象,没想到,它却成为了21世纪最热的话题之一。
随着近几年人工智能的发展,已经逐渐渗透到了各个领域,比如:医疗、教育、机械自动化、个性化推荐、信息安全、图像识别等等......
也正因为如此,很多准备入门 AI 的新手,都会面临一个共同的问题:AI 应用方向么多,到底该选择哪个?哪个才是最适合自己的?
在人工智能的众多细分领域中,有一个入门门槛相对较低、模型成熟但人才缺口大的方向——计算机视觉(Computer Vision)。
如果你了解计算机视觉,并细心观察,会发现其实它早已成为人们日常生活的一部分了。计算机视觉的应用已经被越来越多的公司部署在自身的产品中,举几个比较前沿的例子:
Facebook “反人脸识别”
扎克伯格提过Facebook将来三大主要发展方向,人工智能就是其中之一,并为此设立了FAIR(Facebook AI Research)。
去年,FAIR针对世界上有关人脸识别技术的滥用事件(AI换脸),开发了一套适用于视频、现场直播等场景的“去识别化”’技术——反人脸识别。
该技术将一个对抗自编码器与一个训练过的面部分类器配对,以使人的面部稍微扭曲,从而在迷惑面部识别系统的同时,又能维持一个人们可以认出来的自然样貌。
虽然Facebook还不打算在其任何商业产品中使用这项技术,但这项技术在很多场景中是有益的,比如保护个人隐私。
Amazon Go
Amazon Go 是计算机视觉试图对零售行业进行改革的尝试。
它所实现的功能是:顾客进入商店,闸机读取顾客的二维码,选择所需商品,离开商店,不用排队结账。
其核心技术基于一种无线射频识别技术的系统——它能识别用户从货架上取货的动作,随后将数据同步到用户的手机中。用户在穿过特别设置的“交易区”(transition area)后,系统会自动识别,算出花销,然后从亚马逊账户中扣款;另外,这套系统还能利用顾客的购买记录,来分析用户偏好,然后调整相应的货物位置和库存。
哎,不知道超市收银员们听了怎么想?
微软 InnerEye
医疗行业当然也少不了计算机视觉的应用。
微软有一款处理医学图像的产品——InnerEye,其基于计算机视觉和机器学习技术,帮助放射科医生、肿瘤专家和外科医生处理放射图像。其主要目的是从恶性肿瘤的 3D 图像中准确识别出肿瘤。
随着计算机视觉技术的引入,现代医疗系统必将实现突破性的发展,风险低、创伤性小的手术方案在未来也将成为可能。
“工欲善其事必先利其器”,尽管计算机视觉是人工智能中相对入门门槛较低的方向,但作为CV新人,你至少要掌握以下必备技能:
1.编程基础
推荐Matlab,Python,C++,最好熟悉其中2种。
2.数学基础
了解微积分,概率学、矩阵论、线性代数等。
3.专业工具OpenCV
OpenCV(开源计算机视觉库)是一个非常强大的学习资料库,为初学者们降低了计算机视觉的学习门槛。
4.图像处理的基础知识
图像处理 (Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
5.模式识别的基础知识
模式识别(Pattern Recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。
有了以上基础,你算是半只脚踏进了计算机视觉的大门,但是离找一份相关的工作还有所差距。企业看重的是技术的落地效益,所以,初学者们还需要在计算机视觉的应用方面花功夫。
根据视觉的应用场景不同,计算机视觉分为了传统视觉和与深度学习结合的计算机视觉,两个分支要求你学习的内容也不同。
传统计算机视觉
传统计算机视觉的应用主要在制造针对特定对象的检测器,如边缘检测,霍夫变换,斑点检测,角点检测。其优势体现在精准度和计算复杂性等方面。
对此,你需要学习在一些具体的应用层面的知识。
1、ROS
ROS(robotics operating system)机器人操作系统,目前能够应用的是机器人领域,主要是机器人的建模、感知、导航、规划等。
而ROS与计算机视觉的交织领域是机器视觉,目前,机器视觉解决方案尚面临着9大挑战:照明、变形或铰接、职位和方向、背景、闭塞、比例、照相机放置、运动、期望。
因此,解决机器人在环境中的视觉,任务设置和工作场所等问题,需要在计算机视觉领域的更多投入。
2、自动驾驶
计算机视觉在无人车上的使用有一些比较直观的例子,比如交通标志和信号灯的识别(google)、高速公路车道的检测定位(特斯拉)。现在基于LiDAR信息实现的一些功能模块,其实也可以用摄像头基于计算机视觉来实现。
从计算机视觉的角度,无人驾驶可能是一次难得的机遇,数据的极大丰富和算法的迭代提高相辅相成,会推动计算机视觉研究前进,并使之在无人驾驶中起到更加不可或缺的作用。
与深度学习结合的计算机视觉
与深度学习结合,作为传统计算机视觉的一个补充,它的应用领域主要在一些能允许一定错误率的行业,比如图像搜索、监视、自动化零售等,其最大的优势就是自动创建特性、具有实时决策功能。
1、深度学习
深度学习(Deep Learning)的概念是Hinton等人于2006年提出的,最早最成功的应用领域就是计算机视觉,经典的卷积神经网络就是为专门处理图片数据而生。
目前深度学习已经广泛应用在计算机视觉、语音识别、自然语言处理、智能推荐等领域。关于深度学习的方法,大致分为三种:
◆ 深度监督学习
监督学习应用在当数据标记、分类器分类或数值预测的情况。
◆ 深度无监督学习
当输入数据没有标记时,可应用无监督学习方法从数据中提取特征并对其进行分类或标记。
◆ 深度强化学习
强化学习使用奖惩系统预测学习模型的下一步。这主要用于游戏和机器人,解决平常的决策问题。
2、CNN
计算机视觉里经常使卷积神经网络,即CNN,是一种对人脑比较精准的模拟。
什么是卷积?卷积就是两个函数之间的相互关系,然后得出一个新的值,他是在连续空间做积分计算,然后在离散空间内求和的过程。实际上在计算机视觉里面,可以把卷积当做一个抽象的过程,就是把小区域内的信息统计抽象出来。
那为什么时隔20年,卷积神经网络能卷土重来、占领主流?原因有二:
◆ 深度的卷积神经网络需要大量数据进行训练,否则机器学习中的过拟合将不可避免。而2006及2007年开始,正好是互联网开始大量产生各种各样的图片数据的时候。
◆ 随着GPU计算能力的增长,运算能力的提升,使卷积神经网络结合大数据的训练才成为可能。
深度学习已经成为计算机视觉系统的重要组成部分,但是传统的计算机视觉依然保持着强势劲头。
所以,你要做得就是选择自己感兴趣的计算机视觉应用方向,在掌握一定基础的情况下,深入学习某个领域需要的知识即可。
目前计算机视觉领域来说有着两极分化——基础理论扎实,实践能力强的人,是真的非常好找工作。相反,只是学会基础,运行一下网上公开模型,这种人想找份好工作可能就无望了。
对于初学者来说,要想扎实的学习计算机视觉技术,就要先掌握计算机视觉的开发工具——OpenCV,并在实践中学习。
OpenCV是开源视觉开发库里的“老人”,很早就开始做 CV 领域的开源。相对于家喻户晓pytorch 和 tensorflow ,OpenCV 在应用上有以下优势:
◆ 丰富、高效的传统算法(视频分析、3D 重建、光流算法)
◆ 端到端的IO(从摄像头读入、显示屏输出)
◆ CPU、(GPU)、VPU加速效果好