自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

frank 的专栏

人类的一切智慧是包含在这四个字里面的:”等待“ 和 ”希望“。—— 《基督山伯爵》...

原创 关注这几点,远程办公不犯迷糊

受疫情的影响,很多公司选择了延期开工,即使开工也是远程办公,我所在的公司也不例外。今天是第 1 天办公,因为和现场办公体验不一样,现总结几点觉得可以提升远程办公效率,现与各位交流讨论。 提前做功课很有必要 在决定全员远程办公前,公司的管理层开了好几次会议,动态规划了好几种方案。这真的算更新的比较频...

2020-02-10 22:23:35 3193 0

原创 一个程序员的自我修养和敬畏之心

刚刚我删掉了一篇接近 10W+ 的博文,这篇文章传播比较广,有 900 人左右点赞,也有 200 多评论,也因为此我自身受到了很大的困扰。我有不断的反思自己,为何有如此多的人对我冷嘲热讽。这段反思持续了很长一段时间,期间我阅读大量文章想去找一些答案,也有认真去阅读那些或客观或戾气的评论,想想这一切...

2020-02-05 16:01:29 11529 30

原创 从女友和老妈的使用角度看精确率(precision)和召回率(recall)的不同

机器学习和深度学习中,精确率和召回率经常会被提起,但因为太绕了,许久不用后,又通常容易忘记或者是搞混。 本文以一个稍显调皮的例子说明两者的不同,以便自己能够加深理解。 基础概念 讲精准率和召回率前先讲一些基本的概念,因为两者的公式基于此。 TP TP 是 True Positives 的...

2020-01-16 11:07:40 2487 5

原创 死磕YOLO系列,YOLOv1 的大脑、躯干和手脚

YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析...

2019-11-20 16:06:26 12387 17

原创 碎片化写作后,我准备将毕生所学体系化地展示出来

最近听人讲解唐诗,忽然特别喜欢「斐然」一词。我觉得人生应该如此,潇洒而不拘。 程序员的坎应该是年龄,三旬已是老汉,可出于热爱我希望自己能编程到老。 一个人最宝贵的应该是思想,一个程序员最宝贵的东西应该是算法思想和编程经验。 我将在此星球,撰写系列纯技术文章。 目前规划是: 基础算法系列 设计模式...

2019-10-21 14:52:06 2685 5

原创 作为技术面试官,我在面试时考虑什么?

最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。 求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。 作为一个面试官,我们也需要这样,我也会经常总结和反思自己的面试技巧,现分享如下,希望求职者能有反向的思维,下次面...

2019-10-21 10:46:36 14734 56

原创 开发者常用及实用 Linux Shell 命令备忘录

最近都需要在 Linux 系统下开发,所以经常需要在终端中进行操作。Linux 有很多 shell 命令可以帮助我们完成任务,但不常使用的话就会忘记掉。 本篇作为命令备忘录,我会将实际工作当中用到的命令记录下来,并长期保持更新。 1.which which 用于查找一个文件,并返回绝对路径,...

2019-09-05 09:28:16 3779 3

原创 我的第一次技术付费尝试

陆续在 CSDN 上写技术博文几年了,访问量已经 150W 了,全部是原创文章,写得很用心,也感觉到了读者的肯定。 但人都需要「恰饭」,加上自己年龄渐长,为了激励自己抽出时间继续技术博文的创作,输出更高质量的内容,现在下定决心要尝试往技术付费路线上走。 我本人一直习惯于知识付费,我在各个平台订购了...

2019-07-24 15:14:16 5403 17

原创 开发者 git日常操作备忘录

git 是常见的版本控制软件。 但是如果不经常使用的话,就会忘记一些基本的命令操作。 本文的目的也是对常见的命令做一个备忘,同时希望可以帮助到大家。 创建 git 仓库 mkdir testone cd testone git init 会出现以下结果 Initialized ...

2019-01-23 15:12:06 11251 3

原创 OpenCV 标定摄像头(Python 版本代码,视频中标定,亲测可用)

在机器视觉领域,摄像头的标定指通过技术手段拿到相机的内参、外参及畸变参数。 相机内参长这样,利用针孔模型,将 3d 物体透视投影到 2d 的相机屏幕上。 P=[fx0cx0fycy001] P = \begin{bmatrix} f_{x} & 0 &amp...

