0%

2019年3月19日 下午4:00
受耗叔的启发,根据我的需要我学习了两个命令
打造高效的工作环境 – Shell 篇 | | 酷 壳 - CoolShell

  1. mac 的 find 命令小结 - 简书
  2. Mac terminal find 指令常用详解 - 学习笔记 - CSDN博客
    1. 当前路径下,包含Tr的文件
      1. find . -regex ^.*Tr.*$ -maxdepth 1
      2. 当前路径下,找到以.png结尾的文件
      3. find . -maxdepth 1 -regex .*\.png
  3. 8个不可不知的Mac OS X专用命令行工具 - SegmentFault 业界资讯 - SegmentFault 思否
    1. 正则
    2. 用sublime打开文件,必须全名
      1. open -a sublime\ Text 备份日历

2019年7月23日 下午8:41
压缩当前目录下所有文件,指令:zip -r test.zip ./ -x .DS_Store

2019年3月19日 下午2:23

  1. GitHub - dluvizon/vehicle-dsm: Vehicle detection and speed measurement system
    1. 自己调试:Missing decoder: H.264 · Issue #1 · dluvizon/vehicle-dsm · GitHub
      1. sudo apt-get install gstreamer1.0-plugins-bad
    2. 依赖:libtool autoconf libgstreamer1.0-dev libtesseract-dev libleptonica-dev gcc 5.5 (or lower)

2019年3月18日 下午3:25

补充:

2019年6月27日 上午9:44

  1. 归一化图像坐标:
    1. 整体上来理解,一共有三个物理几何模型
      1. 相机(不是观测点)的旋转平移
      2. 投影变换,其实就是相似三角形
      3. 物理坐标与像素坐标之间的转换,其实就是一个仿射变换
    2. 归一化图像坐标发生在投影变换中。
      1. 在投影变换中,就如我所有一共涉及到两个量Z和f(焦距)
      2. 归一化中的’一‘代表:把模型进行微缩,所有的坐标变量(x,y, z,f)这些值都保持在0~1之间。这就叫做归
      3. 这样做的好处:你能够提高模型的准确率,具体我也说不清楚,感觉和机器学习中的归一化有类似的功能。

2019年3月18日 下午3:34

明确几个概念:

  1. 图像像素坐标系是一个二维平面,又称为像平面,实际上就是摄像头的CCD传感器的表面
    1. 每个CCD传感器都有一定的尺寸,也有一定的分辨率,这个就确定了毫米与像素点之间的转换关系。举个例子,CCD的尺寸是8mm X 6mm,帧画面的分辨率设置为640X480,那么毫米与像素点之间的转换关系就是80pixel/mm。”设CCD传感器每个像素点的物理大小为dx*dy,相应地,就有dx=dy=1/80。
    2. CCD的长宽比例和图像分辨率的长宽比例相等
    3. 单目相机标定原理 - Make It - 开源中国
  2. 畸变的产生原因:
    1. 内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解
    2. 径向畸变:
      1. 产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲径向畸变主要包含桶形畸变和枕形畸变两种
    3. 切向畸变:
      1. 产生的原因透镜不完全平行于图像平面,这种现象发生于成像仪被粘贴在摄像机的时候

这个过程涉及到4个坐标系,而不是原来以为的三个

  1. 世界坐标系(3维)
  2. 相机坐标系(3维)
    1. 两个三维坐标系分别对x,y,z单独进行转换形成的坐标系
  3. 图像物理坐标系(2维)
    1. 投影关系形成的投影坐标系
  4. 图像像素坐标系(2维)
    1. 图像数字化形成的坐标系
  5. 世界坐标系和相机坐标系,图像坐标系的关系 - waeceo的专栏 - CSDN博客

分别对x,y,z单独进行转换:外参数(R,T)

注:这里只说明了R旋转 ,没有说T平移

投影关系:从三维转化为二维的关键步骤

  1. 图中x与X之间的关系有两个参数:Z,f。我总是一般下意识的只有一个。
  2. 数学如何表示几何关系
    1. 几何关系—》比例关系表示—》等式组表示—》矩阵表示
  3. 矩阵表示时就需要变成齐次形式

图像数字化

  • 上图表示的只表示旋转,加上缩放以后就有1/dx 1/dy了
  • 注:一般情况下是有角度“sita”,在重建中我们理解“sita = 0” -> cos = 1 ->sin = 0

    重要变量意义:
  1. (u0,v0)表示:O1在u,v 中的坐标
  2. dx dy表示:像素在轴上的物理尺寸。其实就是一个比例关系,当我们需要换算为物理尺寸为单位时,就需要:像素尺寸/物理尺寸比例 = 物理尺寸中的大小表示

合集:

2019年3月15日 下午4:34

