学习图像算法阶段性总结 (附一键修图Demo) 2016.04.19更新demo
今天特别感慨,自己从决定研究图像处理,势必要做出一键修图算法。
经历了,三个多月的书籍积累,三个多月的算法调整以及优化。
人是一种奇怪的动物,当你做不到的时候,你以为做到了,自己会感觉很爽,很有成就感。
而当你做到了,却会觉得也就那么回事。
一开始自己只是很意外性地做到了一种劣质的颜色矫正算法,就觉得自己牛上天了。
再到后来一次又一次改进算法,最后那个最原始的算法,烂到我自己都不好意思说。
仅仅一个颜色的修复我就耗费了四五个月,再到半个月做完智能曝光算法,一切好像就是那么顺理成章,自然而然。
跟大多数人不同的是,我是从一开始就坚持每一个算法都要自己写,自己实现。
包括图像裁剪,图像翻转,图像模糊,图像锐化,图像降噪,图像缩放,PS曲线等等很基础的算法,
我都是自己一句一句敲出来的,在写的过程中,也不记得自己修改了多少次了。
我固执地认为,图像修复是所有图像算法,包括识别分析以及深度学习机器学习等等算法,最基础也是最核心的东西。
因为如果图像能修复到一定的程度,对所有上层算法,绝对是质量的飞跃,例如识别算法,识别准确率必然是提升的。
在这个过程中,最大的感受就是千万不要小看每一个算法,你只要用每一个算法最核心最优秀的思想,就能创造更多更优秀的算法。
至于算法优化其实就是一句话:时空,时间空间,用时间换空间,用空间换时间,如果能两者兼顾则更佳。
所以我自己在写算法的时候,就是时刻考虑内存空间,算法耗时,这非常重要。
昨天看了下自己离职的日期:2015.9.16,时至今日已经半年多了。
半年多的坚持和努力,白发也多了起来,人也憔悴多了。
最近也开始投简历了,在这个过程中也碰到了不少挫折,
主要是没多少人相信我是真的想回企业里踏实成长,
经历了那么多事情,其实也只是希望自己能真正地稳定下来,特别是在图像算法这个领域能有所建树。
这段时间,认识了不少网友,得到了不少网友的认可,自己也尽自己所能,回答一些他们询问我的问题,分享自己的一些心得体会。
也有不少网友热情地邀我去加盟他们,不过说实话,北京,上海,杭州,这几个地方自己就是不太喜欢,最喜欢的还是深圳。
原因很简单,我把深圳图书馆当成了家。
在深圳的那段时间,除了上班,偶尔跟朋友出去,我去得最多的地方就是图书馆。
为了能稳定一点,若非特殊情况,现在我只考虑大公司。
学习是一生的事情,投资自己不会错的。
在珠海金山的时候,每个月,薪水里都有一千多元被我用来买书学习,
在学习这方面我真的不节俭,所以到现在,自己除了一身的能力和知识,也没什么积蓄。
而在深圳,图书馆经常有新书,资料非常全,省去了我很大一部分的开销,这也是为什么我很喜欢深圳这个图书馆城市最大的原因。
我的QQ和微信签名是:
To get where you want to go, you have to know where you are.
不记得什么时候写的,然后一直没再改过,你要去什么地方的前提是,你必须知道你自己现在在哪里。
在学图像算法的过程中,我经常看一些招聘信息,看看企业要求的条件是什么,
自己是不是满足这个条件,如果不满足,排个期,一步一步学起来。
学习以及能力培养,没有捷径,一步一个脚印,踏踏实实,稳稳当当。
虽然到现在,自己很多能力还是没达到标准。
我一直认为,100分只是及格.
所以很多东西还不够好,还有缺陷。
有网友跟我聊,他说他是在学习,而我是在超越。
其实也很正常,只有超越别人,才有核心竞争力。
我把100分当及格分,你把100分当满分,这是非常不一样的。
很多时候,心态要好,傻逼样的去坚持,必有牛逼样的结果。
想想自己最惨的时候,在大学里,5片面包过一天。
现在与那时候相比,已经好太多了。
那些看不起我的人,就让他们看不起呗,与我无关。
前段时间向一个老同事请教,他说他经历跟我有点像,但也有不同。
不过他告诉我最深刻的话就是:
人太在意别人对自己的看法,而忽略了自己最重要的东西。
要放下执念,稳稳当当地走下去。
一键修图也算是自己最近一段时间的短期目标,从不懂到做出来,也只有自己知道这之间的苦楚。
很多时候,我想做什么事情的时候,都有朋友笑我天真,不自量力。
但是,我是强执行力,行动派,不去做,我不知道自己能做到什么样子,但是要去做。
很多人做事情只停留在想和想去做,而不是立刻去做。
其实失败没那么可怕,失败又不会死,没什么好怕的,如果你连死都不怕,那就更没什么好怕的了。
有不少网友也一直想我分享这个算法,不是我不愿意,是我觉得授人以鱼不如授人以渔,而且自己那么辛苦做出来的东西,真的没那么容易就分享出去。
我不是伟人,我没那么伟大。
这个世界还有很多事情,值得我们用心去做好它。
贴一些一键修图的效果图(图片源自网络)。
原图->效果图。












