博文

目前显示的是 五月, 2019的博文

NextGenerationCharacter

图片
真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。这是怎样的哀痛者和幸福者?(语出《记念刘和珍君》——鲁迅)人人都会在生命中遭遇挫折,人人都会在生活中面对坎坷。当所谓的不幸降临到你头上的时候,你——是做了伪的猛士,还是真的懦夫?若要回答这个问题,则要首先确定勇敢的定义,即成为一个真的猛士的标准。 苏轼的《留侯论》中曾有过这样一段描述:“古之所谓豪杰之士者,必有过人之节,人情有所不能忍者。匹夫见辱,拔剑而起,挺身而斗,此不足为勇也。天下有大勇者,卒然临之而不惊,无故加之而不怒,此其所挟持者甚大,而其志甚远也。”这段话真可谓是相当之经典了。如果说仅仅是为一点小事,或者说是为了自己那么点廉价的荣辱,便“拔剑而起,挺身而斗”,这种行为充其量也不过是一个莽夫的表现。真正的勇者首先应当把勇敢放在一个更高的地方,也就是说,任何行为仅在为一个集体、一个国家和一个民族的某些利益而体现的时候才能被称之为勇敢,当然这不但是勇敢,更是一种精神,一种大的智慧。当然这在某些情况下,相对而言,也只能称之为一种狭隘的勇敢。更加广义的勇敢要求人们不但敢于为了一项事业而牺牲,更加要求人们敢于为了一项事业而活着。 这种例子很好举,先举一个反面的例子,时下有很多大学生因为各种各样的原因,比如压力过大,爱情失败等等,就轻生跳楼。跳楼本身也可以理解为一种为了某种事业而牺牲,然而,为什么没有人夸耀那些选择跳楼的学生勇敢呢?首先,他们不符合第一个要求,那就是他们的生死只是为了一己之私,根本没有任何价值,没有高度的牺牲何谈勇敢?其次,他们既然有胆量面对死亡,为什么就没有胆量面对生活呢?显然这种“牺牲”只是懦夫的表现,缺乏生活的勇气的人没有资格谈“勇敢”。在某种程度上说,死其实是一件更加容易的事,而生却相当的复杂。 再说一个正面的例子,司马迁写《史记》,只为“究天人之际,通古今之变,成一家之言”,终成“史家之绝唱,无韵之离骚”。而司马迁所面对的就是因其所受之宫刑而带来的生的压力,这种压力不仅来自与肉体上残缺,更来自与心灵上的屈辱。 不知道大家是否对电影《在烈火中永生》有所印象。这部根据小说《红岩》改编的影片讲述了1948年重庆解放前夕,一批被国民党反动派关押的政治犯在狱中与敌人进行艰苦卓绝的斗争的故事。其中有一个“老疯子”华子良的人物形象。这个共产党员装疯卖傻忍辱负重十几年,隐藏...

Magic Realism Pack2