有价值的内容:

  1. 当前这份笔记的评价
  2. 递归的理解:
    1. 具体内容写在这三篇文章里,需要全打开看。
    2. 114-51-78
    3. 114. Flatten Binary Tree to Linked List
    4. 51. N-Queens这里突出“处理单元”的重要性,对我们设计递归函数有重要的意义
    5. 78. Subsets 讲解了递归和遍历的联系与区别,什么时候更适合使用递归
  3. 总结我重新对内容进行了分类
    1. 这篇文章存在的问题:
      1. 遍历这个概念我虽然总结的比较到位,但是遍历他不能给你提供解决问题的思路
      2. 他是我们自己提出解决思路之后,当程序实现,我们可以把思路再拆解成各个部分,找到每个小问题的遍历对象,并转化为遍历问题。
      3. 因为,程序本身就是人思维的计算机实现。而分解成遍历问题就是你进行转换技巧
    2. 而薛健的课上学到的内容正好与这相反,薛健的目的主要是为了让你找到解决问题的思路,他不操心实现。

2018年8月20日 上午10:52
递归现在我觉的有两种思路:

  1. 为了达到并行的效果
    1. 51+78
  2. 为了能够将大任务==分解为=》小任务+小任务合并
    1. 114

总结

递归的成立条件
统计表长度设置(哈希表长度)
C++加速IO
递归写法的不同

地牢游戏——没做,学分析的方法
53. Maximum Subarray
198. House Robber递归有递归成立的条件,dp也有自己成立的条件。递推公式要成立,但是我们一般是无法严格证明的,更多需要我们拿例子去测试我们感觉的递推公式是否正确。
76. Minimum Window Substring——没过。学会只用动态双指针遍历一个数组等各种对象,并且学会选择合适的数据结构,让一些判断等操作可以简洁明了,并且各个数据结构之间可以进行比较。
49. Group Anagrams这道题就是先统计,在统计的过程中分好类。在这道题中,sort排序绝对功不可没
199. Binary Tree Right Side View
199补充在BFS和DFS基础上进行更改。
114. Flatten Binary Tree to Linked List使用递归,将每个子树作为一个元素进行处理,自底向上的处理tree。(修改数据本身是一个表象,也正是因为他是修改数据本身,那么他就不满足递归的并行分析方法)
315. Count of Smaller Numbers After Self归并排序为模板,解决乱序问题的同时,找到累加出最后结果的方法。(这道题说明了套用模板可能遇到的问题)
51. N-Queens就是一个典型的并行问题处理
78. Subsets在递归中处理每个元素时,将问题再次转换为进栈和出栈的问题
55. Jump Game通过统计,将问题转换为另一个问题
402. Remove K Digits将问题变成一个进栈和出栈的问题
1363 — Rails将问题变成一个进栈和出栈的问题

2019年3月15日 下午1:24

2019年3月16日 下午3:36

生成模型和判别模型不可以通用吗?

  1. 我们已知:模型是对“关系”的描述方式
  2. 生成模型和判别模型他们描述的关系是?
    1. 生成模型:(x,y)同时出现的可能性
    2. 判别模型:x与y关系强弱的大小
  3. 我们已知:模型很傻,我们给他啥他就能学到啥
  4. 共同点:
    1. 样本相同:两个模型的输入数据可以是相同的,也就是样本是相同的。
    2. 目的大致相同:我们要用已知样本去估计出一个描述某种关系的模型。
  5. 由于我们具体目的的不同,一个是求P(x,y)一个是P(y|x),我们就要选择分别选择合适的模型,因为不同的模型本身就有各自擅长,也由于目的的不同,我们选择的运用的知识也不同。

2019年3月15日 下午1:24
机器学习“判定模型”和“生成模型”有什么区别? - 知乎
生成模型 VS 判别模型 (含义、区别、对应经典算法) - Taylover-Cam的博客 - CSDN博客

任正非:机器学习就是概率统计

其实机器学习的任务是从属性X预测标记Y,即求概率P(Y|X);

从建模的角度来区分

