首页 AI学术青年与开发者社区

计算机视觉基础入门课程(从算法到实战应用)

开课时间:所有课时已更新完成,可随时开始学习
开课时长:24个课时,12次课
机器学习 基础入门
会员免费
现价:¥699.00
原价:¥999.00

  开通会员,立省699元 立即开通

  当前课程,会员领券立减59元>>

该课程已关闭

三大任务:

识别,检测(recogniaztion+localization),分割,其难度逐渐提升)

应用:

1.目标追踪

2.视频分割(对于无人驾驶十分重要)

3.图像风格迁移(GAN),直播换脸(CycleGan)

4.视频生成(lstm,预测未来,股票预测,可以先预测来分割以减少计算量)

lstm(hochreiter,97)是rnn(williams,89)的改进版

视觉识别演进:HOG、DPM ->AlexNet(RCNN,8layers) -> VGG(RCNN, 16layers) ->ResNet(Faster RCNN, 101layers)

主流深度学习平台:TensorFlow,caffe,Pytorch

图像识别:Alexnet,VGGnet,GoogleNet,RestNet,DenseNet

目标检测:

Fast-rcnn,faster-rcnn,Yolo,Retina-Net

图像分割:

FCN,Mask-Rcnn

目标跟踪:

GOTURN,ECO

图像生成:

GAN,WGAN(可以考虑让静态图片动起来)

光流:FlowNet(辅助性很强的工作)

视频分割:Segnet(无人驾驶基础)

[展开全文]

import numpy as np

import matplotlib.pyplot as plt

from sklearn import svm, datasets

# 导入数据集

iris = datasets.load_iris()

X = iris.data

y = iris.target

h = .02 # 网格中的步长

# 创建支持向量机实例,并拟合出数据

C = 1.0 # SVM正则化参数

svc = svm.SVC(kernel='linear', C=C).fit(X, y) # 线性核

rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(X, y) # 径向基核

poly_svc = svm.SVC(kernel='poly', degree=3, C=C).fit(X, y) # 多项式核

lin_svc = svm.LinearSVC(C=C).fit(X, y) #线性核

# 创建网格,以绘制图像

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1

y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1

xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))

# 图的标题

titles = ['SVC with linear kernel', 'LinearSVC (linear kernel)', 'SVC with RBF kernel', 'SVC with polynomial (degree 3) kernel']

 

for i, clf in enumerate((svc, lin_svc, rbf_svc, poly_svc)):

# 绘出决策边界,不同的区域分配不同的颜色

plt.subplot(2, 2, i + 1) # 创建一个2行2列的图,并以第i个图为当前图

plt.subplots_adjust(wspace=0.4, hspace=0.4) # 设置子图间隔

Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) #将xx和yy中的元素组成一对对坐标,作为支持向量机的输入,返回一个array

# 把分类结果绘制出来

Z = Z.reshape(xx.shape) #(220, 280)

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8) #使用等高线的函数将不同的区域绘制出来

# 将训练数据以离散点的形式绘制出来

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)

plt.xlabel('Sepal length')

plt.ylabel('Sepal width')

plt.xlim(xx.min(), xx.max())

plt.ylim(yy.min(), yy.max())

plt.xticks(())

plt.yticks(())

plt.title(titles[i])

plt.show()

[展开全文]

图像分类

挑战:

1)光照变化

2)形变

3)尺度变化

4)类内变化

f为训练的model,y为输出的标签(不应该是预测值吗?)

训练集要尽量多的包含样本的不同形态。图像不能直接以RGB的形式扔进模型,需要用图像特征来描述图像。

手工设计特征

1、全局特征:

1)颜色。颜色直方图。

2)形状(把形状抠出来,加一个PCA的降维)。

2、局部特征:

1)shape context

2)纹理(很多时候目标有均匀分布的纹理,gabor对纹理特征提取)

SIFT特征:局部特征。一般是128维,他会计算一个小的图像区域,这个小的图像区域分成了4*4的16个格,每个格子里面会计算一个8维的一个梯度的wicter。然后把16个wicter拼成一个128的一个特征,来作为对这块区域的描述。主要用于图像分类和图像匹配任务。

Hog特征:主要用在检测里面,Hog对于处理目标的形状非常好,能精确捕捉目标的形状。检测、目标跟踪。

LBP特征:对一块局部的区域进行编码,用于人脸分类效果很好。

Harr特征:有多个滤波器,对于不同部分有不同相应。

神经网络由神经元组成,神经元用激活函数来描述。

卷积神经网络网络:

卷积层+池化层+全连接层

损失函数反向传导调整参数。

[展开全文]

计算机三大任务

1)识别

现在已经往更专业的方向做

计算机视觉更精细的识别,如工业上更多特定的目标识别:车牌识别、人脸识别(表情识别)。

2)目标检测=识别+定位

对于学术界来说是一个有趣的方向,因为非常有用但又比较难做。

给定一张图像,我们需要把我们感兴趣的前景目标检测出来,并贴上类别标签。

应用:

行人检测。在一个智能摄像头的终端,我需要把摄像头中的所有行人检测出来,用处:如果摄像头中的行人的人流量非常大,就可以把摄像头里面的人群给估计出来,对于将来可能发生的异常事件,起到一个预警作用。

车辆检测。通过检测道路中的车辆,就可以估计车辆的个数,来实时监控道路车辆的密度,对于疏散城市交通也是非常有帮助的。

3)图像分割

