一文带你入门图像分析,成为AI专家不是梦!
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
腾讯云高级研究员讲述,从成像到图像分析如何入门
文︱冀永楠
“AI来了”邀请到我们腾讯云的高级研究员冀永楠讲述图像分析的那些事儿。
从2012年开始,深度学习席卷了图像识别领域,在图像分类、目标检测、语义分割等领域秒杀了传统的方法。之前也有人写过如何20分钟内得到猫狗分类大赛第二名的卷积神经网络。尽管识别和检测问题是图像分析中难度最高的一部分,在实际应用中,图像问题都是多个问题的组合,而并非单一的识别或者检测问题。
冀永楠表示,本文是简单介绍一下成像和图像分析的基本内容,希望对有兴趣解决图像类问题的同学有所帮助。
作者简介:
冀永楠,诺丁汉大学计算机系博士,欧盟Marie Curie Research Fellow。现为腾讯云大数据AI产品中心高级研究员。
成像方式
理解图像是如何产生的是解决图像类问题的第一步。最常见的成像方式是单反相机——手机相机等相机的成像方式。下图选自参考文献1,直观的展示了这种成像的原理。现实生活中遇到的成像方式绝大多是属于这类成像
除此之外,还有如下图中的X-ray,红外,显微,遥感,结构光等多种成像方式。在处理和分析这些图像的时候,理解图像的成像方式和其中的内容表达方式对最后的处理效果会起到关键的基础性作用。
以医用CT图像为例,CT图像的像素值代表着位于改像素位置的物质对X光的衰减程度。骨头,金属等可以造成较大衰减的,会呈现高像素值。空气几乎不会造成衰减的,会呈现低像素值。CT像素值有很大的动态范围。普通图像像素值一般是0~255。CT的像素值则是-1024~1024。检查不同部位和不同疾病的时候,关注的像素值范围有所不同。例如,在AI医疗的肺结节检测应用场景中,主要关注-1000~200的区域。
图像处理
图像处理问题可以大致的分为低、中、高三个层次。低层处理主要是图像的增强、降低噪声、边缘等特征的提取、基本的压缩等。中层的图像处理方法一般解决的是图像的分类,物体的检测、定位、分割以及图像的语义分割等。高层的处理是比较复杂的综合应该用。比如图像的自动注释,人脸和人脸姿态的识别,自动驾驶等等。
高级的图像处理问题需要分解为多个中低级的问题。一些端到端的深度网络,也会将一个网络分成几个子网络,利用辅助输入输出进行训练。其实本质也是将复杂的高层问题分解为中级和低级的子问题来解决。比如常见的通过人脸比对进行身份验证,一般都包括了人脸检测定位,人脸关键点定位,特征计算和比对的过程。优图的OCR文字识别,也是由背景识别等三大引擎(定位引擎、字段识别引擎)支撑的。
传统的图像分析算法中,各种滤波器的设计占有很大的一部分比例。理解滤波器的原理和使用的场景是做图像分析工作中很大的一块,也是比较痛苦的一块。因为滤波器的种类繁多,原理不一。对于场景的适用性需要经验来判断。比较成功的计算特征的方法有,边缘特征,Scale-invariant feature transform(SIFT),Histogram of Gradient (HOG)等
在特征计算之上,会设计出和问题相关的模型来描述和解决各种中层的图像问题。比如,对于人体检测和定位,Deformable Parts Model(DPM)在深度网络普及之前是效果非常好的一种模型。这种模型在HOG的特征上,将一个整体目标分成几个小目标进行初级识别,之后综合判断小目标之间的关系来定位整体目标的方法。
传统方法对于分割的问题基于两点,一是分割的边界一般处于图像梯度特征较大的地方;二是分割出来的区域的形状一般都是比较规则的。Active Shape, level set 都是类似的方法。更为复杂一些的,可以预设分割出来的物体大概的样子。这种预设称为A Priori Information。
深度学习
卷积神经网络的崛起可以说秒杀了很多传统方法。在分割,分类,检测等等几乎所有的中层问题上,深度学习算法在性能上都超出了传统方法。尽管卷积神经网络(CNN)本质上可以认为是局部的滤波器,但是好在至少数据充足,不需要对滤波器进行过多的设计。深度学习框架可以很大程度上自动优化好最后结果。不同的问题采用不同的网络结构。比如分割问题一般采用反卷积(FCN)网络。目标检测问题采用Faster RCNN网络。
深度网络进化朝着准确度越来越高,应用越来越广的方向发展。一些原有的图像分析的业界测量标准,例如ImageNet图像分类,已经变得易如反掌而退出了舞台。人脸识别也从小数据库,简单场景向千万,甚至亿级数据库,全场景覆盖发展。
应用多多
腾讯云图像识别能力已经在图像多标签分类、敏感图片审核(色情/暴恐/政治人物等)、医学影像识别、人/车/物结构化识别及文字识别(OCR)等细分化场景中进行应用,并在多个领域实现了落地。敏感图片审核技术对色情、暴恐等的识别准确率高达99%,成为网络环境的净化器。在医学领域,腾讯已与超过100家医院签署战略合作,已应用到肺癌早筛、食管癌早筛等项目中,显著提升看病水平和效率。OCR文字识别系统也广泛应用在金融,酒店,快运等等单据和身份证的识别中,取得了良好的实用效果。
Tips:图像技术入门资料
1 Rafael C. Gonzalez and Richard E. Woods. 2006. Digital Image Processing (3rd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
这本书是图像处理的数目的经典之作。对于希望理解成像和图像分析基本原理以及方法的同学,是必修之作。
CS231n: Convolutional Neural Networks for Visual Recognition
Li Feifei 开设的课程。课程主页,Youtube, Github上有丰富的资料。对于理解CNN在图像上的应用和演变是最为有效的方法。课后作业也不要错过。
这个不用多说了吧。谁没Clone过几个开源项目。
以上就是学习图像分析的一些方法,更多学习教程,请访问云加社区人工智能专栏。
问答
如何从图像中识别字体系列?
相关阅读
语音识别中的CTC算法的基本原理解释
借你一双“慧眼”:一文读懂OCR文字识别
“猜画小歌”的一些细节和思考
云学院 · 课程推荐 | 知乎KOL,与你分享机器学习中如何做选择
此文已由作者授权腾讯云+社区发布,完整原文请点击。
搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!
海量技术实践经验,尽在云加社区!
一文带你入门图像分析,成为AI专家不是梦!的更多相关文章
- 一文带你入门Java Stream流,太强了
两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:"就想看你写的啊!"你看你看,多么苍白的喜欢啊.那就&qu ...
- 多图:一文带你入门掌握JVM所有知识点
本JVM系列属于本人学习过程当中总结的一些知识点,目的是想让读者更快地掌握JVM相关的知识要点,难免会有所侧重,若想要更加系统更加详细的学习JVM知识,还是需要去阅读专业的书籍和文档. 本文主题内容: ...
- 可能是史上最强大的js图表库——ECharts带你入门
PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 StanZhai 两位仁兄让我试试 ECharts ,去主页看到<Why ECharts ?&g ...
- 史上最强大的js图表库——ECharts带你入门(转)
出处:http://www.cnblogs.com/zrtqsk/p/4019412.html PS:之前的那篇博客Highcharts——让你的网页上图表画的飞起 ,评论中,花儿笑弯了腰 和 Sta ...
- C#单元测试,带你入门
注:本文示例环境 VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.10 模拟框架 为什么要编写单元测试 ...
- Istio是啥?一文带你彻底了解!
原标题:Istio是啥?一文带你彻底了解! " 如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯. 这篇文章可以作为了解 ...
- 【转帖】Istio是啥?一文带你彻底了解!
Istio是啥?一文带你彻底了解! http://www.sohu.com/a/270131876_463994 原始位置来源: https://cizixs.com 如果你比较关注新兴技术的话,那么 ...
- 让自己写的电子笔记连文带图全平台兼容(MarkDown图片显示兼容)
目录 一.工具使用 语言使用:MarkDown 简介 使用原因 使用方法 软件使用:Typora 简介 环境设置搭建 1)搭建图床 2)配置PicGo 3)配置typora 4)测试 图片上传测试 平 ...
- 一文带你读懂什么是vxlan网络
一个执着于技术的公众号 一.背景 随着云计算.虚拟化相关技术的发展,传统网络无法满足大规模.灵活性要求高的云数据中心的要求,于是便有了overlay网络的概念.overlay网络中被广泛应用的就是vx ...
随机推荐
- spring+quartz的任务调度
公司网站有个功能是自动投标,还有定时更新用户的排名信息,这些都是spring+quartz实现的. 手机了一些资料,做一个小demo,加深理解,记录一下,以后使用的时候不会出什么问题. 需要的包,主要 ...
- Postgres-XL9.5r1.6 搭建
Postgres-XL9.5r1.6 安装部署1,环境准备 关闭防护墙 关闭selinux 下载依赖 yum install -y flex bison readline-devel zlib-dev ...
- TSQL--聚合函数
--======================================================== --COUNT --COUNT(1) 和COUNT(*) 计算结果相同,COUNT ...
- 在 Docker 中部署 ASP.NET CORE 应用
有了 Docker 之后, 部署起来却这间非常方便,环境不用搭了, 直接创建一个 microsoft/aspnetcore 的容器, 在本地开发好后, 把内容直接部署到容器中. 下面的命令是把本地发布 ...
- C#语言各个版本特性(三)
三.查询集合 1.找出List<Product>列表中符合特定条件的所有元素 C#1.1 查询步骤:循环,if判断,打印 product类 using System.Collections ...
- ryu 下发流表配置
资料链接:http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html 运行ryu进程: ryu-manager --ofp-tcp-listen-p ...
- “全栈2019”Java多线程第十二章:后台线程setDaemon()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- 【JVM】jvm启动参数
-server -Xmx2048m -Xms1500m -Xmn1024m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConc ...
- [转] FFmpeg常用基本命令
[FFmpeg]FFmpeg常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpe ...
- [转] 测试环境下将centos6.8升级到centos7的操作记录
1)查看升级前的版本信息 lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noa ...