2019-01-21 10:00:34 15097 25

原创 【深度学习】经典神经网络 VGG 论文解读

VGG 在深度学习领域中非常有名,很多人 fine-tune 的时候都是下载 VGG 的预训练过的权重模型,然后在次基础上进行迁移学习。VGG 是 ImageNet 2014 年目标定位竞赛的第一名,图像分类竞赛的第二名,需要注意的是,图像分类竞赛的第一名是大名鼎鼎的 GoogLeNet,那么为什...

2018-11-06 18:56:08 15472 0

原创 【深度学习】经典神经网络 ResNet 论文解读

ResNet 是何凯明团队的作品,对应的论文 《Deep Residual Learning for Image Recognition》是 2016 CVPR 最佳论文。ResNet 的 Res 也是 Residual 的缩写,它的用意在于基于残差学习,让神经网络能够越来越深,准确率越来越高。 ...

2018-10-30 18:55:43 21078 0

原创 【深度学习】R-CNN 论文解读及个人理解

背景 本篇论文的题目是 《Rich feature hierarchies for accurate oject detection and semantic segmentation》,翻译过来就是针对高准确度的目标检测与语义分割的多特征层级,通俗地来讲就是一个用来做目标检测和语义分割的神...

2018-08-24 10:04:15 86876 18

原创 【Tensorflow】 写给初学者的深度学习教程之 MNIST 数字识别

一般而言,MNIST 数据集测试就是机器学习和深度学习当中的"Hello World"工程,几乎是所有的教程都会把它放在最开始的地方.这是因为,这个简单的工程包含了大致的机器学习流程,通过练习这个工程有助于读者加深理解机器学习或者是深度学习的大致流程. 可恰恰就是在这个地方,却容易给初学者带来困...

2018-05-24 19:54:10 24350 15

原创 Java 泛型,你了解类型擦除吗?

泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。文章开始的地方...

2017-08-05 22:32:18 58917 63

原创 轻松学,听说你还没有搞懂 Dagger2

Dagger2 确实比较难学,我想每个开发者学习的时候总是经历了一番痛苦的挣扎过程,于是就有了所谓的从入门到放弃之类的玩笑,当然不排除基础好的同学能够一眼看穿。本文的目的尝试用比较容易理解的角度去解释 Dagger2 这样东西。 Dagger2 是有门槛的,这样不同水平能力的开发者去学习这一...

2017-07-20 22:14:00 35310 44

原创 细说反射,Java 和 Android 开发者必须跨越的坎

写作是门手艺,笑对需要勇气。 写下这个题目的时候,我压力比较大,怕的是费力不讨好。因为反射这一块,对于大多数人员而言太熟悉了,稍微不注意就容易把方向写偏,把知识点写漏。但是,我已经写了注解和动态代理这两个知识点的博客,阅读量还可以,这两个知识点是属于反射机制中的,现在对于注解和动态代理息息相...

2017-07-06 23:36:13 49051 54

原创 轻松学,Java 中的代理模式及动态代理

前几天我写了《秒懂,Java 注解 (Annotation)你可以这样学》,因为注解其实算反射技术中的一部分,然后我想了一下,反射技术中还有个常见的概念就是动态代理,于是索性再写一篇关于动态代理的博文好了。 我们先来分析代理这个词。 代理 代理是英文 Proxy 翻译...

2017-06-29 22:08:55 69078 76

原创 秒懂,Java 注解 (Annotation)你可以这样学

文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。 Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重...

2017-06-27 21:48:30 230957 365

原创 针对 CoordinatorLayout 及 Behavior 的一次细节较真

我认真不是为了输赢,我就是认真。– 罗永浩 我一直对 Material Design 很感兴趣,每次在官网上阅读它的相关文档时,我总会有更进一步的体会。当然,Material Design 并不是仅仅针对 Android 而言的,它其实是一套普遍性的设计规范。而对于 Android 开发...

2017-06-12 22:17:29 33741 22

原创 RecyclerView探索之通过ItemDecoration实现StickyHeader效果

