0%

2018年9月11日 下午3:54

A星算法详解(个人认为最详细,最通俗易懂的一个版本) - CSDN博客

  1. 无法回答为啥通过这样的迭代方式,就可以产生最终的答案
  2. 我的理解
    1. 算法的目的:能够设计出跳出局部最优解,从而选取全局最优解
    2. 方法:利用堆栈来记录自己的候选位置,配套设计了一套约束,用来限制下一点的走向。
  3. 评价函数的定义也是A*算法的难点,相同的问题可以定义不同的评价函数,会有不同的效果
  4. A*算法在树模型下的处理,不同的模型,不同点在于:寻找下一个点的方式不同,在URL连接中的例子,值寻找当前点周围的满足要求的8个点,而树中是寻找子节点。同样也会有堆栈来保存候选点这些概念。总结来说:不同点就是在某个大致的动作中,换了一些具体的操作行为。

2018年9月11日 下午3:54

模式识别:模拟退火算法的设计与实现

  1. 概率的角度去理解
    1. 若p(∆E)大于[0,1]区间内的随机数,则仍旧接受新状态j为当前状态
    2. 这里和遗传算法一样,都是通过随机数+概率(压缩到0-1)去实现“随机的概念”,从而跳出局部最优解
  2. 如何跳出最优解
    1. 同一个答案,两个角度理解。看上一个问题就行。
  3. 这三点就解释了数学公式的现实意义
  4. 模拟退火算法和ML中训练模型的联系
    1. 在给出的伪代码中,温度T(K),这是通过外层循环去不断的遍历不同的温度T,从而选到最好的值
    2. 内层遍历中,是取遍历不同的Si,从而选取最优的Si
    3. 其实也可以把这两层循环理解成训练的过程
    4. 模拟退火算法心得 - 刘润佳 - 博客园这篇文章最后作者的总结,也印证了我的想法。
  5. 请大神们用最通俗的方法帮我解释一下退火算法? - 知乎这里面的这个例子,也笼统的让我们感受一下这个算法的技巧感。

2018年9月10日 下午3:05

  1. 课本、视频上学习的算法知识,颗粒度太大,具体到编程的时候,我们需要最细的颗粒,很有可能需要重新学习这个算法
    1. 技巧,论文中有很多算法他已经给出了伪代码,我终于体会到伪代码的作用的。他就是想把细颗粒的东西通过代码的形式来表达出来。
    2. 如果数学公式推导不出来,那么你程序一定写不出来,因为程序是数学公式结合程序语言特点而写成的
  2. 项目结构,各个类之间的关系。可能有组合,继承等关系。但是现在项目中,我见到的都是没有使用继承关系的。组合关系倒是比较常见

tracks的理解
在task3中照片如果没有exif会报错
MVE中焦距与特征归一化
task4_incremental_sfm的初始相机对
task3_ba/task4的区别
问题

2018年9月7日 下午3:54

CMake 构建项目教程-简介 - wanghaiyang1930 - 博客园

  1. 用cmake强调编译、链接的过程,其中涉及到动态库和静态库的概念。这些虽然也比较简单,但是在IDE的统治下,IDE都对这些进行了封装,使用者是感受不到的
  2. 对于一个cmakelist.txt来说,一般有:一个输入(include)和输出(链接库,或者可执行文件)
  3. 项目的根目录下:要add_subdirectory,找到子文件夹

2018年9月7日 下午3:53

2019年3月31日 下午8:06
层次化gitignore
2019年3月5日 下午8:29
EXIF
GPS坐标转换
照片格式

Undefined symbols for architecture x86_64:错误
ubuntu16安装Parallels-Tool
linux下使用Bundler + CMVS-PMVS
修改完.gitignore之后
Clion进行debug的设置

C++ 类访问控制
cmake:设置编译选项的讲究(add_compile_options和CMAKE_CXX_FLAGS的区别)
Homebrew的两个优点
cmakelist管理的一般c++项目结构