基于递归学习法以及记忆化的学习方法论

Posted Clo91eaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于递归学习法以及记忆化的学习方法论相关的知识,希望对你有一定的参考价值。

基于递归学习法以及记忆化的学习方法论

​ 递归学习法,即在学习一个东西A时遇到了不熟悉的知识点B,于是去学习知识点B又遇到了知识点C,……当学到了最底层的知识点X,return回到上一级,继续学习尚未学完的知识点W。

​ 用代码表示就是

#include<stdio.h>
void learnA(){
	...
    if (!B.learn())
        learnB();
    ...
    return;
}

void learnB(){
	...
    if (!C.learn())
        learnC();
    ...
    return;
}

...
    
void learnX(){
    ...
    return;
}

​ 这种学习方法花费较大时间的情况下学习知识点A。但是由于我们在学习知识点A的同时不断学习知识点A的底层,因此我们能够把握A的整个框架。但是,这种学习方法有两个很重要的缺点,学过递归的朋友们都知道,比起顺序学习来说,递归学习因为要不断地调用函数,因此会产生较大的时间损耗,另一个缺点是当一个函数在它内部调用了它自己,就down了,如何避免这种情况的发生呢?答案是:记忆化与查文档。

​ 记忆化,在程序中表示成递归过程中,通过一个数组储存函数运行结束时的状态,这种方法在非线性动态规划中经常使用。但是我们人脑毕竟不是计算机,没有内存,怎么记忆化?我的方法是:写博客。这样在下一次学习时,遇到重复的部分可以跳过,达到所谓“记忆化搜索剪枝”的功能。

​ 通过写博客,记录下自己学习某样东西的路程,这条路程有的时候会很曲折,绕了一个大弯,有的时候又自己调用自己,或者自己调用别人调用自己(说的就是你,CSDN),因此我们尽量通过官方文档的查阅来使得弯绕的少一些,小一些,并且官方文档中的调用较为完备,在一个较为完备的系统中学习更加有利于自己的学习路线。

​ 此方法论正通过不断实践改进中。

AR学习笔记:阈值二值化优化与颜色分割的优化

AR学习笔记(七):阈值二值化优化与颜色分割的优化

接下来改进一下阈值二值化的方法,使分割更加完整,然后改进颜色分割的方法,让阈值适应不同牙齿颜色以及光照条件


阈值二值化的优化

当前方案

图像预处理

图像预处理包括尺寸修改、限制对比度自适应直方图均衡、中值滤波,其中CLAHE能够增强牙齿和牙龈间的对比度,中值滤波可以削弱牙齿反光从而减少噪声

下面是不同参数下的CLAHE的效果

ClipLimit = 2.0

ClipLimit = 4.0

ClipLimit = 8.0

结论:当ClipLImit上升后,对比度增强,但牙齿底部颜色失真严重,灰度值变低,这里取3.0比较合适,对于其它样本图片同样适用

下面是CLAHE对不同均匀光照(暗/正常/亮)下图片的效果




结论:CLAHE能够使得在不同光照下的图片亮度趋向于一致,但是对于不均匀光照,没有统一局部光照的效果
ps.矫正光照的其他方法:在HSV颜色模型下,使多幅图像的V参数达到一致

阈值二值化

下面是对于均匀光照(暗/正常/亮)条件的图片,采用不同阈值的二值化处理效果对比

thresh = 100



thresh = 120

下面是对于不均匀光照(暗/正常/亮)条件的图片,采用不同阈值的二值化处理效果对比

thresh = 100


thresh = 120


结论:
由于阈值thresh固定,所以只在正常光照下,二值化的效果比较好,对于光照过强或过弱情况,轮廓的提取存在较大误差


优化方案

otsu法

otsu法(最大类间方差法,大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别来划分。 所以可以在二值化的时候采用otsu算法来自动选取阈值进行二值化。
otsu算法被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响。

代码参考:OTSU算法介绍及openCV的C++实现
下面是测试结果:

ostuthresh = 107

ostuthresh = 111

ostuthresh = 117

结论:使用ostu得到的阈值还需要进一步地优化,但优化难度比较大,目前通过对多幅图像测试,采取×1.3的方法来拟合合理阈值,相比固定阈值的优化有一定的改善

顶帽变换

可以用来矫正不均匀光照,下面是不同结构元素尺寸(2121,3131,4141,5151)的测试结果,效果不好

分块阈值法

参考:光照不均匀图像分割技巧


颜色分割的优化

当前方案

图像预处理同样包括尺寸修改、限制对比度自适应直方图均衡、中值滤波,然后在HSV空间下进行颜色分割
分割效果见:AR学习笔记(五):边缘分割优化和提取特征点

优化方案

HSV模型分割

查找表方法

以上是关于基于递归学习法以及记忆化的学习方法论的主要内容,如果未能解决你的问题,请参考以下文章

AR学习笔记:阈值二值化优化与颜色分割的优化

AR学习笔记:阈值二值化优化与颜色分割的优化

AR学习笔记:阈值二值化优化与颜色分割的优化

AR学习笔记:阈值二值化优化与颜色分割的优化

详细实例说明+典型案例实现 对递归法进行全面分析 | C++

根据人类的学习与记忆过程来高效学习