9 frank909

尚未进行身份认证

我要认证

爱阅读的程序员,专注于技术思考和分享。公号:Frankcall

等级
TA的排名 1k+

死磕YOLO系列,不会 AI没关系,用OpenCV 调用YOLO 做目标检测

如果你要完成下图的目标检测功能,你会怎么做?对于视觉工程师而言,这当然是个小问题。可术业有专攻,不一定每个程序员都懂 AI 算法,那肯定就有一种方法把算法当成一个黑盒子,处理好输入输出就好了。所以,这篇文章完全是零基础告诉你如何完成上面的目标。首先,进行输入与输出的定义。输入是一张图片经过 AI 算法的处理AI 算法输出结果能搞定目标检测的算法有很多,当前 OpenCV 都支持这些算法的调用,本文讲解 Yolov3,其它算法其实也是大同小异。本文不分析 Yolo 算法的原理,对原理有兴

2020-07-13 22:17:30

工作多年,我对架构的一些理解

每一个程序员都听过架构这个词,每一个程序员都有自己对此的理解和看法,本文分享我对架构的理解。什么是架构?因为我是程序员,所以本文讨论的架构特指软件架构(Soft Architecture)。我看过很多关于架构方面的书,每一位作者给出的定义都不一样,本质上却相差不多。概括而言,架构是:针对系统的表达,描述了系统的要素组成,及要素之间的交互关系。上面就描述了针对一个系统的架构,有 3 个顶层模块 ,模块 E、模块 F、模块G。模块间有交互,并且模块 E 中还有模块。所以,一般讲架构时,我们是指

2020-07-13 09:41:54

程序员能轻易做好其它行业吗?

直接给观点了。答案是:未必。专业性低的行业自然可以。专业性高的行业,困难很大。最近,市场大热,估计很多程序员小伙伴有些按耐不住了,甚至已经火速进场。我只能说:谨慎一点。这世界大多不如我们想的那样。程序员很优秀,逻辑很强。但那个是在计算机的世界当中,运行在确定的环境中,执行确定的逻辑。现实世界可能是混沌的。好比是用牛顿怎么也解释不了量子的世界。隔行如隔山,这个道理至今适用。我们要警惕自己的主观愿望,高估自己的行业含金量,低估其他行业的专业性。任何成熟的行业,都会一套分工明细的技术体系。在当前

2020-07-09 22:46:21

聊聊程序员的 3 个烦恼

程序员大概是这世界上最单纯乐观的一类人,虽然我们自嘲"码农",但内心却大多无比傲娇,我们总坚信自己在改变旧世界,创造新世界,所以我们看起来始终乐观单纯,而此文,我不聊快乐,聊聊作为一个程序员,我意识到一些让我痛苦和烦恼的地方。1. 完美主义机器不会说谎。当程序出现 Bug 时,一定是某个地方有问题。要么是代码,要么是硬件,考虑到大多数程序员不与硬件打交道,所以当程序出现问题时,一定是逻辑不通顺,或者是覆盖度欠佳。程序员一直习惯于这种确定性逻辑问题的定位与解决,久而久之会形成一种完美主义的习惯。但

2020-06-29 08:26:11

浅谈线程和进程

线程和进程是程序员老生常谈的问题了,任何阶段的程序员都不敢轻视他。事实上大部分程序员并没有系统化的学习过,也有很多人并没有机会好好运用它。所以,如果拉一个工作多年的程序员讨论,对方未必能说出个所以然。本文是 Linux 下 C++ 多线程编程开发的系列文章之首,在介绍具体编程实现而言,先讲讲它的基础概念,并给予通俗化的解释,并在文章最后给出一个开放的思考题。什么是线程?线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一

2020-06-15 22:36:11

ubuntu为脚本添加桌面图标

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

2020-05-07 10:42:58

大四学生如何求Java工作?

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

2020-03-29 17:17:00

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

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

2020-02-10 22:23:35

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

刚刚我删掉了一篇接近 10W+ 的博文,这篇文章传播比较广,有 900 人左右点赞,也有 200 多评论,也因为此我自身受到了很大的困扰。我有不断的反思自己,为何有如此多的人对我冷嘲热讽。这段反思持续了很长一段时间,期间我阅读大量文章想去找一些答案,也有认真去阅读那些或客观或戾气的评论,想想这一切究竟是为什么。此刻,我意识到一些问题,现总结如下:1. 凡事要照顾好情绪,不能光靠逻辑有些事情是不...

2020-02-05 16:01:29

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

机器学习和深度学习中,精确率和召回率经常会被提起,但因为太绕了,许久不用后,又通常容易忘记或者是搞混。本文以一个稍显调皮的例子说明两者的不同,以便自己能够加深理解。基础概念讲精准率和召回率前先讲一些基本的概念,因为两者的公式基于此。TPTP 是 True Positives 的缩写,指的是真正的正样本,也可以叫做真阳性。样本是正样本,预测结果也是正样本。FNFN 是 False N...

2020-01-16 11:07:40

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

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

2019-11-20 16:06:26

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

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

2019-11-08 11:21:34

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

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

2019-10-21 14:50:49

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

最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。作为一个面试官,我们也需要这样,我也会经常总结和反思自己的面试技巧,现分享如下,希望求职者能有反向的思维,下次面试成绩能更好。机会是留给有针对性准备的人的我觉得是这是最重要的一点,很多人可能觉得同伴和同学跟你差...

2019-10-21 09:43:17

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

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

2019-10-14 16:55:13

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

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

2019-10-10 10:01:25

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

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

2019-09-29 00:10:21

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

谈到算法,图的操作是避免不了。而我们一般谈到图时,又必定会谈到图的遍历。图的遍历通常有 2 种,深度优先(DFS) 和广度优先(BFS)。本篇博文讲解深度优先(DFS)。图的表示图有两种表示方式1. 临接矩阵其实就是一个权重矩阵,用 1 代表两个结点有连接,0 表示没有连接,这样的表示方式通俗易懂,特别适合稠密图,也就是大多数结点是亮亮连接的情况。2. 临接表用一个数组储存...

2019-09-27 18:18:20

CMake 进行调试

在Linux下开发,可以用gdb进行调试,但是如果工程是用CMake构建的,那么需要在CMakeLists.txt中加入如下代码:CMake配置SET(CMAKE_BUILD_TYPE"Debug")SET(CMAKE_CXX_FLAGS_DEBUG"$ENV{CXXFLAGS}-O0-Wall-g2-ggdb")SET(CMAKE_CXX_FLAGS...

2019-09-18 17:42:44

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

一般的深度学习入门例子是 MNIST 的训练和测试,几乎就算是深度学习领域的 HELLO WORLD 了,但是,有一个问题是,MNIST 太简单了,初学者闭着眼镜随便构造几层网络就可以将准确率提升到 90% 以上。但是,初学者这算入门了吗?答案是没有。现实开发当中的例子可没有这么简单,如果让初学者直接去上手 VOC 或者是 COCO 这样的数据集,很可能自己搭建的神经网络准确率不超过 30%。...

2019-09-10 11:19:44

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    2019年《原力计划【第一季】》专属勋章,现已经开启第二季活动啦,小伙伴们快去参加吧
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。