判别模型是对条件概率p(Y|X)建模,生成模型是对联合概率P(X,Y)建模。
机器学习 - 判定模型与生成模型的区别 - SegmentFault 思否
最基本的区别就是建模对象不同, 但目的都是求出P(Y|X)

  1. 判别模型Discriminative Model:
    1. 直接对P(Y|X)进行建模, 判别模型不考虑如何生成 X 和 Y 的联合事件, 比如 SVM 只考虑把点分开而已, 鲁棒性比较强, 但需要更多的训练数据.
  2. 生成模型 Generative Model:
    1. 利用贝叶斯公式, 先对P(X|Y)进行建模, 然后利用训练集中的 P(Y) 求出联合概率分布 P(X,Y), 最后除以X的概率分布P(X)得出我们的目标(P(Y|X)). 最常见的例子朴素贝叶斯. 生成模型需要做出更多的假设, 因此适用于数据较少的情况下, 但鲁棒性不强, 因为假设错了就效果很差了.
  3. 给一个鲁棒性不强的栗子,
    1. 外星人来地球拿了一个数据集包含了地球人的身体特征, 标签有2类:男和女. 如果训练数据集只有1%是数据是男性, 而99%是女性. 那么外星人科学家就有可能认为给定随机一个人类, 该人类是女性的P(y=female)概率是99%, 按照这个假设去做生成模型就会很不给力, 但判别模型就没有这个问题.

概念的理解:

  1. 机器学习中任务从属性X预测标记Y
    1. 判别模型求的是P(Y|X),即后验概率
    2. 生成模型最后求的是P(X,Y),即联合概率。
  2. 从本质上来说:
    1. 判别模型之所以称为“判别”模型,是因为其根据X“判别”Y;
    2. 生成模型之所以称为“生成”模型,是因为其预测的根据是联合概率P(X,Y),而联合概率可以理解为: “生成”(X,Y)样本 的概率分布(或称为 依据);
    3. 具体来说,机器学习已知X,从Y的候选集合中选出一个来,可能的样本有(X,Y_1), (X,Y_2), (X,Y_3),……,(X,Y_n),
    4. 实际数据是如何“生成”依赖于P(X,Y),那么最后的预测结果选哪一个Y呢?那就选“生成”概率最大的那个吧~

具体的例子:

假设你现在有一个分类问题,x是特征,y是类标记。用生成模型学习一个联合概率分布P(x,y),而用判别模型学习一个条件概率分布P(y|x)。
用一个简单的例子来说明这个这个问题。假设x就是两个(1或2),y有两类(0或1),有如下如下样本(1,0)、(1,0)、(1,1)、(2,1)
学习到的联合概率分布(生成模型)如下:
————-—0———1—
——1— 1/2— -1/4
——2—— 0 ——1/4
学习到的条件概率分布(判别模型)如下:
————-—0———1—
——1—— 2/3— 1/3
–—2—— 0 —-— 1
在实际分类问题中,判别模型可以直接用来判断特征的类别情况,而生成模型,需要加上贝叶斯法则,然后应用到分类中。但是,生成模型的概率分布可以还有其他应用,就是说生成模型更一般更普适。不过判别模型更直接,更简单。

2019年3月14日 上午9:46
两个角度去解释仿射变换与透视变换

角度1:

OpenCV图像变换(仿射变换与透视变换) - 知乎
仿射变换和透视变换的数学原理不需深究,其计算方法为坐标向量和变换矩阵的乘积,换言之就是矩阵运算。在应用层面,仿射变换是图像基于3个固定顶点的变换,如图所示:


图中红点即为固定顶点,在变换先后固定顶点的像素值不变,图像整体则根据变换规则进行变换
同理,透视变换是图像基于4个固定顶点的变换,如图所示:

角度2:

仿射变换与透视变换 - ganguowa的博客 - CSDN博客

  1. 透视变化
    透视变换与透视投影密切相关.我们先来理解一下什么是透视投影,所谓透视投影,通俗地讲就是“远小近大”.前段时间,一张图片在网上流行.如果你明白了透视原理,就不会出现”道理我都懂,可是 鸽子为什么那么大”的迷之尴尬.

    透视投影是用中心投影法,沿着一系列最终汇聚到一个被称为投影中心的的点的投影线,从而将三维世界中的点的投影变换到二维图像中.

    而透视变换是一种特定的单应性变换(这种单应性变换也称为平面单应性变换),,是基那个同一个三维物体分别投影到两个不同的投影平面下的两幅图联系起来.
  2. 仿射变换
    仿射变换,有成仿射映射,是指在集合中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间.
    实际上,设f(x)=Ax+b为仿射变换,则A可分为四个部分:平移、旋转、缩放、扭曲但很多资料里面单指只包含平移和旋转的变换为仿射变换。我不清楚是怎么回事。在图像处理里面,仿射变换里面也不包括扭曲变换和缩放变换。相机标定里面,我们遇到的都是刚体变换,不会发生大小的变换和扭曲的现象。

2019年3月14日 下午9:03

  1. Sift的本质其实是尺度空间,sift只是对尺度空间的实现方式之一
    1. 具体看这里 sift
  2. 深度学习的宽度代表 微观特征,深度代表宏观特征
    1. 网络的宽度和深度
  3. 他们共同的特性是:
    1. 都是提特征
    2. 提的特征尽可能的要有各种不变性各种粒度的特征都要考虑到