图像深度

FFmpeg图像处理深度应用

半世苍凉 提交于 2020-02-27 08:26:39
本演讲主要讲解如何通过FFmpeg作为一个主要的接口,将OpenGL、OpenCV以及诸如Tensorflow等AI框架以第三方库的形式,作为FFmpeg的一个模块进行快速的业务开发,从而简化音视频图像处理的开发流程,为听众打开一个新思路。 文 / 刘歧 整理 / LiveVideoStack 审校/ 赵军 感谢大家关注FFmpeg在OnVideo以及AI方面的一些工作,我是刘歧,是OnVideo联合创始人的同时也担任技术负责人,同时也是FFmpeg的官方顾问,FFmpeg GSoC 2019 Mentor,FFmpeg决策委员会的委员,以及腾讯云TVP。我主要的兴趣在嵌入式开发、图形图像及音视频流媒体处理、分布式系统设计等领域。FFmpeg官方有我的联系方式,大家有问题可以和我随时交流。关于FFmpeg深度学习场景下的应用,目前看来,颇具价值且实用。 1. 契机 首先介绍一下我们的公司,OnVideo是一个音视频在线编辑云平台,上图是制作人员的处理过程中效果预览这个功能的一个展示。OnVideo云平台可以支持很多的图像处理相关功能,但实际上它并不限于视频和图片相关,它大量的使用了FFmpeg的一些内置功能以及AI相关的框架与算法,其具体功能大约如下图所示: 另外一个需要附带提及的事情是我在2019年Google Summer of

深度学习、机器学习与NLP的前世今生

十年热恋 提交于 2020-02-26 02:43:00
随着深度学习的发展,自然语言处理领域的难题也得到了不断突破,AlphaGo项目的主要负责人David Silver曾说“深度学习 (DL)+ 强化学习 (RL) = 人工智能 (AI)”。目前深度学习在自然语言处理上主要有哪些应用?在工程实践中是否会有哪些瓶颈?以下内容是根据达观数据联合创始人高翔在《深度学习与文本智能处理》直播的总结。 一、为什么做文本挖掘 什么是NLP?简单来说: NLP的目的是让机器能够理解人类的语言,是人和机器进行交流的技术 。它应用在我们生活中,像:智能问答、机器翻译、文本分类、文本摘要,这项技术在慢慢影响我们的生活。 NLP的发展历史非常之久,计算机发明之后,就有以机器翻译为开端做早期的NLP尝试,但早期做得不是很成功。直到上个世纪八十年代,大部分自然语言处理系统还是基于人工规则的方式,使用规则引擎或者规则系统来做问答、翻译等功能。 第一次突破是上个世纪九十年代,有了统计机器学习的技术,并且建设了很多优质的语料库之后,统计模型使NLP技术有了较大的革新。接下来的发展基本还是基于这样传统的机器学习的技术。从2006年深度学习开始,包括现在图像上取得非常成功的进步之后,已经对NLP领域领域影响非常大。 达观划分的NLP技术层次 当年上小学时有一本书叫《字词句篇与达标训练》,里面讲了字、词、句、篇,我们开始学写字,词是最基础的一级

人工智能技术应用集中在图像识别和语音识别领域

故事扮演 提交于 2020-02-26 02:04:48
目前基于深度学习的人工智能在技术上已经触及天花板,此前由这一技术路线带来的“奇迹”在Alphago获胜后未再出现。其应用的空间被局限在特定的领域——大部分都集中在图像识别和语音识别两方面。 这一轮人工智能热潮是本世纪初兴起的。 2012年,斯坦福大学人工智能实验室主任Andrew Ng(吴恩达)和谷歌合作建造了一个当时最大的神经网络,这是谷歌神秘的X实验室的一个计划。网络上一度疯传的谷歌猫脸识别就是用的这个参数多达十七亿的神经网络。后来Ng自己在斯坦福又搞了个更大的神经网络,参数更高达一百一十二亿。 通过人工智能,利用深度学习、大数据这两个工具,在一定条件下、一定领域内竟然能够超过人类,这给大家极大的鼓舞。 人工智能对就业的影响。能够被人工智能替代的工作,特点很明显,就是“照章办事”,不需要灵活性。如果你的工作富有灵活性和创新性,计算机不可能完全代替,部分代替是可能的,因为其中肯定有一些简单和重复性的工作内容。从这一点来说,人工智能仍处于发展阶段的初期。 深度学习。现在的深度学习本质是基于概率统计。深度学习是寻找那些重复出现的模式,因此重复多了就被认为是规律。在这个理论下,错误的事情重复很多遍,也会被认为是规律。 虽然基于深度学习的人工智能在技术上已经接近天花板,但是,只要找到合适的应用场景,利用成熟的人工智能技术去做应用,还有较大的空间。 人工智能的近忧,就是要考虑安全问题