我在上一篇《小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践 》 讲解了 ItemDecoration 的基本用法及它的一些实践,抱着学习研究的态度,这一篇作为实践篇主要目的是尝试通过 ItemDecoration 来实现 RecyclerView 中的 St...

2017-04-17 15:58:42 25436 17

原创 一看你就懂,超详细java中的ClassLoader详解

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将...

2017-02-10 19:26:54 193409 196

原创 ubuntu为脚本添加桌面图标

这是一个小技巧,技术含量低,但用处大,所以作为备忘。 程序员都喜欢使用 linux 开发,ubuntu 是常见的一种。 但有个问题就是,ubuntu 桌面默认是没有应用图标的,我们大多需要将应用的脚本添加到 PATH 环境中,然后用命令启动。 那有没有更快的方式,比如直接像 windows 那样通...

2020-05-07 10:42:58 109 0

原创 大四学生如何求Java工作?
原力计划

这是一篇缓解面试焦虑的文章。 背景 有读者给我留言:大四的学生如何求一份Java的工作?并且还特别强调了他非科班和文凭不出众的事实背景。我想这个问题具有代表性,所以写一些个人的建议,希望能帮到一些人。 定位 要想求得一份工作,首先需要对自己做好一个定位。 考虑到那些好学校出身的同学们,他们在毕业前...

2020-03-29 17:17:00 9444 27

原创 非科班程序员AI学习路径建议

本文适用于有下面情况的同学们: 对 AI 感兴趣 非科班 数学基础不好 对算法抗拒 研究生一下学历 近几年,AI 很火,在很多领域都取得了突破性的成果。这吸引了很多人的目光,我从几年前决定投入到 AI 的怀抱中,过程很艰苦,走了很多弯路,希望此文能带给新人一些提示。 数学问题 很多同学担心自己...

2019-11-08 11:37:48 3177 10

原创 深入浅出CMake(四):配置多线程

我们知道,直接用 g++ 编译多线程代码时,可以这样。 gcc -o test test.c -lpthread 但是,如果整个工程是 CMake 构建的,需要怎么做呢? 修改 CMakeFileLists.txt 文件。 假设,要链接的目标叫做 test,只需要简单 2 行代码就好了。 fi...

2019-10-14 16:57:29 1538 0

原创 【小算法】二分图匹配之匈牙利算法详解(图例说明,代码亲测可用)

在软件开发领域,任务指派和数据关联是一种常见业务需求,比如买卖订单的匹配,共享出行的人车匹配,及自动驾驶领域中目标追踪。 这都牵扯到一种技术,那就是数据关联,而匈牙利算法就是解决此类问题最典型的算法,也是今天本文的主题。 我们感性的认为目标之间的匹配好像一目了然的样子,但是计算机可不这样认为。计算...

2019-10-10 11:22:15 999 0

原创 【小算法】图的遍历之广度优先(BFS)

谈到算法,图的操作是避免不了。 而我们一般谈到图时,又必定会谈到图的遍历。 图的遍历通常有 2 种,深度优先(DFS) 和广度优先(BFS)。 深度优先可以阅读我这篇博文:【小算法】图的遍历之深度优先(DFS) 本篇博文讲解广度优先(BFS)。 图的表示 图有两种表示方式 1. 临接矩阵 其实...

2019-09-29 00:12:02 1167 0

原创 【小算法】图的遍历之深度优先(DFS)

谈到算法,图的操作是避免不了。 而我们一般谈到图时,又必定会谈到图的遍历。 图的遍历通常有 2 种,深度优先(DFS) 和广度优先(BFS)。 本篇博文讲解深度优先(DFS)。 图的表示 图有两种表示方式 1. 临接矩阵 其实就是一个权重矩阵,用 1 代表两个结点有连接,0 表示没有连接,这样...

2019-09-27 18:19:43 1136 0

原创 CMake 进行调试

