- 博客(109)
- 资源 (1)
- 收藏
- 关注

原创 『OCR_detection』PSENet
文章目录前言一、网络结构二、后处理算法(渐进式扩展算法)三、标签的生成四、损失函数 loss五、OHEM 算法的思想六、训练自己的数据集6.1 数据准备6.2 数据增强6.3 pse_general 参数设置6.4 issue前言论文: Shape Robust Text Detection with Progressive Scale Expansion Network代码: https://github.com/whai362/PSENet自然场景的文本检测是当前深度学习的重要应...
2021-01-24 17:00:47
1561
3

原创 『目标检测』YOLO V5(2):代码解析
系列文章目录YOLO V5(1):学习笔记YOLO V5 代码解析系列文章目录一、网络结构图二、不同网络的深度三、不同网络的宽度四、yolov5s.yaml4.1 yaml 介绍4.2 parameters4.3 anchors4.4 backbone4.5 head五、common.py5.1 卷积层5.1.1 深度分离卷积层5.1.2 标准卷积层5.2 标准 Bottleneck5.3 BottleneckCSP5.4 SPP5.5 Flatten5.6 Focus5.7 Concat六、...
2021-01-04 16:02:17
1986
11

原创 『OCR深度实践』OCR学习笔记(1):绪论
OCR 深度实践OCR 学习笔记OCR 深度实践前言一、绪论1.1 传统 OCR 方法一般流程前言计算机文字识别,俗称光学字符识别,英文全称是 Optical Character Recognition (简称OCR),它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受、人又可以理解的格式。OCR技术是实现文字高速录入的一项关键技术。一、绪论1.1 传统 OCR 方法一般流程...
2020-12-29 19:27:09
1353

原创 『OCR_detection』CRAFT
文章目录一、CRAFT 思路二、CRAFT 网络结构2.1 backbone论文名称: Character Region Awareness for Text Detection开源代码: https://github.com/clovaai/CRAFT-pytorch一、CRAFT 思路图像分割的思想, 采用 u-net 结构, 先下采样再上采样;利用分割的方法,与图像分割有些不同的是,CRAFT 不是对整个图像进行像素级分类,而是做了回归,它有两个分支,一个是目标是字符的中心的概率(这
2020-12-25 13:36:31
805
2

原创 『OCR_Recognition』CRNN
文章目录前言一、CRNN1.1 CRNN 介绍1.2 CRNN 网络结构1.2.1 CNN1.2.2 Map-to-Sequence1.2.3 RNN1.2.4 CTC Loss1.2.4.1 序列合并机制1.2.4.2 训练阶段参考链接前言现今基于深度学习的端到端 OCR 技术有两大主流技术:CRNN OCR 和 attention OCR。其实这两大方法主要区别在于最后的输出层(翻译层),即怎么将网络学习到的序列特征信息转化为最终的识别结果。这两大主流技术在其特征学习阶段都采用了 CNN+RNN
2020-12-24 09:16:57
7367
6

原创 『工程项目实践』银行卡识别(CTPN+CRNN)
银行卡识别对各种银行卡进行卡号识别前言我们国内现在目前用的卡类标准为 ISO/IEC7810:2003 的 ID-1 标准,卡片尺寸是 85.60mm*53.98mm,通过计算长宽比可以得到为 0.623.先思考一下我们的大致思路:因为我们最终是要完成卡面信息的识别,我们可以分为两个关键流程:输入 -> 文本检测 -> 文本识别 -> 输出一、数据预处理1. 数据准备bankcard_pre 每张图片大小为 120 * 46,图片命名格式为 0000a_0.p
2020-12-22 10:47:54
2070
3

原创 『目标检测』YOLO V5(3):使用教程
一、安装环境依赖1.1 克隆项目git clone https://github.com/ultralytics/yolov5 # clone repo1.2 安装必要的环境依赖官方给出的要求是:python>=3.7、PyTorch>=1.5,安装依赖:cd yolov5pip install -U -r requirements.txtrequirements.txt二、下载预训练模型2.1 执行脚本下载预训练模型/yolov5/weights/download_we
2020-12-14 10:44:01
4062
5

原创 『目标检测』YOLO V5(1):学习笔记
一、基本知识点积累1. 自适应锚点框在 yolov3 中是采用 k 均值和遗传算法对自定义数据集进行分析,获得合适自定义数据集中对象边界框预测的预设锚点框。在 yolov5 中锚点框是基于训练数据自动学习的。(Auto Learning Bounding Box Anchors)2. 激活函数在 yolov5 中,中间 / 隐藏层使用了 Leaky ReLU 激活函数,最后的检测层使用了 Sigmoid 激活函数;3. 优化器在 yolov5 中提供了两个优化函数 Adam 和 SGD,并预
2020-12-09 17:07:38
3411

