自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人唯优的博客

人唯优,才可爱

  • 博客(28)
  • 收藏
  • 关注

原创 直播流AI应用开发工程技巧(一) 视频帧传输推理优化

最近在做直播流上面的AI应用,所以这个系列主要是记录一些在直播流项目中的工程经验。比如如何基于Flask快速进行视频帧的传输推理,如何用ffmpeg-python里面快速搭建起视音频直播流推理环境,保证音视频时序对齐,如何尽可能多线程的方式加速应用等等。这篇我们一起讨论下第一个主题,如何使用python flask来做一个直播流上面的推理引擎。应用场景比如说视频的逐帧审核、逐帧打标等等,当然对于抽帧的逻辑也是同样适用的。在直播应用中使用AI推理,我个人经验是整体的编解码和AI推理的性能都很重要。

2023-03-29 21:13:27 784 1

原创 TensorRT8 meets Python(三) Onnx+TensorRT推理(案例基于yolov5 6.0)

在前面两篇我们介绍了TensorRT的环境部署以及TensorRT的功能性介绍。在使用tensorRT的时候,最常见的方式就是各种训练框架都基于Onnx来做中间转换,通过Onnx来生成TensorRT engine,进而享受到TensorRT的推理速度。所以本文就以常见的检测模型yolov5 6.0 来进行TensorRT模型的部署。整体测试都是基于TensorRT python backend,在开始之间请大家思考如下问题?1.推理时所选的BatchSize 和 Fps的关系是怎样的?

2023-03-28 21:30:56 1332 2

原创 TensorRT8 meets Python(二) TensorRT快速入门介绍

本系列教程是重点关注如何在Python环境中转换、使用TensorRT做深度模型的推理。在上篇中,我们介绍了TensorRT在python和ubuntu环境中的部署。重点就是解决好显卡驱动、cuda、cudnn和tensorRT之间的版本对应关系。在本篇中,我们快速介绍TensorRT的入门知识,为后续的TensorRT模型部署打下基础。笔者建议还是过一遍Nvidia TensorRT官方教程,如果实在懒或者英语困难的同学,也可以看下我为大家划好的原文重点和解释。

2023-03-26 18:00:42 657

原创 TensorRT8 meets Python(一)解决TensorRT8部署+升级的坑

最近打算为希望在python项目中使用TensorRT模型推理的同学出一套博客。一方面python调用tensort的方式已成熟且简单灵活,另一方面可以与python强大的数据处理功能向结合。在这个过程中,又希望使用到trtexec命令行工具进行模型转换,所以需要在python环境和linux环境下都部署同版本的tensorrt。在这个过程中发现了很多坑,且网上教程很乱,因此记录下来提供给大家

2023-03-24 16:21:23 1745

原创 Yolo5-face:简单实用的人脸检测框架(汇总篇)

Yolov5-face框架精讲

2022-08-07 17:24:06 3300

原创 计算机视觉知识点整理(上) 基础篇(持续更新)

前言最近在面试,每天会被考到很多知识点,这些知识点有些我已经看了十几遍,还是会反应慢或者记不住。回想我在学习过程中,也是学了忘忘了学,没有重复个几十遍根本难以形成永久记忆。这次我复习和整理面试知识点的时候决定把CNN里面的关键创新点、容易疏忽的点都记录下来,方便快速查找回顾,于是就有了这篇像词典一样的永久更新的文章。一.基础知识1.1 BatchNorm/LayerNorm/InstanceNorm/GroupNorm基础知识点 记忆点 备注 Batch Norm 达到

2021-04-14 14:55:45 13234 3

原创 计算机视觉知识点整理(下)轻量化篇(持续更新)