《动手学深度学习》Task09:目标检测基础+图像风格迁移+图像分类案例1

前提是你 提交于 2020-02-26 00:26:02
1 目标检测基础 1.1 目标检测和边界框(9.3) % matplotlib inline from PIL import Image import sys sys . path . append ( '/home/kesci/input/' ) import d2lzh1981 as d2l # 展示用于目标检测的图 d2l . set_figsize ( ) img = Image . open ( '/home/kesci/input/img2083/img/catdog.jpg' ) d2l . plt . imshow ( img ) ; # 加分号只显示图 1.1.1 边界框 # bbox是bounding box的缩写 dog_bbox , cat_bbox = [ 60 , 45 , 378 , 516 ] , [ 400 , 112 , 655 , 493 ] def bbox_to_rect ( bbox , color ) : # 本函数已保存在d2lzh_pytorch中方便以后使用 # 将边界框(左上x, 左上y, 右下x, 右下y)格式转换成matplotlib格式: # ((左上x, 左上y), 宽, 高) return d2l . plt . Rectangle ( xy = ( bbox [ 0 ] , bbox [ 1 ] ) , width

动手学深度学习之图像分类案例1-2

心不动则不痛 提交于 2020-02-26 00:11:35
参考伯禹学习平台《动手学深度学习》课程内容内容撰写的学习笔记 原文链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/lesson/ZDRJ8BaRpFmqDwJafJAYGn 感谢伯禹平台,Datawhale,和鲸,AWS给我们提供的免费学习机会!! 总的学习感受:伯禹的课程做的很好,课程非常系统,每个较高级别的课程都会有需要掌握的前续基础知识的介绍,因此很适合本人这种基础较差的同学学习,建议基础较差的同学可以关注伯禹的其他课程: 数学基础:https://www.boyuai.com/elites/course/D91JM0bv72Zop1D3 机器学习基础:https://www.boyuai.com/elites/course/5ICEBwpbHVwwnK3C 引言 图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。图像分类的传统方法是特征描述及检测,这类传统方法可能对于一些简单的图像分类是有效的,但由于实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码来描述每一个图像类别,决定转而使用机器学习的方法处理图像分类问题。主要任务是给定一个输入图片,将其指派到一个已知的混合类别中的某一个标签。 Kaggle上的图像分类(CIFAR-10) 现在

动手学深度学习之Task09:目标检测基础;图像风格迁移;图像分类案例1

江枫思渺然 提交于 2020-02-25 23:51:18
目标检测基础 9.4 锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:它以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框(anchor box)。我们将在后面基于锚框实践目标检测。 9.4.1 生成多个锚框 假设输入图像高为 h,宽为w。我们分别以图像的每个像素为中心生成不同形状的锚框。设大小为s∈(0,1]且宽高比为r>0,那么锚框的宽和高将分别为wsr和hs/r。当中心位置给定时,已知宽和高的锚框是确定的。 下面我们分别设定好一组大小s1,…,sn和一组宽高比r1,…,rm。如果以每个像素为中心时使用所有的大小与宽高比的组合,输入图像将一共得到whnm个锚框。虽然这些锚框可能覆盖了所有的真实边界框,但计算复杂度容易过高。因此,我们通常只对包含s1或r1的大小与宽高比的组合感兴趣,即 (s1,r1),(s1,r2),…,(s1,rm),(s2,r1),(s3,r1),…,(sn,r1). 也就是说,以相同像素为中心的锚框的数量为n+m−1。对于整个输入图像,我们将一共生成wh(n+m−1)个锚框。

《动手学深度学习》目标检测基础;图像风格迁移;图像分类案例1