原创 『目标检测』Top-N 指标计算方法
一、图像分类性能评估指标(概念介绍)Top-1 & Top5: 这两个标准主要用于图像分类任务中Top-1 error rate: 对一张图片,若概率最大的是正确答案,则认为分类正确,否则错误;用 argmax 从网络输出取到的预测 index 与真实 index 的准确率。Top-5 error rate: 对一张图片,若概率前五的预测中包含正确答案,则认为分类正确,否则错误;二、问题分析1. 针对 Top-1 的准确率: 直接通过 argmax 就可以了import numpy as
2020-12-09 09:36:13
2037
4

原创 『目标检测』目标检测 — 基础知识
一、目标检测方法分类第一,已知目标的先验知识在这种情况下检测目标有两类方法:(1)用目标的先验知识训练一堆弱分类器,然后这些弱分类器一起投票来检测目标;(2)根据先验知识找到目标和非目标的最佳划分线第二,未知目标的先验知识此时不知道要检测的目标是什么,于是什么是目标就有了不同的定义。(1)检测场景中的显著目标,如通过一些特征表达出场景中每个像素的显著性概率,然后找到显著目标。(2)检测场景当中的运动目标。二、经典前背景分离目标检测方法2.1 背景差分法在检测运动目标时,如果背景
2020-12-09 09:36:00
1571

原创 『Keras』Keras 采用 finetune 时冻结部分网络层
一、使用背景在使用 keras 进行 finetune 有时需要冻结一些网络层加速训练keras中提供冻结单个层的方法:layer.trainable = False二、冻结 model 所有网络层base_model = DenseNet121(include_top=False, weights="imagenet", input_shape=(224, 224, 3))for layer in base_model.layers: layer.trainable = False三
2020-12-09 09:35:45
630
5

原创 『OCR_recognition』crnn-finetune 模型学习率调整策略
一、网络模型二、不同层设置不同学习率以优化器 Adam 为例:# 不同层设置不同的学习率train_params = list(map(id,crnn.rnn.parameters()))rest_params = filter(lambda x:id(x) not in train_params, crnn.parameters())# loss averagerloss_avg = utils.averager() # 对loss取平均对象# setup optimizerif
2020-12-08 15:18:14
778

原创 『计算机视觉』python + opencv 相机畸变矫正
一、相机畸变畸变: 指在世界坐标系中的直线转换到其他坐标系不再是直线,从而导致失真。1. 径向畸变:(枕形、桶形)光线在远离透镜中心的地方比靠近中心的地方更加弯曲。2. 切向畸变: 透镜不完全平行于图像平面,即 sensor 装配时与镜头间的角度不准。径向畸变矫正: 以图像中心点为圆心,相同半径的点补充量相同,不同半径的点补偿量服从二次函数。二、相机成像过程世界坐标系 —> 相机坐标系点的转换:求解外参 [ 旋转、平移 ]相机坐标系 —> 图像物理坐标系投影到成像平面
2020-12-08 10:49:59
7081
6

