学习图像算法阶段性总结 (附一键修图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 关于本 ...
随机推荐
- go语言 类型:基础类型和复合类型
Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...
- Eclipse spket插件 内置js文件
这一篇将怎么在spket内置js文件,而不用用户自己去添加. 1. 在开发的Eclipse的 运行配置将下面几个插件勾选上. 2. 在org.eclipse.ui.startup拓展里执 ...
- SharePoint 2013 JavaScript API 记录
1.获取创建者字段(Author),oListItem为SPListItem对象 oListItem.get_item('Author')只能获取到对象,获取用户名要用oListItem.get_it ...
- react native与现有的应用程序集成
(1)通过cocopods 集成 ,以下内容 参考 http://wiki.jikexueyuan.com/project/react-native/integration-existing.html ...
- SQL for SQLite
语法 verb + subject + predicate commannds(命令) SQL由命令组成,以分号为结束.命令有token组成,token由white space分隔,包括空格.tab. ...
- 用Reveal分析第三方App的UI
文章出自:听云博客 Reveal简介: 这是个神奇的工具,它能常透彻地分析个App的UI结构. 这个工具包括两部分,部分是在PC上运行的一个独立应用,即Reveal.app,另一部分代码在你要分析的某 ...
- 【原】iOS:一种直接修改frame的某个属性的方法
在iOS中view的frame属性使用地太频繁了,尤其是调UI的时候.我们知道,正常情况下我们无法对frame的某个属性(x,y,width,height等)进行单独修改,比如: someView.f ...
- 查看特定View的默认属性值
当我在分析focus.touch事件处理代码时发现,有些属性对代码的逻辑有非常重要的影响,比如clickable.focusable 这些属性.这时我们自然而然的想到,那么这些属性的默认值是什么呢?在 ...
- iOS中的事件传递和响应者链条
本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UI ...
- Android开机广播
有些时候我们常常需要某个程序开机运行.在这个时候我们就需要监听系统的开机广播,然后启动我们的程序即可. 不多说 直接上代码: public class BootReceiver extends Bro ...