在 Linux 下开发,可以用 gdb 进行调试,但是如果工程是用 CMake 构建的,那么需要在 CMakeLists.txt 中加入如下代码: CMake 配置 SET(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_CXX_FLAGS_DEBU...

2019-09-18 17:51:07 2528 0

原创 用Pytorch自建6层神经网络训练Fashion-MNIST数据集,测试准确率达到 92%

一般的深度学习入门例子是 MNIST 的训练和测试,几乎就算是深度学习领域的 HELLO WORLD 了,但是,有一个问题是,MNIST 太简单了,初学者闭着眼镜随便构造几层网络就可以将准确率提升到 90% 以上。但是,初学者这算入门了吗? 答案是没有。 现实开发当中的例子可没有这么简单,如果...

2019-09-10 15:32:01 3520 3

原创 【小算法】二分查找

谈论算法,典型的问题除了排序,还有查找。 查找就是,从一个数据集合中查找某个数,如果找到了就返回该数据在数据集中的索引,否则返回 -1。 最简单的方法就是从头到尾依次查找。 但这有个问题,顺序查找时间复杂度是O(n)O(n)O(n),如果要从 1 亿个数据中查找某个数,最坏的情况要查找 1 亿次。...

2019-09-04 16:08:46 1048 0

原创 【小算法】插入排序

插入排序也是一种非常容易理解的算法,核心思想就是每次将新的元素往原本有序的数组中插入。 算法思路 假设有下面一组数据,需要从小到大升序排列。 插入排序的算法是 1. 进行多轮迭代。 2. 每一次迭代的前提是将当前的数值插入到前面已经排序好的子数组当中。 也许描述有写抽象,但用显示当中玩扑克牌的...

2019-08-29 16:34:36 1421 0

原创 【小算法】冒泡排序

冒泡排序是大多学人学到的第一个排序,教科书上在众多的排序算法中选择它作为示例,我想还是因为它够简单,易于理解吧。 假设有下面一组数据,需要从小到大升序排列。 冒泡排序的算法是 1. 从左到右,依次比较相邻两个位置的数据,如果左边的数值较大,就交换它们,这样在单轮操作中,最大的数会交换到最右边。 2...

2019-08-26 20:32:32 945 0

原创 【小算法】快速排序

快速排序是一种运用非常广的算法,但不是那么好理解。 假设有下面一组数据,需要从小到大升序排列。 快速排序的算法是 1. 确定不用排序的条件 2. 确定每次排序时,选择排序的基准值(pivot) 3. 排序依据,将当前数组中,所有比 pivot 大的数值存放到新的数组 right 挪到右边,所有比 ...

2019-08-15 15:21:34 1495 2

原创 【小算法】选择排序

选择排序是一种非常容易理解的算法。 算法思路 假设有下面一组数据,需要从小到大升序排列。 选择排序的算法是 1. 创建一个列表或者数组 2. 第一次遍历数组,找出最小的一个数存放在新的数组中。 3. 第二次遍历数组,找出次小的数存放在新的数组。 4. 重复类似操作,直到所有的数据排列完成 图例...

2019-08-06 11:49:48 1146 3

原创 深入浅出CMake(三):find_package 添加依赖库

深入浅出CMake(一):基础篇 深入浅出CMake(二):基础语法及实现九九乘法表 有了前面两篇博文的基础,相信我们已经能够用 CMake 去编译比较简单的工程了,但是我们还差一步就可以应付大多数开发编译场景。 目前我们还不知道怎么样处理在工程中引入第三方库。 以 Unix 环境下的 c++ 代...

2019-06-13 12:04:44 4034 0

原创 【深度学习】目标检测中 IOU 的概念及计算

在目标检测当中,有一个重要的概念就是 IOU。一般指代模型预测的 bbox 和 Groud Truth 之间的交并比。 何为交并比呢? IOU=A∩BA∪B IOU = \frac{A\cap B}{A\cup B} IOU=A∪BA∩B​ 集合 A 和集合 B 的并集包括了上面 3 种颜色区域...

2019-06-10 11:59:45 6232 3

原创 【机器学习入门】决策树的原理

什么是决策树? 决策树(Decision Tree) 是一种数据结构,可以用来分类和回归,决策树是数据结构,但构建决策树有一系列的算法,决策树的核心之一就是利用算法构建最佳的决策树,以达到在训练数据和测试数据都表现优秀的效果。 决策树的构建和人类的思维过程非常的类似。 假设,我现在要招聘算法工程师...

2019-05-05 15:08:41 1861 1

原创 c++ 开发中利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 ...

2019-04-25 14:27:47 10859 8

提示
确定要删除当前文章?
取消 删除