http://files.cnblogs.com/files/tntmonks/%E4%B8%80%E9%94%AE%E4%BF%AE%E5%9B%BE.zip
2016.04.19更新:
优化算法,改进背光图片的修复。
http://files.cnblogs.com/files/tntmonks/autotone.zip
(注:可能会被杀毒软件误杀,添加为信任即可)
不少网友在问,我就补充一下这个我这个算法的核心思路是: 拟合曲线
只能说这么多,说破没酒喝。
俺的联系方式如下:
邮箱: gaozhihan@vip.qq.com
QQ:200759103
联系我时请说明来意,不然一律忽略,谢谢。
除了IT技术之外,本人也涉猎了很多其他领域的知识,欢迎大家一起来互相探讨学习。
学习图像算法阶段性总结 (附一键修图Demo) 2016.04.19更新demo的更多相关文章
- 学习图像算法阶段性总结 (附一键修图Demo)
今天特别感慨.自己从决定研究图像处理.势必要做出一键修图算法. 经历了,三个多月的书籍积累,三个多月的算法调整以及优化. 人是一种奇怪的动物.当你做不到的时候,你以为做到了.自己会感觉非常爽,非常有成 ...
- (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)
本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...
- 【转载】 第四范式首席科学家杨强:AlphaGo的弱点及迁移学习的应对(附视频)
原文地址: https://www.jiqizhixin.com/articles/2017-06-02-2 ============================================= ...
- 从编程实现角度学习Faster R-CNN(附极简实现)
https://www.jianshu.com/p/9da1f0756813 从编程实现角度学习Faster R-CNN(附极简实现) GoDeep 关注 2018.03.11 15:51* 字数 5 ...
- JPG学习笔记3(附完整代码)
#topics h2 { background: rgba(43, 102, 149, 1); border-radius: 6px; box-shadow: 0 0 1px rgba(95, 90, ...
- Linux Shell编程学习笔记——目录(附笔记资源下载)
LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...
- Python爬虫学习记录【内附代码、详细步骤】
引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...
- ESFramework Demo -- P2P通信Demo(附源码)
现在我们将在ESFramework Demo -- 文件传送Demo 的基础上,使用ESPlus提供的第四个武器,为其增加P2P通信的功能.在阅读本文之前,请务必先掌握ESFramework 开发手册 ...
- Linux学习笔记之秋水BBR一键部署
0x00 本脚本适用环境 系统支持:CentOS 6+,Debian 7+,Ubuntu 12+内存要求:≥128M 阅读文章时请除手动删出干扰字符“1”.(Shadowsocks) 0x01 关于本 ...
随机推荐
- LINQ / LINQ to SQL / LINQ to XXX 它们到底有什么区别
LINQ是新生事物,不过从不少文章和讨论上看来,这方面的概念也已经有点混沌不清了.因此我们经常可以看到这样的话: LINQ只能将数据表与实体属性一一对应…… LINQ开发指南:在LINQ中进行数据库字 ...
- Javascript的历史
阅读了JavaScript dom简史,从网上看了下,学问很深啊. 首先简单说下网景公司(Netscape)的发展史:1993年,美国国家超级计算机应用中心(NCSA),发表了一个浏览器,命名为“Mo ...
- jQuery原型方法.pushStack源码分析
这次分析的方法跟前面不同,虽然pushStack也是原型方法之一,但是我们几乎从不用在页面调用,在参考手册里面也没有这个方法的使用说明,但是这个方法还是非常重要的,在使用很多jQuery的其他方式都会 ...
- 一个类似backbone路由的纯净route ( 前端路由 客户端路由 backbone路由 )
大家用backbone.angular,可能都习惯了内置的路由,这两个框架的路由都是非常优秀的,强大而简单. 客户端(浏览器)路由原理其实比较简单,其实就是监听hash的变化. 在之前的架构探讨中,说 ...
- 8款超实用JavaScript框架
下面盘点了8款实用的JavaScript框架: 1. Hammer.js Hammer.js是被广泛使用的轻量级JavaScript框架,它提供了常用触摸操作的规范,比如收缩.拖放.双击和删除等等.它 ...
- Round in Oracle/VBA
VBA的 Round采用的是银行家算法(rounds to the nearest even number) Round(1.5) = 2 Round(0.5) = 在Oracle中实现银行家算法 S ...
- JavaScript学习01 语言简介、基本使用和变量声明
JavaScript语言简介.基本使用和变量声明 JavaScript是网景(Netscape)公司开发的一种基于客户端浏览器.面向对象.事件驱动式的网页脚本语言. JavaScript的前身叫Liv ...
- 安卓开发_慕课网_Fragment实现Tab(App主界面)
学习内容来自“慕课网” 这里用Fragment来实现APP主界面 思路: 底部横向排列4个LinearLayout,每个LinearLayout包含一个图片按钮和一个文字 1.默认显示第一个功能(微信 ...
- CSS 行内样式 页内样式 外部样式
行内标签: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...
- javascript和web debug技术
在前端开发中,调试技术是必不可少的技能,本文将介绍五种前端开发必备的调试技术. Weinre移动调试 DOM 断点 debugger断点 native方法hook 远程映射本地调试 Weinre 在移 ...