坚强是说给别人听的谎言 提交于 2020-02-25 12:33:09
目标检测基础;图像风格迁移;图像分类案例1 目标检测基础 锚框 交并比 标注训练集的锚框 图像风格迁移 模型 损失函数 内容损失 样式损失 总变差损失 总损失函数 图像分类案例1 任务 模型 目标检测基础 在图像中标出目标图像的位置,成为目标检测。 锚框 以每个像素为中心,生成多个大小和宽高比不用的边界框,这些边界框就是锚框。 设输入图像高为 h h h ,宽为 w w w ,锚框大小为 s ∈ ( 0 , 1 ] s\in (0,1] s ∈ ( 0 , 1 ] 且宽高比为 r > 0 r>0 r > 0 。那么锚框的宽和高为 w s r ws\sqrt r w s r ​ 和 h s / r hs/\sqrt r h s / r ​ 。 为了减少计算复杂度,在我们取 w h n m whnm w h n m 个锚框中,我们只取包含 s 1 s_1 s 1 ​ 或 r 1 r_1 r 1 ​ 的组合,即 ( s 1 , r 1 ) , ( s 1 , r 2 ) , . . . , ( s 1 , r m ) , ( s 2 , r 1 ) , ( s 3 , r 1 ) , . . . , ( s n , r 1 ) (s_1,r_1),(s_1,r_2),...,(s_1,r_m),(s_2,r_1),(s_3,r_1),...,(s_n,r_1) ( s 1 ​ , r 1

动手学深度学习PyTorch-打卡3

两盒软妹~` 提交于 2020-02-24 23:02:36
一、数据增强 大规模数据集是成功应用深度神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。可以说,在当年AlexNet的成功中,图像增广技术功不可没。 常用的图像增广方法 翻转和裁剪 左右翻转图像通常不改变物体的类别。它是最早也是最广泛使用的一种图像增广方法。下面我们通过torchvision.transforms模块创建RandomHorizontalFlip实例来实现一半概率的图像水平(左右)翻转。 apply ( img , torchvision . transforms . RandomHorizontalFlip ( ) ) 上下翻转不如左右翻转通用。但是至少对于样例图像,上下翻转不会造成识别障碍。下面我们创建RandomVerticalFlip实例来实现一半概率的图像垂直(上下)翻转。 apply ( img , torchvision . transforms . RandomVerticalFlip ( )

图像分类(动手学深度学习)

狂风中的少年 提交于 2020-02-23 04:28:15
图像分类 本教程源代码目录在 book/image_classification , 初次使用请参考 PaddlePaddle 安装教程 ,更多内容请参考本教程的 视频课堂 。 背景介绍 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。在本教程中,我们专注于图像识别领域的一个重要问题,即 图像分类 。 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。 图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。 一般来说,图像分类通过手工特征或特征学习方法对整个图像进行全部描述,然后使用分类器判别物体类别,因此如何提取图像的特征至关重要。 在深度学习算法之前使用较多的是基于词袋(Bag of Words)模型的物体分类方法。 词袋方法从自然语言处理中引入,即一句话可以用一个装了词的袋子表示其特征,袋子中的词为句子中的单词、短语或字。对于图像而言,词袋方法需要构建字典。最简单的词袋模型框架可以设计为 底层特征抽取 、 特征编码 、 分类器设计 三个过程。 Now: 而基于深度学习的图像分类方法,可以通过有监督或无监督的方式 学习

你不得不了解的深度学习知识(一)

自古美人都是妖i 提交于 2020-02-15 14:08:34
你不得不了解的深度学习知识(一) 1 深度学习 深度学习是机器学习的一个分支(最重要的分支) 机器学习是人工智能的一个分支 (1)大白话解释深度学习 假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层由许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。对复杂任务来说,调节阀的总数可以成千上万甚至更多。水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统。 那么,计算机该如何使用这个庞大的水管网络来学习识字呢? 比如,当计算机看到一张写有“田”字的图片,就简单将组成这张图片的所有数字(在计算机里,图片的每个颜色点都是用“0”和“1”组成的数字来表示的)全都变成信息的水流,从入口灌进水管网络。 我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。这时,因为输入的是“田”这个汉字,等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记由“田”字的管道出口流出来的水流最多。如果是这样,就说明这个管道网络符合要求。如果不是这样,就调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的水最多。 这下