array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 cs231n训练营学习笔记(1) - 爱码网

cs231n这个课的前半部分看过两遍了,始终没能把这个课学完,希望参加训练营能督促我学完这门课,动手实践作业。

目录

一、关于猫视觉试验的结论:

二、关于第一课提到的目标分割概念:

三、关于Adaboost人脸检测算法实现

四、关于ImageNet,Pascal Voc这两个数据集

五、关于SIFT、SPM、HoG、DpM这四篇论文 

SIFT(Scale-Invariant Feature Transform)尺度不变特征变换

怎样做到使提取到的特征尺度不变的

SPM(Spatial Pyramid Matching)空间金字塔匹配

HoG(Histogram of Oriented Gradients)梯度方向直方图

DPM(Deformable Part-Based Model)可变形的基于部件的模型


cs231n训练营学习笔记(1)

一、关于猫视觉试验的结论:

视觉处理是从简单的结构开始,比如边缘 ,然后随着信息处理,大脑逐渐建立起复杂的理解。 

二、关于第一课提到的目标分割概念:

是由于当时目标识别太困难,所以想着先解决目标分割吧。就是把相近的像素点归到一起,并不知道这一堆像素点组成的东西是什么,但是可以把它们和背景以及其他东西分开。

之前在《图像处理、分析与机器视觉》上看过一些分割的知识,也一并整理到这里好了

分割在预处理和分析之间,分为完全分割和部分分割,两者区别是分割完后有没有重叠相交部分,没有的话就是完全分割。(这个定义并没有什么用的感觉)

分割主要使用的特征分三类:

1、全局知识,用图像特征直方图表示,比如阈值化分割的时候,可以用灰度直方图确定分割需要设定的阈值(我的理解,不知道对不对)

2、边缘  3、区域  这两点都是基于亮度、纹理等等

具体使用的分割方法后面遇到再一一具体说吧

三、关于Adaboost人脸检测算法实现

cs231n训练营学习笔记(1)

2001年计算机计算速度还很慢,这个算法可以实时识别人脸真的很厉害

这个图的左下角的黑白框是Haar特征,利用这种框在图片上划过,让黑白框和每一次覆盖的图像切片相乘(我把它简单的理解成矢量相乘),两者越相近,乘出来的结果越大。(这个过程就是Haar小波变换)比如两眼之间的部分比眼睛亮很多,就会和黑白黑的框相乘得到很大的值,以此识别出眼睛。

Adaboost是为了在Haar特征得到的非常多弱分类器(即效果都不太好)中选出一些可靠的。

具体过程是迭代训练更改权重的过程,即开始的时候所有训练样本都是权重相同的,每轮训练都把被分类器分错的样本权重提高,分对的样本权重降低。(额,好抽象,有时间代码实现一下,先挖个坑)

四、关于ImageNet,Pascal Voc这两个数据集

Pascal Voc 2006-2012的目标识别挑战赛数据集,20个类

ImageNet 有2.2万个类,4千万张图片,为了提供大量的训练数据,防止机器学习的高维模型过拟合,从而有更好的泛化能力

五、关于SIFT、SPM、HoG、DpM这四篇论文 

SIFT(Scale-Invariant Feature Transform)尺度不变特征变换

是一种用来提取特征的方法。可以用来匹配不同图片中的同一物体,物体发生旋转、缩放、透视等等。

怎样做到使提取到的特征尺度不变的

论文里写道:通过模糊图像梯度位置来实现不变性的。

这些位置是通过DoG(Difference-of-Gaussian)得到,即不同参数的高斯滤波结果相减,取最大或最小值位置。高斯滤波是低通滤波器,边缘通常为高频信号,DoG在相减中去除了相同的没有被过滤掉的正常图像,留下的是边缘。最大或最小值代表什么?

论文中还提到,通过构建图像金字塔,在每个级别重采样,来提高计算最大最小值的效率。是因为这个所以是尺度不变吗?

重采样还用到双线性插值

越读论文越发现各种不会的知识点,太多了基础的东西不会了

高斯滤波为什么低通,为什么边缘是高频信号,啥是双线性插值

可能要读《数字图像处理》

但是那个太信号与处理了,读不懂……

啊,咋办嘛

SPM(Spatial Pyramid Matching)空间金字塔匹配

把图像分块分成很多子区域,用不同尺度多次分块,于是形成空间金字塔,匹配就是计算相似度。

HoG(Histogram of Oriented Gradients)梯度方向直方图

统计各方向的梯度频率的直方图。可以用来行人检测。

就是把一堆堆的像素划分成cell,统计每个cell里每20°的梯度有多少,形成HoG特征向量。

再把一堆堆的cell划分成block,每个block里的cell的HoG特征向量归一化,防止不同cell间由于光照造成梯度差异。

把block里不同cell中的HoG特征向量首位相连,得到HoG描述子(咋收尾相连?)

然后用SVM(Support Vector Machine)支持向量机训练HoG特征向量(还是训练描述子?),得到匹配用的模板。

DPM(Deformable Part-Based Model)可变形的基于部件的模型

是一种分而治之的方法,把检测目标分解成检测各部件,这些部件间用“弹簧”连接。可以用来人脸检测

相关文章: