自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注计算机视觉算法训练,算法优化部署以及SDK开发的知识分享。

211硕士毕业,计算机视觉算法方向,从事模型训练部署,算法优化方向工作,就职于某AI大厂。本科是嵌入式开发方向,研究员转视觉算法方向。既懂视觉算法训练,也懂算法优化部署以及算法SDK开发。

  • 博客(125)
  • 资源 (2)
  • 收藏
  • 关注

原创 随机梯度下降法的数学基础

梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法)。因此,有必要从头理解梯度的来源和意义。本文从导数开始讲起,讲述了导数、偏导数、方向导数和梯度的定义、意义和数学公式,有助于初学者后续更深入理解随机梯度下降算法的公式。大部分内容来自维基百科和博客文章内容的总结,并加以个人理解。

2023-01-18 15:28:15 350

原创 神经网络基础部件-损失函数详解

损失函数定义:损失函数是深度学习模型训练过程中关键的一个组成部分,其通过前言的内容,我们知道深度学习算法优化的第一步首先是确定目标函数形式。损失函数大致可分为两种:回归损失(针对连续型变量)和分类损失(针对离散型变量)。常用的减少损失函数的优化算法是“梯度下降法”(Gradient Descent)。

2023-01-14 14:20:14 354 2

原创 神经网络基础部件-激活函数详解

本文分析了激活函数对于神经网络的必要性,同时讲解了几种常见的激活函数的原理,并给出相关公式、代码和示例图。从机器学习的角度来看,神经网络其实就是一个非线性模型,其基本组成单元为具有非线性激活函数的神经元,通过大量神经元之间的连接,使得多层神经网络成为一种高度非线性的模型。神经元之间的连接权重就是需要学习的参数,其可以在机器学习的框架下通过梯度下降方法来进行学习。

2023-01-10 21:25:01 273 1

原创 深度学习炼丹-数据预处理和增强

在工业界,数据预处理步骤对模型精度的提高的发挥着重要作用。对于机器学习任务来说,广泛的数据预处理一般有四个阶段(视觉任务一般只需 Data Transformation): 数据清洗(Data Cleaning)、数据整合(Data Integration)、数据转换(Data Transformation)和数据缩减(Data Reduction)。

2022-12-20 17:34:39 912 4

原创 Python 读取图像方式总结

学习数字图像处理,第一步就是读取图像。这里我总结下如何使用 opencv3,scikit-image, PIL 图像处理库读取图片并显示。

2022-12-14 18:05:56 384 1

原创 numpy 堆叠数组函数总结

在做图像和nlp数组数据处理的时候,经常要实现两个数组堆叠或者连接的功能,这经常用numpy库的一些函数实现。

2022-12-14 17:46:21 269 1

原创 Python 数据分析-pandas 库入门

本文主要记录了 Series 和 DataFrame 作为 pandas 库的基本结构的一些特性,如何创建 pandas 对象、指定 columns 和 index 创建 Series 和 DataFrame 对象、赋值操作、属性获取、索引对象等,这章介绍操作 Series 和 DataFrame 中的数据的基本手段。

2022-12-14 17:38:19 92 2

原创 万字长文详解 YOLOv1-v5 系列模型

yolov1 作者提出了一种新的目标检测方法 YOLO,之前的目标检测工作都是重新利用分类器来执行检测。作者的神经网络模型是端到端的检测,一次运行即可同时得到所有目标的边界框和类别概率。YOLO 架构的速度是非常快的,base 版本实时帧率为 45 帧,smaller 版本能达到每秒 155 帧,性能由于 DPM 和 R-CNN 等检测方法。

2022-12-14 15:41:45 375 6

原创 深度学习炼丹-超参数设定和模型训练

所谓超参数,即不是通过学习算法本身学习出来的,需要作者手动调整(可优化参数)的参数(理论上我们也可以设计一个嵌套的学习过程,一个学习算法为另一个学习算法学出最优超参数),卷积神经网络中常见的超参数有: 优化器学习率、训练 Epochs 数、批次大小 batch_size 、输入图像尺寸大小。

2022-12-13 21:02:43 543 7

原创 Docker 基础和常用命令总结

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、能更高效地利用服务器。

2022-12-08 20:21:06 248

原创 深度学习炼丹-不平衡样本的处理

在机器学习的经典假设中往往假设训练样本各类别数目是均衡的,但在实际场景中,训练样本数据往往都是不均衡(不平衡)的。比如在图像二分类问题中,一个极端的例子是,训练集中有 95 个正样本,但是负样本只有 5 个。这种类别数据不均衡的情况下,如果不做不平衡样本的处理,会导致模型在数目较少的类别上出现“欠学习”现象,即可能在测试集上完全丧失对负样本的预测能力。

2022-12-07 22:09:21 1521 23

原创 OpenCV3 图像处理笔记

此笔记针对 Python 版本的 opencv3,c++ 版本的函数和 python 版本的函数参数几乎一样,只是矩阵格式从 ndarray 类型变成适合 c++ 的 mat 模板类型。注意,因为 python 版本的opncv只提供接口没有实现,故函数原型还是来自 c++版本的opencv,但是参数解释中的数据类型还是和 python 保持一致。

2022-12-04 02:09:15 639 3

原创 算法图解笔记

编写递归函数时,必须告诉它何时停止,因此,每个递归函数有两个部分:基线条件(base case)和递归条件(recursive case)。递归条件指的是函数调用自己,而基线条件则 指的是函数不再调用自己,从而避免形成无限循环。

2022-12-03 23:03:57 102

原创 深度学习数学基础-概率与信息论

概率论是用于表示不确定性声明的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明(statement)的公理。概率论的知识在机器学习和深度学习领域都有广泛应用,是学习这两门学科的基础。

2022-12-01 00:46:42 450 11

原创 轻量级模型设计与部署总结

轻量级网络的手动设计目前还没用广泛通用的准则,只有一些指导思想,和针对不同芯片平台(不同芯片架构)的一些设计总结,建议大家从经典论文中吸取指导思想和建议,然后自己实际做各个硬件平台的部署和模型性能测试。

2022-11-24 02:07:01 1865 38

原创 计算机视觉岗实习面经

计算机视觉岗实习面经

2022-11-19 03:40:02 1662 2

原创 计算机视觉岗暑期实习应聘总结

找实习感想、找实习建议、面试过程建议、计算机视觉岗找实习心得、计算机视觉面试问题分类总结、已面试的公司和进展、实习面经内容汇总。

2022-11-19 03:30:45 991

原创 cv算法工程师学习成长路线

本文内容为 cv 算法工程师成长之路上的经典学习教材汇总,对于一些新兴领域则给出了较好的博客文章链接。本文列出的知识点目录是成系统且由浅至深的,可作为 cv 算法工程师的常备学习路线资料。部分学习资料存在离线 PDF 电子版,其可在 github仓库-cv_books 中下载。

2022-11-15 21:34:35 2144 41

原创 处理器基础知识

先描述下一般处理器的概念,维基百科的定义是 “In computing, a processor is an electronic circuit which performs operations on some external data source, usually memory or some other data stream”。最为常见的处理器有 CPU(可以运行任何程序)、GPU(图形图像处理)和 DSP(处理数字信号),还有专门用来做 DNN 应用神经网络处理器。

2022-11-14 20:58:25 280 1

原创 GitHub 车牌检测识别项目调研

汽车车牌检测和识别实践指南,提供了算法方案和测试效果。

2022-11-09 19:41:26 236 3

原创 猿创征文|目标检测算法框架之ubuntu16.04安装mmdetection库

ubuntu16.04系统如何安装 PyTorch-gpu 版本、及 mmdetection 包,以及遇到的各种问题如何解决。

2022-11-03 19:52:18 154 6

原创 Python3 数据结构

Python 处理大数据集可以借助 Python 内置数据结构:列表、元组、字典 、 集合等,但是一般要和 pandas 和 Numpy 等库结合起来使用。熟练掌握Python,首先就是熟练掌握Python的数据结构:列表、元组、字典 、 集合。

2022-10-26 14:31:16 547 5

原创 万字长文解析Scaled YOLOv4模型(YOLO变体模型)

Scaled YOLOv4 模型最主要的贡献在于通过理论系统分析和实验证了模型缩放的原则,进一步拓展了 CSPNet 方法,并基于此设计了一个全新的 Scaled-YOLOv4,Scaled-YOLOv4 网络的卷积模块都有使用 CSP。总的感觉就是针对不同的 GPU 平台,根据作者分析出来的模型缩放理论,且符合一些原则的情况下,选择不同的模型宽度和深度参数,并让模型更深更宽。

2022-10-25 16:44:31 866 9

原创 Halcon 快速入门

HALCON 是德国 MVtec 公司开发的一款综合性的机器视觉标准软件,拥有全球通用的集成开发环境(HDevelop)。它节约了产品成本,缩短了软件开发周期——HALCON 灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的机器视觉(Machine Vision)软件。

2022-10-25 16:04:28 936 1

原创 计算机基础知识总结

操作系统中堆和栈都是指内存空间,不同的是堆为按需申请、动态分配,例如 C++ 中的 new 操作(当然 C++ 的 new 不仅仅是申请内存这么简单)。堆可以简单理解为当前使用的空闲内存,其申请和释放需要程序员自己写代码管理。

2022-10-24 22:08:56 33

原创 深入浅出动态规划算法(中)

一个模型指的是适合用动态规划算法解决的问题的模型,这个模型也被定义为“多阶段决策最优解模型”。具体解释如下:一般是用动态规划来解决最优问题。而解决问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。然后我们寻找一组决策序列,经过这组决策序列,能够产生最终期望求解的最优值。

2022-10-17 20:57:45 52 3

原创 深入浅出动态规划算法(上)

动态规划比较适合用来求解最优问题,比如求最大值、最小值等等。它可以非常显著地降低时间复杂度,提高代码的执行效率。它和递归一样都非常难学,主要学习难点在于求解问题的过程不太符合人类常规的思维方式。

2022-10-17 20:52:58 35

原创 深入浅出回溯算法

回溯的处理思想,有点类似枚举搜索。暴力枚举所有的解,找到满足期望的解。为了有规律地枚举所有可能的解,避免遗漏和重复,我们把问题求解的过程分为多个阶段。每个阶段,我们都会面对一个岔路口,我们先随意选一条路走,当发现这条路走不通的时候(不符合期望的解),就回退到上一个岔路口,另选一种走法继续走。

2022-10-17 20:48:03 53

原创 深入浅出分治算法

分治算法(divide and conquer)的核心思想其实就是四个字,分而治之 ,也就是将原问题划分成 n 个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解。分治和递归的区别:分治算法是一种处理问题的思想,递归是一种编程技巧。

2022-10-17 20:43:50 30 1

原创 深入浅出贪心算法

贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市,那这就是一种贪心算法。

2022-10-17 20:40:41 198 3

原创 深入浅出八种排序算法

排序算法是程序员必须了解和熟悉的一类算法,排序算法有很多种,基础的如:冒泡、插入、选择、快速、归并、计数、基数和桶排序等。

2022-10-13 16:20:09 295 5

原创 深度学习算法基础

统计领域的基本概念,例如参数估计、偏差和方差,对于正式地刻画泛化、欠拟合和过拟合都非常有帮助。偏差和方差的关系和机器学习容量、欠拟合和过拟合的概念紧密相联。偏差和方差度量着估计量的两个不同误差来源。偏差度量着偏离真实函数或参数的误差期望。而方差度量着数据上任意特定采样可能导致的估计期望的偏差。

2022-10-13 15:38:07 41

原创 通用矩阵乘(GEMM)优化算法从入门到实践

矩阵乘的算法优化可分为两类:基于算法分析的方法:根据矩阵乘计算特性,从数学角度优化,典型的算法包括 Strassen 算法和 Coppersmith–Winograd 算法。基于软件优化的方法:根据计算机存储系统的层次结构特性,选择性地调整计算顺序,主要有循环拆分向量化、内存重排等。

2022-10-13 15:00:16 483

原创 深入理解计算机系统-第3章程序的机器级表示

计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列阶段生成机器代码。

2022-10-12 19:21:50 476 1

原创 一文入门 3D 视觉算法基础

SLAM 是Simultaneous Localization and Mapping的缩写,中文译作“同时定位与地图构建”。它是指搭载特定传感器(单目、双目、RGB-D相机、Lidar)的主体,在没有环境先验信息的情况下,在运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为“视觉SLAM”;如果传感器位激光,则为激光 SLAM。

2022-10-12 16:49:22 1060 5

原创 深入浅出二分查找算法

二分查找(Binary Search)算法是一种针对有序且不含重复数据集合的查找算法,时间复杂度为 O(logn) ,二分查找虽然性能比较优秀,但应用场景也比较有限。因为其底层依赖于数组这种结构,所以不适合数据量大的情况。再次,对于较小规模的数据查找,二分查找的优势并不明显,一般直接使用顺序遍历就可以了。二分查找更适合处理静态数据,也就是没有频繁的数据插入、删除操作。

2022-10-11 13:24:49 76 3

原创 深入浅出递归算法-需要满足三个条件

递归是一种应用非常广泛的算法(或者编程技巧)。很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等。去的过程叫“递”,回来的过程叫“归”。基本上所有的递归问题都可以用递推公式来表示。

2022-10-11 13:22:06 1009

原创 深入浅出广度和深度优先搜索算法

算法是基于特定数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。树是图的一种特例(连通无环的图就是树)。

2022-10-11 13:18:42 57 3

原创 常见数据结构-图的表示

图和树一样都是非线性表数据结构,但是更复杂。树中的元素我们称为节点,图中的元素我们叫作顶点(vertex)。图中的一个顶点可以与任意其他顶点建立连接关系,这种连接关系叫作边(edge)。有方向的图叫做“有向图”。以此类推,我们把边没有方向的图就叫做“无向图”。

2022-10-11 13:15:10 164

原创 常见数据结构-红黑树(上)基础

平衡二叉查找树其实有很多种,但是我们一般听到的基本都是红黑树。红黑树的英文是“Red-Black Tree”,简称 R-B Tree。它是一种不严格的平衡二叉查找树。顾名思义,红黑树中的节点,一类被标记为黑色,一类被标记为红色。

2022-10-11 13:11:57 25

I2C总线说明书

I2C总线说明书,C语言编程讲解案例,I2C总线开发必备资料

2015-09-12

关于ISD4004语音芯片资料

关于ISD4004语音芯片资料,很全的数据手册,中文版资料,有典型电路图讲解

2015-09-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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