原创 『OCR_detection』CTPN
1. CTPN(基于连接预选框网络的文本检测)基本思路:既然宽度是可变、不确定的,那么就按照固定的高度进行检测,看看图像中有哪些区域是连续出现了一片同样高度特征的区域,并且其边缘符合文字的特点,就将其圈出来。该模型主要是对图片中的文本行进行准确定位,其基本做法是直接在卷积获得的 feature map(特征图)上生成的一系列适当尺寸的文本 proposals(预选框)进行文本行的检测。2. 网络结构CTPN模型利用了 RNN 和 CNN 的无缝结合来提高检测精度。其中,CNN用来提取深度特征,RNN
2020-07-18 17:03:03
1111
原创 仰卧起坐视觉计数方案
该方案采用 2推2流的骨骼点预测与骨骼点跟踪技术,结合先进的动作识别算法,为用户提供了一套高精度的计数工具,并能够应对各种复杂的运动场景。2推2流技术:利用高效的骨骼点预测与骨骼点追踪技术,方案能够实时获取运动者的骨骼关键点位置,实现动作精准追踪,支持流畅的多帧动态分析。我推出了一套 基于计算机视觉的仰卧起坐计数解决方案,专注于准确、高效地解决运动中的技术动作识别和行为分析问题。专业级计算机视觉仰卧起坐计数方案。
2024-12-01 22:14:42
244
原创 跳绳视觉计数方案
产品概述提供基于摄像头视觉技术的跳绳计数解决方案,可精准完成跳绳动作的实时计数,效果完全满足考试水平的要求。方案采用先进的计算机视觉算法,结合高效的模型架构,确保计数的准确性和稳定性。适用场景学校体育考试:为中小学及高中的体育考试提供精准跳绳计数服务,确保公平、公正、可视化。健身房与个人训练:为健身房提供智能化训练统计支持,提升用户体验;支持个人家庭使用,实时监控锻炼效果。赛事统计:在各类跳绳赛事中,提供准确计数支持,减少人工统计误差。核心功能高精度跳绳计数:通过视频流实时分析跳
2024-11-25 23:09:01
343
原创 计算机视觉算法服务
深厚的技术积累:在计算机视觉领域深耕多年,对主流的算法和工具(如TensorFlow、PyTorch等)都有深入的理解,并且在多个项目中成功落地。目标检测:帮助您实现图像或视频中物体的精准定位与识别,无论是人脸检测、车牌识别,还是工业产品的瑕疵检测,我都能为您量身定制高效、准确的检测模型。灵活的合作方式:作为个人兼职,我能根据您的实际需求和项目规模,提供灵活的合作模式。图像分割:提供精细化的图像分割服务,能够精准划分图像中的各个区域,适用于医学影像分析、无人驾驶、农业检测等多个领域。
2024-08-07 09:28:59
307
原创 使用torch普通算子组合替代torch.einsum爱因斯坦求和
具体来说,这个操作的输入是两个形状为 [b, n, d] 和 [b, m, d] 的张量 x 和 y,输出是一个形状为 [b, n, m] 的张量 z。其计算过程可以理解为:对于每个 b,z[b, n, m] 等于 x[b, n, :] 和 y[b, m, :] 之间的点积。为了用普通的 torch 操作符来替代 einsum,我们可以通过 torch.matmul 函数实现。torch.einsum(‘bnd, bmd->bnm’, x, y) 表示的是对张量 x 和 y 进行特定的求和和维度变换。
2024-08-06 16:40:27
503
原创 DINO-DETR
原始的 DETR 使用全零初始化 object query,导致模型优化困难,而 Anchor DETR 采用了 anchor points 来编码形成 object query,保证每个 query 关注 points 附近的特征,相当于为 querys 提供了明确的优化方向。PnP-DETR(ICCV 2021) 改进了 DETR 计算量大的问题,利用提出的 poll and pool(PnP)采样模块在图像特征上自适应的采样不同粒度的特征,从而实现计算量和性能的折衷。
2024-06-22 22:12:52
1003
原创 DN-DETR
匈牙利算法匹配的离散性和模型训练的随机性,导致 ground-truth 的匹配变成了一个动态的、不稳定的过程。DETR 在训练早期阶段,对于同一张图像的同一个物体,在不同 epoch 之间每个 object_query 会匹配到不同 gt(包括背景)。原因是匈牙利匹配中代价矩阵鲁棒性差,即稍微扰动就会影响匹配结果。故作者考虑额外引入加微弱噪声的gt,让额外的 object query 学习这部分gt,进而来克服不稳定的匹配过程。
2024-06-21 21:38:40
930
原创 Deformable-DETR
对于特征图的每一个位置会生成参考点(reference point),并且通过 Query 来生成相应的 sampling offsets,图中的是每一个点会生成三个 offsets 代 表由三个偏移点来计算出这个点的特征值,而这三个偏移点的权重也是由 Query 生成的 (Attention Weights)。从这里看到其中没有涉及矩阵乘法,因 此和 image 的尺寸是成线性关系的。
2024-06-19 22:32:36
509
原创 DETR开篇之作
DETR是一种基于Transformer的端到端物体检测方法,通过直接预测图像中的物体边界框和类别标签,简化了传统的检测流程。
2024-06-16 21:11:44
237
1
原创 【PyTorch】Balanced_CE_loss 实现
balance binary cross entropy损失函数在分割任务中很有用,因为分割任务会遇到正负样本不均的问题,甚至在边缘的分割任务重,样本不均衡达到了很高的比例。故此,个人在基于分割任务中,自实现了该损失函数,亲测有效!
2022-11-24 15:28:17
1176
原创 『Iflytek』平台及linux使用记录
Linux 使用ps -ef | grep pythonps aux | grep pythonkillall python平台使用dlp delete -i 进程号 # 结束任务dlp quota group # 查看资源dlp wait group # 排队详情-x: 不使用某个节点-s: 指定使用某个节点
2022-03-04 16:28:47
831
1
原创 『python_envs』Problem & Solution
Problem & Solution1. OSError: libcudart.so.9.0: cannot open shared object file: No such file or directory1. OSError: libcudart.so.9.0: cannot open shared object file: No such file or directory解决: 在对应的 bashrc 中增加一行 module load cuda/9.0...
2021-09-27 18:37:30
456
2
原创 『python』统计数据集均值与方差
# coding=utf-8""" 计算图片数据集所有图片的均值和方差@author: libo"""import numpy as npimport cv2import osimg_h, img_w = 224, 224 #根据自己数据集适当调整,影响不大means, stdevs = [], []img_list = [] imgs_path = 'D:/database/VOCdevkit/VOC2012/JPEGImages/'imgs_path_list = os.
2021-09-07 09:18:41
3532
7
原创 『pytorch』pytorch 代码积累
目录编写预测类持续更新 …编写预测类以下代码用于加载一个预先训练好的模型,进行模型预测,大都可以使用,不排除特定情况!from ceevee.base import AbstractPredictorclass MySuperPredictor(AbstractPredictor): def __init__(self, weights_path: str, ): super().__init__() self.model = self._load_model
2021-08-27 00:11:40
232
1
原创 『语音信号处理』语音库 librosa 学习
librosa一、频谱图一、频谱图librosa.display.specshow(data, x_axis=None, y_axis=None, sr=22050, hop_length=512)参数:data:要显示的矩阵sr :采样率hop_length :帧移x_axis 、y_axis :x和y轴的范围频率类型‘linear’,‘fft’,‘hz’:频率范围由 FFT 窗口和采样率确定‘log’:频谱以对数刻度显示‘mel’:频率由mel标度决定时间类型ti
2021-08-19 00:20:56
6104
1
原创 『paddle』X2Paddle 学习笔记:模型转换与部署
目录一、简介二、特性三、能力四、安装4.1 环境依赖4.2 pip安装(推荐)4.3 源码安装五、快速开始5.1 功能一:推理模型转换5.2 功能二:PyTorch模型训练迁移六、使用教程一、简介X2Paddle 是飞桨生态下的模型转换工具,致力于帮助其它深度学习框架用户快速迁移至飞桨框架。目前支持 推理模型的框架转换 与 PyTorch训练代码迁移,提供了详细的不同框架间 API 对比文档,降低开发者上手飞桨核心的学习成本。二、特性支持主流深度学习框架目前已经支持 Caffe/Tensor
2021-07-26 10:32:58
2754
6
原创 『paddle』X2Paddle 学习笔记:支持的模型列表
目录TensorFlow预测模型Caffe预测模型ONNX预测模型PyTorch预测模型TensorFlow预测模型模型代码SqueezeNetcodeMobileNet_V1codeMobileNet_V2codeShuffleNetcodemNASNetcodeEfficientNetcodeInception_V3codeInception_V4codeInception_ResNet_V2codeVGG1
2021-07-23 11:35:44
1061
2
原创 『paddle』paddleseg 学习笔记:模型导出
模型导出一、获取预训练模型二、将模型导出为静态图模型三、结果文件本教程提供了一个将训练好的动态图模型转化为静态图模型并进行部署的例子一、获取预训练模型注意:下述例子为 Linux 或者 Mac 上执行的例子,windows 请自行在浏览器下载 参数 并存放到所创建的目录mkdir bisenet && cd bisenetwget https://paddleseg.bj.bcebos.com/dygraph/cityscapes/bisenet_cityscapes_1024x
2021-07-22 12:03:50
1650
1
原创 『paddle』paddleseg 学习笔记:自定义组件
添加组件一、创建自定义分割模型二、创建自定义损失函数三、创建自定义数据变换(数据增强)四、创建自定义骨干网络五、创建自定义数据集举例PaddleSeg 提供了五种类型的可扩展组件,即 MODELS、LOSSES、TRANSFORMS、BACKBONES、DATASETS。PaddleSeg使用基于面向对象的设计思想,在创造你自己的模型时,请以 Python class 的形式编写。一、创建自定义分割模型如果你打算设计一个自定义分割模型,例如在 newnet.py 中实现 NewNet 类(你可以为
2021-07-22 09:13:43
1886
4
原创 『paddle』paddleseg 学习笔记:模型评估
模型评估一、配置化驱动方式下评估和预测1.1 评估1.2 预测二、API方式下评估和预测2.1 评估2.2 预测一、配置化驱动方式下评估和预测1.1 评估训练完成后,用户可以使用评估脚本 val.py 来评估模型效果。假设训练过程中迭代次数(iters)为 1000,保存模型的间隔为 500,即每迭代 1000 次数据集保存 2 次训练模型。因此一共会产生 2 个定期保存的模型,加上保存的最佳模型 best_model,一共有 3 个模型,可以通过 model_path 指定期望评估的模型文件。p
2021-07-21 16:40:32
2687
3
原创 『paddle』paddleseg 学习笔记:模型部署
模型部署1. 说明2. 前置准备3. 预测1. 说明本方案旨在提供一个 PaddlePaddle 跨平台图像分割模型的 Python 预测部署方案作为参考,用户通过一定的配置,加上少量的代码,即可把模型集成到自己的服务中,完成图像分割的任务。2. 前置准备请使用 模型导出 您的模型, 或点击下载官方网站的 样例模型 用于测试。接着准备一张测试图片用于试验效果,我们提供了 cityscapes 验证集中的一张 图片 用于演示效果,如果您的模型是使用其他数据集训练的,请自行准备测试图片。3. 预测
2021-07-21 11:49:12
1414
2
原创 『paddle』paddleseg 学习笔记:模型压缩
模型压缩一、安装 PaddleSlim二、模型量化step 1. 模型训练step 2. 模型量化并再次训练模型裁剪step 1. 模型训练step 2. 裁剪并保存模型三、部署四、量化&剪枝加速比许多的神经网络模型需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用,通过模型压缩可以减少模型参数或者计算量,有效地降低计算和存储开销,便于部署再受限的硬件环境中。PaddleSeg 基于 PaddleSlim,集成了模型在线量化、模型裁剪等模型压缩能力。本文提供相关能力的使用教程。一、安装
2021-07-21 10:31:55
682
1
原创 『paddle』paddleseg 学习笔记:数据准备
数据准备1. 数据集结构2. 数据标签3. 数据格式说明3.1 标注协议3.2 灰度标注vs伪彩色标注3.3 灰度标注转换为伪彩色标注3.4 文件列表生成如果您需要使用自定义数据集进行训练,请按照以下步骤准备数据.1. 数据集结构 custom_dataset | |--images | |--image1.jpg | |--image2.jpg | |--... | |--l
2021-07-20 17:36:25
1243
4
原创 『paddle』paddleseg 学习笔记:损失函数
损失函数1. BCELoss2. BootstrappedCrossEntropyLoss3. CrossEntropyLoss4. RelaxBoundaryLoss5. DiceLoss6. EdgeAttentionLoss7. DualTaskLoss8. L1Loss9. MSELoss10. OhemCrossEntropyLoss11. OhemEdgeAttentionLoss12. LovaszSoftmaxLoss13. LovaszHingeLoss14. MixedLoss1.
2021-07-18 21:20:15
3067
3
原创 『paddle』paddleseg 学习笔记:API 应用案例
API应用案例模型训练1. 构建模型2. 构建训练集3. 构建验证集4. 构建优化器5. 构建损失函数6.训练模型评估1. 构建模型2. 加载模型参数3. 构建验证集4. 评估5. 多尺度+翻转评估效果可视化1. 构建模型2. 创建transform3. 构建待预测的图像列表4. 预测通过本篇文章,你将快速学会 PaddleSeg 的 API 调用,轻松进行语义分割模型的训练、评估和预测。我将以 BiSeNetV2 和 视盘分割数据集 为例一步一步的教导你(也是自己工作的记录)如何调用 API 进行模型
2021-07-18 21:19:42
953
5
原创 『paddle』paddleseg 学习笔记:模型训练
模型训练模型训练训练参数解释训练可视化模型训练我们可以通过 PaddleSeg 提供的脚本对模型进行训练,请确保完成了 PaddleSeg 的安装工作,并且位于 PaddleSeg 目录下,执行以下脚本:export CUDA_VISIBLE_DEVICES=0 # 设置 1 张可用的卡# set CUDA_VISIBLE_DEVICES=0 # windows下请执行此命令python train.py \ --config configs/quick_start/bisene
2021-07-17 09:05:57
2774
9
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人