五大常用算法介绍及其在图像处理中的应用Yourcompanyslogan五大常用算法分治法1动态规划算法2贪心算法3分支限界法5回溯法4Yourcompanyslogan分治法设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治策略:对于一个规模为n的问题,若该问题可以容易地解决则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。(分治与递归)适用情况:1)该问题的规模缩小到一定的程度就可以容易地解决;2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;3)利用该问题分解出的子问题的解可以合并为该问题的解;4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。Yourcompanyslogan分治法分治法在每一层递归上都有三个步骤:分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题合并:将各个子问题的解合并为原问题的解。分治法的一般设计模式:Divide-and-Conquer(P)1.if|P|≤n02.thenreturn(ADHOC(P))3.将P分解为较小的子问题P1,P2,...,Pk4.fori←1tok5.doyi←Divide-and-Conquer(Pi)△递归解决Pi6.T←MERGE(y1,y2,...,yk)△合并子问题7.return(T)Yourcompanyslogan分治法分治法在医学图像处理中的应用传统的中值滤波算法需要对滤波窗口内的所有像素进行排序,再依据排序的结果选取中值。常用的排序算法有很多(插入排序、交换排序、选择排序、归并排序、分配排序),以快速排序为例,其算法的思想是将大问题分解为若干个规模较小但结构与大问题相似的问题,递归地解决这些小问题后,将小问题的解结合为大问题的解。2012年林清华等人提出一种新型快速中值滤波算法,主要应用于医学图像.文中方法利用中值滤波算法对滤波窗口内其他像素点的排列顺序不作要求的特点,将基于排序寻找中值的过程转换为基于分治查找中值的过程。在分治查找过程中,利用医学图像未受干扰时图像中像素值的变化是渐变的特性,优先选用中心点附近的像素值进行分治查找,以达到提高算法效率的目的。Yourcompanyslogan动态规划算法基本概念动态规划:在多阶段决策问题中,各个阶段采取的决策,一般来说是和时间(先后)有关的,决策依赖于当前状态,又随机引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,这种解决多阶段决策最优化的过程为动态规划。多阶段决策过程:有一类活动的过程,可将过程分为若干个互相联系的阶段,在它的每一阶段都要做出决策,从而使整个过程达到最好的活动效果,这种把一个问题看作是一个前后关联具有链状结构的多阶段过程,就称为多阶段决策过程。最优化原理:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。Yourcompanyslogan动态规划算法基本思想将过程分成若干个互相联系的阶段,即子问题,将各阶段按一定的次序排列好之后,对于某个给定的阶段状态,先求解子问题,然后从这些子问题的解得到原问题的解,对于重复出现的子问题,只在第一次遇到的时候对它进行求解,并把答案保存起来,让以后再次遇到时直接引用答案。适用条件(1)最优化子结构:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。(2)无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。(3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势)Yourcompanyslogan动态规划算法基本步骤动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。初始状态→│决策1│→│决策2│→…→│决策n│→结束状态图1动态规划决策过程示意图实际应用中可以按以下几个简化的步骤进行设计:(1)分析最优解的性质,并刻画其结构特征。(2)递归的定义最优解。(3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值。(4)根据计算最优值时得到的信息,构造问题的最优解。Yourcompanyslogan动态规划算法基于动态规划算法分割椎骨上下边界的方法基本思想根据椎骨上下缘灰度与形状信息来寻找椎骨的上下边界,在梯度图像中,最终的分割结果被定义为具有最小累积代价和的“路径”,该“路径”由梯度图像中每一列上唯一的点组成,即从梯度图像最左一列到最右一列计算累计代价,找出最后一列中累积代价和最小的像素点,利用背向搜索策略找到最终的最优“路径”,最终处在最优“路径”上的所有像素点构成了最终分割结果。算法实现过程1.计算椎骨图像梯度2.定义与计算边界累积代价3.使用背向搜索策略确定最优边界Yourcompanyslogan动态规划算法1.计算椎骨图像梯度:(,)(1,)(1,)xGxyHxyHxy(,)(,1)(,1)yGxyHxyHxy(,)(,)(,)xyGxyGxyGxyYourcompanyslogan动态规划算法2.定义与计算边界累计代价内部代价、外部代价、局部代价int,ijikExyxx,,extijijExyGxyintint,,,ijijextextijExyExyExyYourcompanyslogan动态规划算法3.使用背向搜索策略确定最优边界对梯度图像中每个像素点都计算累积代价之后,需要利用背向搜索策略找到最终的最优“路径”。首先找到最后一列中累积代价和最小的像素点,该累积代价代表了最优“路径”上所有点的累积代价和。从该像素点出发,依次向前追踪最优“路径”上的像素点,直到第一列。在最优路径上的所有像素点就构成了最终的目标边界轮廓,即最终的边界分割结果。Yourcompanyslogan动态规划算法椎骨分割结果(a)(b)(c)(d)(e)(f)Yourcompanyslogan贪心算法贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心法的基本思路:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。贪心策略适用的前提:局部最优策略能导致产生全局最优解。贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。对于范围相当广泛的许多问题它能产生整体最优解或者是整体最优解的近似解。Yourcompanyslogan贪心算法例在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。假设这四人分别为A、B、C、D。很明显,开始两人拿着手电筒过桥后,手电筒就在桥的另一边了,此时需要已经过桥的那两人中的一个再把手电筒送回桥这边。送手电筒回来过桥也要化时间,所以要选一个跑得比较快的。一个很自然的想法就是,每次让跑得最快的A陪着另一个过桥,然后A快速地跑回来,再陪下一位过去,最后所有人就都可以过桥了。AB→2A←1AC→5A←1AD→8一共就是2+1+5+1+8=17分钟。Yourcompanyslogan贪心算法但其实有更快的办法:AB→2A←1CD→8B←2AB→2一共是2+1+8+2+2=15分钟。这个办法的聪明之处在于让两个走得最慢的人同时过桥,这样花去的时间只是走得最慢的那个人花的时间,而走得次慢的那位就不用另花时间过桥了。可以把所有可能的方案都列举一遍,就会发现这是最快的方案了。Yourcompanyslogan贪心算法2015年周得水等人提出一种基于Dijkstra的贪心算法来实现模糊连接度的快速计算。基于模糊连接度的图像分割过程如下:(1)由用户在图像中选取种子点;(2)计算图像中各点相对于种子点的模糊连接度,同时得到各点到种子点的最优路径;(3)对得到的最优路径进行各点相对于种子点的属性相似度计算,同时得到图像中各点新的隶属度;(4)用户通过选取阈值来分割图像。Yourcompanyslogan回溯法基本概念回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不是最优或达不到目标,就退回一步重新选择,这种走不通就退回再走的方法称为回溯法。基本思想在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。Yourcompanyslogan回溯法回溯法在图像分割中的应用2015年尹雨山等人提出一种回溯搜索优化算法辅助的多阈值图像分割方法。文中方法分别将Otsu法和Kapur法作为目标函数,采用回溯搜索优化算法求解目标函数,实现多阈值图像分割。仿真结果说明回溯搜索优化算法求解的多阈值图像分割是可行的,与其他的多阈值分割方法比较,文中提出的方法具有较好的性能。Yourcompanyslogan分支限界法分支是指采用广度优先的策略,依次搜索当前结点的所有分支,也就是所有相邻结点,抛弃不满足约束条件的结点,其余结点加入活结点表。分支限界法的搜索策略是:在扩展结点处,先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值(限界),并根据这些已计算出的函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出一个最优解。然后从表中选择一个结点作为下一个结点,继续搜索。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被子加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止。Yourcompanyslogan小结五大基本算法各自有其不可比拟的优势,目前他们在医学图像处理方向上的应用大多是改进算法,提高效率,然而当其思想运用于医学图像分割时取得了良好的效果。由此启发我在以后的学习中,首先是要熟练掌握好图像处理领域的典型处理方法,多运用他们去解决一些问题;其次是遇到新问题时要善于分析问题,尝试用一些经典的高效方法来解决问题。YourcompanysloganThank!