论文部分内容阅读
摘 要:开源软件已成为我国信息化建设和软件产业发展的重要技术来源,创造了显著的经济和社会效益。作为人工智能的重要研究方向,计算机视觉的飞速发展离不开开源软件在该领域的持续深耕。本文将重点梳理计算机视觉相关开源软件应用情况与典型开源软件,为计算机视觉研发人员提供参考。
关键词:计算机视觉;开源软件;人工智能
1 引言
计算机视觉是一门研究如何使机器“看”的科学,即利用图像传感器和计算机代替人眼对图像内容进行解释,实现目标识别、跟踪和测量等功能。根据咨询公司发布的数据[1],2018年全球计算机视觉市场规模已超过300亿元,年均增长超过20%,其中中国市场规模达到120亿元。
开源软件是指代码创作者依据相关的开源协议,将源代码全部或部分公开,允许用户或开发者进行自主学习、报错、修改、使用等活动,以共同提高软件的质量。经过近20年发展,开源软件已成为我国信息化建设和软件产业发展的重要技术来源,持续推动国产软件技术和产业创新发展,创造了显著的经济和社会效益。
2 计算机视觉发展概述
计算机视觉始于20世纪80年代,随着马尔《视觉》一书的问世,标志着计算机视觉成为了一门独立学科。在将近四十年的发展历程中,该学科经历了马尔计算视觉、主动和目的视觉[2][3]、多视几何与分层三维重建和以神经网络为代表的基于学习的视觉[4]四个发展阶段。近四十年来计算机视觉发展过程中具有代表性的理论技术和开源软件,如图1所示。
传统计算机视觉算法处理过程大致分为特征感知,图像预处理,特征提取,特征筛选,推理预测与识别五个步骤。使用传统方法设计特征需要开发者具备大量经验,在设计特征基础上还需合适的分类器算法,将两者相互配合达到最优效果难度较大。
随着深度学习研究熱潮持续高涨,计算机视觉领域应用深度学习方法,已成为人工智能的典型应用与研究热点。深度学习方法主要采用端到端的解决思路,即从输入到输出一气呵成。相较于传统方法,深度学习方法具有准确性高,开发便捷等优势,使其成为当下计算机视觉领域最为流行的开发方法。
3 计算机视觉典型应用领域
在计算机视觉作为一门学科的发展过程中,开源软件和数据集起到了良好的推动作用。利用开源软件,研究人员可以更加快速地更新和迭代算法。开源数据集则为研究人员提供了公平的算法测试平台。目前,开源软件在计算机视觉方面的典型应用领域有人脸识别、无人驾驶、视觉机器人等。
3.1 人脸识别
人脸识别是基于人的面部信息进行身份识别的一种生物识别技术。该技术利用摄像机采集含有人脸的图像或视频流,通过对采集的图像进行预处理提取人脸特征,并与搜索库中人脸样本进行比对,进而对检测到的人脸进行识别。
人脸识别技术已相对纯熟,并已融入人们的日常生活中。如企业、住宅等门禁系统可通过人脸识别辨识来访人员。国际民航组织要求其118个成员国家和地区必须使用电子护照,人脸识别是首推的识别模式。此外,“刷脸支付”可通过扫描消费者面部即可完成交易,极大提高支付的便捷性。
目前,与人脸识别相关的代表性开源数据集主要有PubFig、CelebA、Colorferet、MTFL、FaceDB、LFW、Youtube Faces、CASIA-FaceV5等。代表性开源软件有sourceAFIS、OpenBR、AsmLibrary、Insightface、Im2txt和FaceNet等。
3.2无人驾驶
无人驾驶通常指汽车、飞机等交通工具依托计算机进行驾驶,无需人为操控的技术。无人驾驶技术集计算机视觉、人工智能、自动控制、体系结构等众多技术于一体,主要通过传感系统感知路况环境,自动规划驾驶路线到达预定目标。其中计算机视觉主要用于路况信息的感知。
无人驾驶技术主要应用于无人驾驶汽车和无人机方面。早在20世纪80年代,国防科大就已成功研制出我国第一辆无人驾驶汽车。2015年9月,全球第一台无人驾驶大客车在全程无人工干预的条件下成功运行,标志着我国在客车制造方面取得了重大突破;2018年4月,百度与美团正式合作计划在雄安新区无人驾驶送餐试验。除了无人驾驶汽车方面,我国在无人机领域发展势头良好,我国大疆公司的无人机产品已被广泛应用到航拍、遥感测绘、电力巡检、搜索救援等众多方面。
目前,无人驾驶用到的代表性开源数据集主要有KITTI、Caltech、Daimler pedestrian、nuScenses等。代表性开源软件有Udacity、Autoware、TensorFlow Object Detection API和Detectron等。
3.3 视觉机器人
视觉机器人[5]指具有视觉感知功能的机器人。视觉机器人可通过视觉传感器获取环境的二维图像,并通过视觉处理器进行解析,进而转换为机器人理解的符号信息,使机器人具有辨识物体,并确定物体位置的功能。
视觉机器人研究工作起步较早,现已广泛应用在多个领域中。如工业领域中,使用计算机视觉技术进行高精度PCB定位及SMT元件放置。医疗领域,使用视觉机器人为病患进行手术。此外,对于人眼无法识别的光线范围,可通过红外传感器、超声波传感器等获得视觉信息等。
目前,视觉机器人广泛使用的开源数据集主要有Commo Objects in Context(COCO)、ImageNet、MNIST、Caltech 101、Pascal VOC等。典型开源软件有AForge.NET、OpenCV等。
4 计算机视觉领域典型开源软件
本小节将对部分典型开源软件予以介绍。
●OpenCV是Intel于1999年建立的,基于BSD许可的计算机视觉库。OpenCV由一系列C函数和少量C++类构成,轻量并且高效,可以实现众多图像处理和计算机视觉方面的通用算法。OpenCV可运行在Linux、Android、Mac OS等操作系统上,是目前使用最广泛的计算机视觉开源软件库。 ●TensorFlow Object Detection API是Google于2017年基于TensorFlow平台开发的开源目标检测算法库。此算法库中提供了当前流行的Faster-RCNN和SSD框架,也可以自定义模型框架进行目标检测任务,使得创建、训练以及应用目标检测模型更为便捷。
●Detectron是Facebook AI研究院于2018年公开的目标检测平台,涵盖业内典型的目标检测、图像分割、关键点检测等算法。该平台基于Python和深度学习框架Caffe2构建,使用灵活,利用其提供的预训练模型,研究人员可以快速试验和评估新的想法。
●InsightFace是DeepInsight于2018年在 Mxnet上使用python编写的基于MIT协议的人脸识别算法库,包含人脸识别所用的经典损失函数如Softmax、Sphereface、CosineFace、ArcFace、Combined Margin和TripletLoss,在公开人脸识别数据集拥有较优的性能。
●Tesseract是Google发布的一款OCR开源库,使用Tesseract可以方便、快捷地识别图片中的文字内容。Tesseract支持C++、python、Java等编程语言调用,接口友好。由于其完整的功能,可以训练的特点,在开源后备受关注。
5 未来展望
开源软件已成为我国信息化建设和产业创新发展的重要推动力,创造了显著的经济和社会效益。就目前计算机视觉领域开源软件发展现状来看,平台化和社区化是发展趋势。成功的平台和社区能够使研究人员更容易推广新算法,沟通效率也会有所提高。尽管我国研究人员在计算机视觉领域的研究十分活跃,但在世界范围内的影响力仍然有限。期待我国抓住开源软件的发展机遇实现计算机视觉等多技术领域的弯道超车。
参考文献:
[1] 黄伟.计算机视觉技术及产业化应用态势分析[J].信息通信技术与政策,2018(9):59-62.
[2] Yamins D. L K., DiCarlo J.J. Using goal-driven deep learning models to understand sensory cortex. Nature Neuroscience, 2016,19(3):356-365.
[3] Yamins D. L. K et al.Performance-optimized hierarchical models predict neural responses in higher visual cortex, 2014(111):8619-8624.
[4] LeCun Y et al.Deep Learning.Nature,2015(521):436-444.
[5] 李阳.机器人视觉技术的原理及应用概述[J].通讯世界,2019(2):198-199.
作者简介:
刘亭杉,出生年月:1986年5月21日,性別:女,民族:汉,籍贯(精确到市):山东省招远市,当前职务:工程师,当前职称:助理工程师,学历:博士,研究方向:计算机应用技术.
关键词:计算机视觉;开源软件;人工智能
1 引言
计算机视觉是一门研究如何使机器“看”的科学,即利用图像传感器和计算机代替人眼对图像内容进行解释,实现目标识别、跟踪和测量等功能。根据咨询公司发布的数据[1],2018年全球计算机视觉市场规模已超过300亿元,年均增长超过20%,其中中国市场规模达到120亿元。
开源软件是指代码创作者依据相关的开源协议,将源代码全部或部分公开,允许用户或开发者进行自主学习、报错、修改、使用等活动,以共同提高软件的质量。经过近20年发展,开源软件已成为我国信息化建设和软件产业发展的重要技术来源,持续推动国产软件技术和产业创新发展,创造了显著的经济和社会效益。
2 计算机视觉发展概述
计算机视觉始于20世纪80年代,随着马尔《视觉》一书的问世,标志着计算机视觉成为了一门独立学科。在将近四十年的发展历程中,该学科经历了马尔计算视觉、主动和目的视觉[2][3]、多视几何与分层三维重建和以神经网络为代表的基于学习的视觉[4]四个发展阶段。近四十年来计算机视觉发展过程中具有代表性的理论技术和开源软件,如图1所示。
传统计算机视觉算法处理过程大致分为特征感知,图像预处理,特征提取,特征筛选,推理预测与识别五个步骤。使用传统方法设计特征需要开发者具备大量经验,在设计特征基础上还需合适的分类器算法,将两者相互配合达到最优效果难度较大。
随着深度学习研究熱潮持续高涨,计算机视觉领域应用深度学习方法,已成为人工智能的典型应用与研究热点。深度学习方法主要采用端到端的解决思路,即从输入到输出一气呵成。相较于传统方法,深度学习方法具有准确性高,开发便捷等优势,使其成为当下计算机视觉领域最为流行的开发方法。
3 计算机视觉典型应用领域
在计算机视觉作为一门学科的发展过程中,开源软件和数据集起到了良好的推动作用。利用开源软件,研究人员可以更加快速地更新和迭代算法。开源数据集则为研究人员提供了公平的算法测试平台。目前,开源软件在计算机视觉方面的典型应用领域有人脸识别、无人驾驶、视觉机器人等。
3.1 人脸识别
人脸识别是基于人的面部信息进行身份识别的一种生物识别技术。该技术利用摄像机采集含有人脸的图像或视频流,通过对采集的图像进行预处理提取人脸特征,并与搜索库中人脸样本进行比对,进而对检测到的人脸进行识别。
人脸识别技术已相对纯熟,并已融入人们的日常生活中。如企业、住宅等门禁系统可通过人脸识别辨识来访人员。国际民航组织要求其118个成员国家和地区必须使用电子护照,人脸识别是首推的识别模式。此外,“刷脸支付”可通过扫描消费者面部即可完成交易,极大提高支付的便捷性。
目前,与人脸识别相关的代表性开源数据集主要有PubFig、CelebA、Colorferet、MTFL、FaceDB、LFW、Youtube Faces、CASIA-FaceV5等。代表性开源软件有sourceAFIS、OpenBR、AsmLibrary、Insightface、Im2txt和FaceNet等。
3.2无人驾驶
无人驾驶通常指汽车、飞机等交通工具依托计算机进行驾驶,无需人为操控的技术。无人驾驶技术集计算机视觉、人工智能、自动控制、体系结构等众多技术于一体,主要通过传感系统感知路况环境,自动规划驾驶路线到达预定目标。其中计算机视觉主要用于路况信息的感知。
无人驾驶技术主要应用于无人驾驶汽车和无人机方面。早在20世纪80年代,国防科大就已成功研制出我国第一辆无人驾驶汽车。2015年9月,全球第一台无人驾驶大客车在全程无人工干预的条件下成功运行,标志着我国在客车制造方面取得了重大突破;2018年4月,百度与美团正式合作计划在雄安新区无人驾驶送餐试验。除了无人驾驶汽车方面,我国在无人机领域发展势头良好,我国大疆公司的无人机产品已被广泛应用到航拍、遥感测绘、电力巡检、搜索救援等众多方面。
目前,无人驾驶用到的代表性开源数据集主要有KITTI、Caltech、Daimler pedestrian、nuScenses等。代表性开源软件有Udacity、Autoware、TensorFlow Object Detection API和Detectron等。
3.3 视觉机器人
视觉机器人[5]指具有视觉感知功能的机器人。视觉机器人可通过视觉传感器获取环境的二维图像,并通过视觉处理器进行解析,进而转换为机器人理解的符号信息,使机器人具有辨识物体,并确定物体位置的功能。
视觉机器人研究工作起步较早,现已广泛应用在多个领域中。如工业领域中,使用计算机视觉技术进行高精度PCB定位及SMT元件放置。医疗领域,使用视觉机器人为病患进行手术。此外,对于人眼无法识别的光线范围,可通过红外传感器、超声波传感器等获得视觉信息等。
目前,视觉机器人广泛使用的开源数据集主要有Commo Objects in Context(COCO)、ImageNet、MNIST、Caltech 101、Pascal VOC等。典型开源软件有AForge.NET、OpenCV等。
4 计算机视觉领域典型开源软件
本小节将对部分典型开源软件予以介绍。
●OpenCV是Intel于1999年建立的,基于BSD许可的计算机视觉库。OpenCV由一系列C函数和少量C++类构成,轻量并且高效,可以实现众多图像处理和计算机视觉方面的通用算法。OpenCV可运行在Linux、Android、Mac OS等操作系统上,是目前使用最广泛的计算机视觉开源软件库。 ●TensorFlow Object Detection API是Google于2017年基于TensorFlow平台开发的开源目标检测算法库。此算法库中提供了当前流行的Faster-RCNN和SSD框架,也可以自定义模型框架进行目标检测任务,使得创建、训练以及应用目标检测模型更为便捷。
●Detectron是Facebook AI研究院于2018年公开的目标检测平台,涵盖业内典型的目标检测、图像分割、关键点检测等算法。该平台基于Python和深度学习框架Caffe2构建,使用灵活,利用其提供的预训练模型,研究人员可以快速试验和评估新的想法。
●InsightFace是DeepInsight于2018年在 Mxnet上使用python编写的基于MIT协议的人脸识别算法库,包含人脸识别所用的经典损失函数如Softmax、Sphereface、CosineFace、ArcFace、Combined Margin和TripletLoss,在公开人脸识别数据集拥有较优的性能。
●Tesseract是Google发布的一款OCR开源库,使用Tesseract可以方便、快捷地识别图片中的文字内容。Tesseract支持C++、python、Java等编程语言调用,接口友好。由于其完整的功能,可以训练的特点,在开源后备受关注。
5 未来展望
开源软件已成为我国信息化建设和产业创新发展的重要推动力,创造了显著的经济和社会效益。就目前计算机视觉领域开源软件发展现状来看,平台化和社区化是发展趋势。成功的平台和社区能够使研究人员更容易推广新算法,沟通效率也会有所提高。尽管我国研究人员在计算机视觉领域的研究十分活跃,但在世界范围内的影响力仍然有限。期待我国抓住开源软件的发展机遇实现计算机视觉等多技术领域的弯道超车。
参考文献:
[1] 黄伟.计算机视觉技术及产业化应用态势分析[J].信息通信技术与政策,2018(9):59-62.
[2] Yamins D. L K., DiCarlo J.J. Using goal-driven deep learning models to understand sensory cortex. Nature Neuroscience, 2016,19(3):356-365.
[3] Yamins D. L. K et al.Performance-optimized hierarchical models predict neural responses in higher visual cortex, 2014(111):8619-8624.
[4] LeCun Y et al.Deep Learning.Nature,2015(521):436-444.
[5] 李阳.机器人视觉技术的原理及应用概述[J].通讯世界,2019(2):198-199.
作者简介:
刘亭杉,出生年月:1986年5月21日,性別:女,民族:汉,籍贯(精确到市):山东省招远市,当前职务:工程师,当前职称:助理工程师,学历:博士,研究方向:计算机应用技术.