前言最近在面试,每天会被考到很多知识点,这些知识点有些我已经看了十几遍,还是会反应慢或者记不住。回想我在学习过程中,也是学了忘忘了学,没有重复个几十遍根本难以形成永久记忆。这次我复习和整理面试知识点的时候决定把CNN里面的关键创新点、容易疏忽的点都记录下来,方便快速查找回顾,于是就有了这篇像词典一样的永久更新的文章。一、轻量化1.1 轻量化网络网络名称 记忆点 备注 MobileNetV1 深度可分离卷积替换传统卷积 计算量和参数量下降为原来的1/Dk^2(Dk为

2021-04-14 14:54:54 8407 1

原创 小思考和小创新:自创一种小目标的分割和损失加权方法

一.基本思路最近在整理小目标的检测和分割的方法的时候,想到了基于目标面积加权的一种思路,现在记录下,后面有机会验证下,基本思路如下:1.找到mask里所有的目标轮廓 2.计算所有poly的面积 3.自适应阈值比例判断哪些是小物体 4.重新填充这些小物体 5.拿到新的mask后映射为权重图 6.根据权重图对CE进行小目标加权二.源代码import cv2import numpy as npimport randomimport torchimport matplotli.

2021-04-11 23:51:25 2137 4

原创 When YoloV5 Meets Raccoon:手把手用Yolov5(v4.0)制作一个小浣熊捕捉apk

一.前言最近博主在梳理yolov5的源码,这块相信很快就能和大家见面了。与此同时我也觉得这个系列应该也配上一点实战的内容。尤其是目前端到端的实战篇真的是太少了,大部分都是讲训练的过程,但是yolov5更多的是要用到端上,比如安卓手机或者ios手机。本篇教程就是完成这样一件事,从数据集开始完整的阐述训练+部署的详细过程,相信大家只要跟着走一遍,就能对完整的项目流程有更为清晰的认识。同时为了阅读的生动有趣,我这里打算做一个小浣熊识别的App,放到安卓手机上去识别小浣熊的照片。二.环境、数据准备环境:

2021-03-31 14:31:50 25674 3

原创 Faster-RCNN深度剖析+源码debug级讲解系列(三)训练

前言在之前的文章里,我们重点debug了RPN网络对于ROI的生成,详细阐述了第一次坐标调整的细节实现;以及Classifier网络对于最终结果的作用,详细阐述了第二次坐标调整的细节。这就是two-stage目标检测算法的核心。但是在RPN和Classifier之间,大家也发现了每个batch的默认的样本个数从600*B变为了128*B(B表示batchsize)。在这个过程中是怎样进行抽样的?又是怎么保证正负样本的比例的?loss是如何计算的?这些问题我们将共同在文本中结合debug去一行行的推敲。在

2021-03-23 18:38:04 25682 4

原创 Faster-RCNN深度剖析+源码debug级讲解系列(二)Classifier对ROI进行回归

前言在上一篇中我们详细的debug了Faster-RCNN的RPN网络,以及如何依据RPN对anchor进行第一次的坐标偏移。值得注意的是整个过程都是在图像的原始比例上进行的,而不是在stride层面。RPN网络的输出参数是直接调整原始anchor坐标的。在这篇文章中我们会继续debug网络的分类部分,即模型是如何基于ROI的输出结果进行分类和回归的。当然,没有看过上一篇的小伙伴可以先看下上篇,传送门如下:Faster-RCNN深度剖析+源码debug级讲解系列(一)RPN网络和Bbox回归源码de

2021-03-23 00:02:25 7280 1

原创 Faster-RCNN深度剖析+源码debug级讲解系列(一)RPN网络和Bbox回归

前言因为Faster-RCNN是一个非常经典的two-stage网络了,所以本来是没打算做这期内容的,但是博主觉得一方面这个网络通过各种改造仍然具备在很多竞赛中拿到top成绩的能力,另一方面这个网络的细节很多,可能非常容易被忽视。所以博主打算带大家一起剖析下Faster-RCNN的源码。当然非常基础的部分比如backbone网络构建这些,我就省略了,只重点去看一下RPN网络和分类网络两次调整BoundingBox的细节,ROI Pooling和NMS的细节等容易被忽略的地方。这个系列的第一期我们先一起来看

2021-03-22 19:17:29 9539 4

原创 yolov5深度剖析+源码debug级讲解系列(三)yolov5 head源码解析

前言在上次的文章中我们解析了backbone网络的构建源码,在这篇中我们针对model.py剩余的部分进行debug解析。如果没看过之前文章的小伙伴,推荐先查看这个系列的第一篇和第二篇。下面贴上传送门:1.yolov5源码解析第一篇 架构设计和debug准备2.yolov5源码解析第二篇 backbone源码解析今天我们继续对model.py里的Detect类进行解析,这部分对应yolov5的检查头部分。detect类在model.py里,这部分代码如下:class Detect(nn.Modu

2021-03-07 17:07:39 27716 28

原创 计算机视觉知识点整理(中) 模型篇(持续更新)

前言我在学习过程中,经常反复记忆各种网络的创新点是什么。这次我复习的时候决定把里面的关键创新点、容易疏忽的点都记录下来,方便快速查找回顾。记忆表网络名称 记忆点 备注 MobileNetV1 深度可分离卷积替换传统卷积 计算量和参数量下降为原来的1/Dk^2(Dk为卷积核kernel size,一般为3,所以计算量约为1/9) 深度卷积的激活函数是Relu6 下采样是通过3x3的深度卷积 stride=2 MobileNetV2 .

2021-03-04 11:38:54 33805 25

原创 2020年AI竞赛获奖方案复盘系列(三) 目标检测竞赛trick-kaggle小麦检测1st&2nd Place solution

前言这是2020年博主参加的第一个竞赛,kaggle上面的小麦检测。这场比赛是对小麦头进行目标识别,kaggle大赛官方说是意义重大,可以更好的评估粮食产量,为全人类做贡献,简直是厉害了。这个比赛结束后我就一直没有复盘,现在趁着做竞赛复盘系列把这些从我指间漏掉的知识一颗颗的重新收起来。这个比赛的中后期被yolov5霸榜了,但是后来被kaggle官方禁用了。按照惯例大家先一起深吸一口欧气,我们就开始本次复盘。首先是竞赛的传送门,请大家阅读本文前先去熟悉下赛题:kaggle小麦竞赛传送门现在开始复

2021-03-01 14:45:30 12720 3

原创 yolov5深度剖析+源码debug级讲解系列(二)backbone构建

前言上一篇中我们简单回顾了yolov5的架构和搭建了开发环境。需要回顾的小伙伴可以点击下面传送门,基于第一篇的理解我们再进行源码解读就会有事半功倍的效果。yolov5架构剖析和环境搭建传送门这篇中我们开始解析yolov5的源码,类似yolov3我们同样从模型的构建开始。这部分核心的代码在yolo.py文件中。我采用的yolo代码版本是官方4.0版本(2021年1月发布的最新版本),这个版本的很多细节都和之前的略有区别了。代码传送门见下面链接。代码传送门另外大家可以在官网看到yolov5的技术演进

2021-02-28 17:54:41 27525 22

原创 yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备

前言前段时间分析了yolov3的源码,这次想带着小伙伴一起把yolov5完全掌握。博主还是保持着一贯的风格,依旧采用debug级别的源码剖析。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。只要小伙伴可以花时间把这个系列读完,就会对yolov5的理解有所提升。去年参加了kaggle的小麦检测比赛,yolov5在比赛的中段开始呈现霸榜趋势,超越了efficientdet。虽然最后yolov5因为权限等某些问题被kaggle官方禁用了,但是仍然体现出了其强大的能力。值

2021-02-26 17:09:47 41395 9

原创 2020年AI竞赛获奖方案复盘系列(二) 遥感语义分割竞赛trick-2020华为云人工智能大赛

前言这是去年博主参加的一个语义分割竞赛,最终取得了top3%(14/377)。这是博主第一次参加遥感图像语义分割竞赛,借着这次机会博主开始了语义分割的学习旅程,比起最终名次,博主更在意的是在这个过程中能学到什么。在上次复盘了违法广告目标检测竞赛之后,博主充分意识到了复盘的重要性,因此迫不及待地对这次遥感分割竞赛进行复盘。没看过之前违法广告的目标检测竞赛复盘的朋友可以也关注下检测赛,因为是2020年的竞赛里面很多的model和trick都是最新的,也涉及很多cvpr2020的论文。下面是传送门:违法广告

2021-02-24 20:14:38 22911 12

原创 2020年AI竞赛获奖方案复盘系列(一) 目标检测竞赛trick-华录杯违法广告检测比赛

前言博主去年参加了一系列比赛,取得了还可以的成绩,拿了几个国内比赛的top10,也拿到了kaggle的银牌。博主的梦想是有一天能够成就kaggle GM,成为一流的Data Scientist。有个遗憾的事是参加完这些比赛以后并没有好好的分析、学习其中出现的各种优秀的思路和技巧。博主并不想错过这种吸前排"欧气"的机会,所以打算写一个系列,记录我们能从这种竞赛前排选手的作品中,学到哪些内容。毕竟学到了就是自己的了。博主只记录和学习很新的trick和模型,这些竞赛也都是20年的,所以很多trick和meth

2021-02-23 17:51:49 22760 10

原创 超详细的yolov3深度剖析+源码debug级讲解(二)

前言此篇文章是接上一篇内容的,上一篇的传送门:yolov3深度剖析+源码debug级讲解(一)在上一篇中,我们详细debug了yolov3源码models.py文件,并重点介绍了模型创建的部分。models.py里面除了Darknet类之外,还有一个重要的类YOLOLayer,它涉及了anchor的操作、GT和Pred值的放缩、iou的计算以及loss的重要内容。基本上搞懂了这个类,那么yolov3的代码核心就明白了50%以上,对于yolov3这个项目来讲,这也是最难懂的一部分代码。希望大家再接再厉

2021-02-20 14:32:55 14653 15

原创 超详细的yolov3深度剖析+源码debug级讲解(一)

这里写自定义目录标题前言一、解析models.py文件1.如何更方便的准备debug环境?2.parse_model_config()函数是如何加载配置文件的?3.怎样更方便的debug yolov3模型结构?总结如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言大家

2021-02-19 11:59:28 29753 2

原创 Idea开发Spark直接以yarn-cluster模式提交到Ambari集群的解决方案

一.背景介绍许多中小型企业使用Ambari去管理自己的大数据集群,以Spark作为主要的计算框架去实现数据的分析。通用的Spark的开发调试流程是往往需要以下流程:Idea上进行开发,并使用spark local模式进行调试。 打包程序放到测试分布式环境上进行spark on yarn client模式进行调试。 使用spark on yarn cluster模式进行调试,成功后在正式...

2019-06-18 18:17:44 2002 5

原创 Ambari升级失败回滚修复(数据库rollback+降级downgrade+bugfix)

一.背景介绍之前一直在使用Ambari的2.2.18版本,作者在一次试图升级的过程中因操作不当导致了升级失败。几经周折,最终实现回滚操作,鉴于目前关于ambari的升级失败回滚及数据库rollback的资料很少很零散,笔者总结了这篇文章,和大家分享。遇到升级失败的问题,请仔细阅读本文,应该都能找到解决办法。二.误操作2.2到2.4升级是需要分开升级ambari-server/agent...

2018-12-05 09:33:58 4172

原创 Spark bug:java.lang.IllegalArgumentException: Illegal pattern component: XXX 解决办法

一.特点:1.此问题经常出现在spark2.1.x升级到spark2.2.x的时候出现。比如通过maven构建spark环境的时候,依赖maven进行版本升级。2.此问题出现在调用spark.read.json或者csv的时候出现。二.原因maven升级的时候,没有自动加载完整依赖包,jsonAPI对于timeStampFormat有特殊需求,默认为`yyyy-MM-dd'T...

2018-08-22 14:41:10 10106 2

原创 spark内存分配模型及源码剖析

一.背景    在实际生产工作中,一般都会采用spark on yarn的方式运行管理spark任务。这时候难免就会遇到提交任务时该如何去写配置参数,比如公司给你分配了一个yarn的队列10core,200G内存,你该如何在这个整体资源限制下提交任务?为了回答这个问题,本文阐述了可spark的内存管理机制,供大家参阅。二.spark静态内存分配机制    spark内存管理机制基于Me...

2018-08-14 18:46:32 4716

转载 hadoop的mapReduce和Spark的shuffle过程的详解与对比及优化

大数据的分布式计算框架目前使用的最多的就是hadoop的mapReduce和Spark,mapReducehe和Spark之间的最大区别是前者较偏向于离线处理,而后者重视实现性,下面主要介绍mapReducehe和Spark两者的shuffle过程。MapReduce的Shuffle过程介绍S...

2018-08-08 09:58:33 1266 1

原创 Ambari在不升级情况下整合高版本spark2.x框架

一.背景介绍大家都知道spark在2.x之后实现了一系列更方便快捷的改进,spark目前社区已经更新到了2.3.1版本,笔者发现spark在2.2.x版本之后,对于spark-ml的功能有显著增强。而笔者用的大数据实验环境是基于Ambari搭建的,版本为2.2.2,对应采用的HDP的版本为2.4.x。笔者杯具的发现,这个版本对于spark2.x还不能完全支持,自然就无法使用spark2.x以后...

2018-07-21 22:10:41 13473 10

原创 Hive的几种常见压缩格式(ORC,Parquet,Sequencefile,RCfile,Avro)的读写查询性能测试

一.测试背景工作中想把历史的APP日志结构化到Hive中进行查询,由于数据较大,需要进行压缩,根据Hive官方提供的几种压缩格式分别进行写入,读取,OLAP计算的性能测试,以求找到最好的压缩格式。 二.测试方法概述 数据来源:采用生产上数据抽样,大小为100G。原始日志格式为textfile文件(标准JSON)。 测试平台:公司Ambari测试平台,物理内存100G。 测试...

2018-04-26 12:09:13 31984 1

空空如也

空空如也

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

TA关注的人

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