a、图像语义分割

给定一张图片,要想将整个图片割成一块一块独立的个体。我要知道哪些地方是前景哪些地方是背景,目标是什么。

b、个体的分割=检测+分割

不仅要区分不同的目标,还要知道目标在那个位置。

[展开全文]

图像分类具有的挑战?

a. 光照的变化

b. 形变

c. 类内变化

如何用数学的方法描述图像的分类?

常用的损失函数softmax

网络的泛化能力?

1. 制作合适的训练集(数据太重要了)

图像特征的提取?

深度方法vs传统方法

    a. 颜色直方图(全局特征)

    b. 形状特征(全局特征)

    c. 局部特征

    d. 纹理特征

传统的图像特征?

SIFT 一般是128维的

HOG 一般使用在检测里面,对形状描述比较好

LBP 用于人脸

Harr 角点特征,对于处理形状比较敏感的任务比较有用

svm的原理?

常用的激活函数?

基本的神经网络-》卷积神经网络?

常见的损失函数?

       最重要的是siamese网络contrastive loss

[展开全文]

图像分类具有的挑战?

a. 光照的变化

b. 形变

c. 类内变化

如何用数学的方法描述图像的分类?

常用的损失函数softmax

网络的泛化能力?

1. 制作合适的训练集(数据太重要了)

图像特征的提取?

深度方法vs传统方法

    a. 颜色直方图(全局特征)

    b. 形状特征(全局特征)

    c. 局部特征

    d. 纹理特征

传统的图像特征?

SIFT 一般是128维的

HOG 一般使用在检测里面,对形状描述比较好

LBP 用于人脸

Harr 角点特征,对于处理形状比较敏感的任务比较有用

svm的原理?

常用的激活函数?

基本的神经网络-》卷积神经网络?

常见的损失函数?

       最重要的是siamese网络contrastive loss

[展开全文]
In_Sun · 2019-03-14 · 图像分类介绍 0

AlexNet : 5 个卷积层 2 个全连接层

VGGNet : 层数更多, feature map 维度不断在增加尺寸在减少

GoogleNet : 使用了1*1的卷积,用来降维

    average pooling

ResNet : 使用残差模块,突破了深度极限

 

训练技巧 - 预处理:

1. 数据增强(Data augumentation):

水平翻转, 随机裁剪, 平移变换, 颜色光照变化

训练技巧 - 防止过拟合:

2. Droupt 

其他技巧:

1. 正则化

2. batch Normalization

 

caffe :

主要的组成部分 Blob layer Net

 

[展开全文]

三大任务:

识别,检测(recogniaztion+localization),分割,其难度逐渐提升)

应用:

1.目标追踪

2.视频分割(对于无人驾驶十分重要)

3.图像风格迁移(GAN),直播换脸(CycleGan)

4.视频生成(lstm,预测未来,股票预测,可以先预测来分割以减少计算量)

lstm(hochreiter,97)是rnn(williams,89)的改进版

视觉识别演进:HOG、DPM ->AlexNet(RCNN,8layers) -> VGG(RCNN, 16layers) ->ResNet(Faster RCNN, 101layers)

主流深度学习平台:TensorFlow,caffe,Pytorch

图像识别:Alexnet,VGGnet,GoogleNet,RestNet,DenseNet

目标检测:

Fast-rcnn,faster-rcnn,Yolo,Retina-Net

图像分割:

FCN,Mask-Rcnn

目标跟踪:

GOTURN,ECO

图像生成:

GAN,WGAN(可以考虑让静态图片动起来)

光流:FlowNet(辅助性很强的工作)

视频分割:Segnet(无人驾驶基础)

[展开全文]

图像分类:

挑战:1、光照条件;

2、形变;

3、同一类的多种展现形式。

定义:基于误差最小化构建分类函数模型,然后使用模型预测。

如何评价分类器的好坏:泛化能力

如何提高泛化能力:通过特征描述图像。

三部曲:a)提取特征;b)根据数据和标签训练分类器;c)预测分类。

图片特征:

全局特征:颜色直方图,形状;

局部特征:某个部位;

纹理特征:经过滤波得到纹理。

例如:sift(局部特征)、hog(检测)、LBP(人脸识别)、harr

分类器:svm间隔最大化

更好的特征:CNN特征

原因:学习出来的CNN特征具有更好的泛化能力,具有平移、尺度、旋转等不变性,鲁棒性比较好。

如何学习CNN特征:构建神经网络。

构建卷及网络:激活函数;卷基层(底层特征、中层以及高层);池化层;全连接层;损失函数

误差反传:正传计算出损失;反向传播误差,计算梯度和更新参数。

[展开全文]
zzy1030 · 2019-03-13 · 图像分类介绍 2
模型泛化能力
遮挡、尺度、旋转、位移不变性
颜色直方图
全局轮廓特征
局部轮廓特征
滤波器 纹理信息
神经网络:
神经元:激励函数Sigmoid ReLU
卷积:
输出 = ( 输入 + 2 * pad - kernel_size )/ stride + 1
pad:填充
池化:特征更加紧凑,位移不变性 maxpooling
全连接层:网络最后
损失函数:交叉熵、SOFTMAX、欧式距离、 
 
[展开全文]

相关课程

开课日期:深度学习鼻祖Hinton公开课视频,随到随学开始
免费课 29885
开课日期:2020-07-04 08:50开始
4906

授课教师

暂无教师
微信扫码分享课程