图片
博客上关于数字图像处理与机器视觉方面的技术文章已有数百篇之多。无奈天长日久,加之疏于整理,很多实现细节一来我个人也有些记忆模糊,二来也不方便群友研究学习。鉴于此,笔者打算把我个人编写或研究过的一些经典代码逐步整理,并在群内系统化地管理及分享。本批代码全部由MATLAB编写,每个项目为一个完整的.zip压缩包,并提供有测试图片,争取做到一步到位、方便上手。这里提供的代码目录,可供群友进行索引查询之用,望周知、惠存。如果你在运行代码时遇到问题,或者对这个分享目录有建议,请你告知我。 一、图像去雾专题 【代码编号 01】 基于暗通道(Dark Channel)的图像去雾实现 算法理论讲解的参考资料:《图像处理中的数学修炼》、《数字图像处理:原理与实践(MATLAB版)》 【代码编号 02】基于优化对比度增强的图像去雾算法 算法理论讲解的参考资料:《图像处理中的数学修炼(第2版)》 或博客文章:链接 【代码编号 03】Retinex图像去雾算法(SSR与MSRCR) 算法理论讲解的参考资料:《图像处理中的数学修炼(第2版)》 或博客文章:链接 二、图像融合与智能抠图 【代码编号 04】基于小波变换的图像融合(失焦图像修复) 算法理论讲解的参考资料:《数字图像处理:原理与实践(MATLAB版)》、《图像处理中的数学修炼》   【代码编号 05】基于泊松方程的泊松融合算法(基于迭代) 算法理论讲解的参考资料:《图像处理中的数学修炼》、《图像处理中的数学修炼(第2版)》 【代码编号 06】基于泊松方程的泊松融合算法(有限差分方法解偏微分方程) 算法理论讲解的参考资料:《图像处理中的数学修炼》、《图像处理中的数学修炼(第2版)》 【代码编号 07】贝叶斯抠图算法(Bayesian Matting) 算法理论讲解的参考资料:《图像处理中的数学修炼(第2版)》 或博客文章:链接 三、尺度不变特征及匹配专题 【代码编号 08】基于SIFT的图像配准 算法理论讲解的参考资料:《数字图像处理:原理与实践(MATLAB版)》 【代码编号 09】基于SURF的图像配准 算法理论讲解的参考资料:《数字图像处理:原理与实践(MATLAB版)》 四、图像压缩与自适应去噪 【代码编号 10】基于主成分提取(PCA)的图像压缩 算法理论讲解的参考资料:《数字图像处理:原理与实践(M...

Magic Realism Pack1

图片
现在,要想进行深度学习方面的研究,就必不可少地要搭建GPU环境。但对于很多人来说,或者由于经验的不足,或者由于软硬件的更新换代,凡此种种,都使得配置GPU环境变得耗时费力。本文主要演示在Ubuntu 18.04系统上配置GPU环境(主要是安装CUDA)的基本过程与注意事项。 如下图所示。注意,根据你下载的CUDA安装文件的版本差异,上面这个命令可能会有些许的调整。这一点,你可以从上面的下载页面上直接复制Nvidia网站给出的命令,确保万无一失。 接下来,安装程序会显示安装协议,一路按回车键跳到最后。你会看到如下所示的一些问题。需要注意的是,我们之前已经安装过显卡驱动程序了,故在提问是否安装显卡驱动时选择no,其他选择默认路径或者yes即可。 安装完成后会出现以下界面,提示CUDA 安装不完整,这是因为显卡驱动没有安装,直接忽略掉。 每一个补丁吧安装完成后都会得到如下界面。 到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量。方法就是编辑 ~/.bashrc 文件。由于.bashrc文件通常都是隐藏文件,如果你无法在~目录下看到它,你可以使用【Ctrl+H】来强制显示隐藏文件。用一个文件编辑软件打开它,然后在文件的末尾加上如下语句: 如下图所示,保存文件并关闭。 现在重启一下计算机。然后,继续安装cuDNN,它提供了一些用于深度学习加速的库。同样,你需要到英伟达的官网上去下载相应的安装文件。注意,这一步,你需要注册一个账户。然后,如下图所示,选择与CUDA 9.0相匹配的cuDNN,并下载其中的cuDNN Library for Linux。 下载的时候发现是一个压缩包,下完之后解压。解压出来是一个cuda文件夹,进去有两个文件夹,一个include和一个lib64。进入刚刚解压得到的cuda文件夹,并在命令行中执行如下命令: 执行完之后,cuDNN算是安装完成了。最后,你可以安装一下GPU版的Tensorflow,并运行一些简单的神经网络训练例子来测试一下你的GPU环境。  

Python图像处理基本操作

在Python中进行图像处理可以使用的库有很多,本文主要介绍下面三个:     OpenCV(Open Source Computer Vision Library)     PIL(Python Imaging Library)     skimage(scikit-image) *如下代码的实验环境为Jupyter Notebook. 欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。 1. OpenCV OpenCV是图像处理中最强大的一个库,它的源代码是由C\C++写成的,所以原版的OpenCV可以与C、C++无缝结合。Python版的OpenCV主要依赖于cv2这个包来实现。 1.1  imread()     import cv2     import numpy as np          #读入图片:默认彩色图,cv2.IMREAD_GRAYSCALE灰度图,cv2.IMREAD_UNCHANGED包含alpha通道     img = cv2.imread('Lena.png')     print(img.shape)     print(type(img)) 上述代码的执行结果如下: (512, 512, 3) <class 'numpy.ndarray'> 此时,被读入的图像以ndarray格式存在,取值范围是 [0, 255]。 1.2  imshow()     cv2.imshow('Lena',img)     cv2.waitKey(0)     cv2.destroyAllWindows()...

数学传奇1——群星闪耀时

1736年,时年29岁的莱昂哈德·欧拉(Leonhard Euler)向圣彼得堡科学院递交了题为《哥尼斯堡之七桥》的著名论文,长期悬而未决的哥尼斯堡七桥问题被彻底破解,该篇论文也被认为是标志图论创立的代表性文献。 同年,在遥远的亚平宁半岛上,约瑟夫-路易斯·拉格朗日(Joseph-Louis Lagrange)呱呱坠地。拉格朗日的曾祖父是一名法国军官,后移居至意大利都灵,与当地人结婚后诞下了拉格朗日的祖父。拉格朗日的父亲曾经负责掌管国王军队的金库,并在都灵的公共工程建设机构担任税务官。 拉格朗日本应过上优裕、富足的童年生活,无奈他的父亲却在经商过程中,不幸破产,致使家道中落。像其他望子成龙的父亲一样,拉格朗日的父亲一心想把自己的儿子培养成为一名律师,但拉格朗日本人却对法律毫无兴趣。事实上,在都灵大学就读时,拉格朗日最初对数学也不感兴趣,他觉得几何学非常无聊,反而对古典拉丁文颇有兴趣。直到17岁时,他读到了英国天文学家、数学家哈雷的介绍牛顿微积分的文章后,才逐渐迷上了数学。 拉格朗日早年的数学研究到底师承何方,至今成谜。或许也只有这样,才能符合一名旷世奇才理应无师自通这样的假设。现在唯一确定的是,1755年,拉格朗日曾经给已经功成名就的欧拉写信讨论数学问题,彼时拉格朗日只有19岁。 在给欧拉的信中,拉格朗日发展了欧拉所开创的变分法,用纯分析的方法求变分极值。欧拉在回信中对拉格朗日的成果大加称赞。这使拉格朗日在都灵声名大振,并让他在19岁时就当上了都灵皇家炮兵学校的教授。欧拉和拉格朗日两人共同奠定了变分法的理论基础,相关成果后来被称为欧拉-拉格朗日方程,这也标志着变分法的创立。 1756年,欧拉向时任普鲁士科学院院长的皮埃尔·莫佩尔蒂(Pierre Louis Maupertuis)推荐了拉格朗日。莫佩尔蒂看到拉格朗日才华非凡,便有意延揽他来柏林任讲座教授。然而,拉格朗日彼时尚无此等想法,遂婉言谢绝。作为一种替代方案,他在这一年被任命为普鲁士科学院通讯院士。 1763年,在巴黎游历期间,拉格朗日首次见到了达朗贝尔,这位前辈对拉格朗日也是青睐有加。两年后,达朗贝尔在给普鲁士国王腓特烈大帝的信中热情地赞扬拉格朗日,并建议在柏林给拉格朗日安排一个荣誉职位。腓特烈大帝欣然应允,他认为在“欧洲最伟大之王”的宫廷中理应有“欧洲最伟大的数学家”。但拉格朗日出于对欧拉的尊敬,不愿与其争...

由波许教授《最后一课》中的“墙”想到

配图摄于美国大雾山国家公园                        2008年7月25日,美国卡內基·梅隆大学计算机系教授兰迪·波许(Randy Pausch),因胰腺癌晚期及并发症去世,享年47岁。波许教授生前曾是人机界面领域的知名专家,国际计算机协会会士(ACM Fellow)。但更令其广为人知的是他于2007年9月(即去世前十个月)所做的一场题为《最后一课》(The Last Lecture)的著名演说。这篇演说反响极大,数以百万计的观众在线收看了演讲视频,美国广播电视网将他选为“2007年度人物”之一,《时代》杂志将他列入了“世界上影响最大的100人”,同名书籍长期位列《纽约时报畅销书(建议类)》榜首。 在这篇演说中,波许教授回顾了自己人生中的若干重要片段,而“墙”这个意象也多次出现。例如在开篇部分,波许教授谈到自己童年的梦想是体验失重状态,但苦于无法实现。直到当上了教授之后,机会似乎终于出现了。美国宇航局(NASA)组织了一次大学生竞赛,优胜团队的奖励便是可以被送到高空,体验25秒的失重状态。波许教授指导的队伍,获得了比赛的第一名。但NASA 却告诉他,只有学生才能飞上天空,指导老师不行。这样一个奇怪的规则就是挡在波许教授面前,令其无法实现儿时梦想的一堵墙。当然,就像人生中面对过的无数面墙一样,波许教授还是锲而不舍地找到了逾越它的办法。 在最后,波许教授语重心长地总结道:“你总会遇到挫折。但是记住,它们的出现并不是没有原因的。砖墙并不是为了挡住我们。它在那里,只是为了测试,我们的决心到底有多迫切。它在那里挡住了那些没有强烈决心的人。它不让那些人通过。记住,砖墙的存在是为了显示我们自己付出的决心。它使得我们,同那些并不真的想实现梦想的人得以区分。” 这不禁让我想到了很多希望涉足人工智能与数据科学的初学者在面对数学时的感受。自从深度学习火爆起来之后,深度学习算法工程师、人工智能研究员,以及数据科学家等新兴职位迅速成为大家争相讨论的薪资高地。特别是在谷歌公司的人工智能程序AlphaGo,于曾经一度被认为是人类智慧最后堡垒的围棋领域,大败世界冠军李世石后,各大IT名企纷纷成立所谓的人工智能研究院、深度学习实验室。像Geoffrey Hinton、Yann LeCun、Ian Goodfellow、李飞飞和吴恩达等国际知名学者也纷纷被谷歌、Facebook这样...

美的同一性和神秘的算法分析

图片
美的同一性和神秘的算法分析 1977 年法国人 Philippe Flajolet 发表了一篇评估计算机展开算术表达式平均所需寄存器数量的[论文][1]。同年,普林斯顿的 Rebert Sedgewick 向 SIAM 投递了一篇讨论奇偶归并排序的[文章][2],其中给出了数据在排序过程中平均交换次数的简洁表达式。Sedgewick 通过渐进分析获得的这个表达式后来被发现和 Flajolet 用于评估寄存器数量的式子具有同一性。Flajolet 后来给 Sedgewick 写信说: I believe that we have a formula in common! 这让我想到了杨振宁的杨-米尔斯规范场论与陈省身早前所做的纤维丛中的联络论之间美妙的同一性。同样的巧合发生在了理论计算机领域,而这一次则表征着渐进分析法的胜利。这一经典的数学分析工具早在18世纪就由欧拉和迈克劳伦初步建立,直到20世纪50年代末趋于完善,目前依然是算法分析最有效的系统方法之一。即便现今任何一台小型计算机的处理器都能轻松胜任大数值计算(例如 2 10000 2 1 0 0 0 0 的阶乘),但渐进分析所提供的极高精度的表达式依然具有极高的效率和简洁性。经典数学分析所提供的信息量和对问题的深入洞见是无法被强力计算所替代的。 后来 Sedgewick 成为了算法分析领域的大牛,沿着他的导师高德纳的足迹越走越远。而 Flajolet 在法兰西的另一边走火入魔般地使用分析方法研究组合数学。和所有狗血的基友故事一样,他俩的渊源远没有就在一则公式上打住,1980 年两人决定合写一本有关算法分析的教材,1986 年 Sedgewick 开始在普林斯顿计算机学院开设算法分析课程,十余年间积累了大量的课程讲义和技术报告材料,1992 年,Flajolet 在组合数学上的研究取得系统性成果,两人决定将写作计划由原来的一本拆分为两本不同侧重的专著。1995 年两人合著的第一本书《算法分析导论》(以下简称 AoA)出版,以生成函数(Generating Functions)为核心,系统地介绍了自伯努利、欧拉以来被广泛使用的算法分析工具,其中包含了一些高德纳在《计算机编程艺术》前三卷中所涵盖的主题,主要是递归、生成函数和渐进分析。这些主题完整地定义了算法分析的科学基...