自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认真写的博客

写程序时得到的收获

原创 【量化交易】获取A股数据

tushare ID:497274准备本次数据的获取是通过tushare平台获取,该平台整理股票、基金、期货、债券、外汇等各种全面的数据。tushare网页链接:https://tushare.pro在该平台注册账号,并在个人主页中找到自己token获取代码1.获取所需股票的编码、行业、上市日期等基本信息def stock_basic(): save_path = "data/stock_basic.csv" if os.path.exists(save_path):

2022-04-05 11:57:43 1856

原创 【c++】 thread

thread创建一个简单线程#include <iostream>#include <thread>#include <utility>#include <chrono>void f1(int n){ for (int i=0;i<5;i++) { std::cout << "Thread 1 executing\n"; ++n; std::this_threa

2022-02-01 12:40:22 589

原创 【c++】智能指针

malloc() 函数在 C 语言中就出现了,在 C++ 中仍然存在,但建议尽量不要使用 malloc() 函数。new 与malloc() 函数相比,其主要的优点是,new 不只是分配了内存,它还创建了对象。只有malloc创建的指针对象是可以通过free去释放内存的,如果malloc创建了指针变量ptr_a,然后将ptr_a的值赋值给另一个指针变量 ptr_b ,然后free(ptr_b) 是行不通的。只能去 free那个被 malloc 创建出来的指针变量。new 也是这样。code#inc.

2022-01-31 19:54:18 835

原创 【c++】数组与指针

数组与指针基本概念实例演示指针变量的声明与赋值数组基本概念指针是c/c++中一个非常重要的概念。如果在程序中定义了一个变量,在对程序进行编译时,系统会给这个变量分配内存单元。编译系统会根据程序中定义的变量类型分配一定长度的空间。例如,c++ 为整形变量分配4个字节,为字符型变量分配1个字节。内存区的每个字节都有编号,就是地址。通过地址能够找到所需的变量单元,因此包地址形象化的称为指针。如果一个变量专门用来存放另一个变量的地址,则它称为指针变量,指针变量的值是地址(即指针)。指针是一个地址,指针变量

2022-01-31 12:52:02 1098

原创 ffmpeg图片视频互转

视频转图片ffmpeg -i video.mp4 -r 1 frames/%5d.jpg将视频video.mp4以fps为1的帧率转成jpg。图片转视频ffmpeg -i ${PWD}/frames/%5d.jpg -r 1 test.mp4

2021-09-01 18:12:37 345

原创 [目标检测]YOLOv3

文章目录背景模型输出Bounding Box PredictionObjectness ScoreClass Predictionloss背景输入320x320,精度和ssd一样,但速度是ssd的三倍。模型输出Bounding Box Prediction通过网格的方法建模每个网格负责预测bounding box中心点落在自己区域的目标。txt_{x}tx​ 相对所属网格左上角横坐标的偏移量tyt_{y}ty​ 相对所属网格左上角纵坐标的偏移量twt_{w}tw​ 相对对应anchor的对

2021-05-21 21:32:40 238

原创 [目标检测]EfficientDet

文章目录背景性能模型结构后处理损失函数背景模型的效率在计算机视觉中变得越来越重要,作者系统地研究了用于目标检测的神经网络体系结构设计选择并提出一些关键的优化措施以提高效。首先,提出一个新的FPN结构BiFPN。其次,我们提出了一种复合缩放方法,该方法可以在同一时间统一缩放所有主干,特征网络和框/类预测网络的分辨率,深度和宽度。性能modelAPParamsEfficientDet-D0 (512)34.33.9MEfficientDet-D1 (640)40.26

2021-05-04 12:13:48 789 6

原创 [目标检测]CenterNet

背景检测就是识别出图中目标的位置,目前常用物体检测器详尽列出潜在物体的位置并对每个位置进行分类。 这是浪费,低效的,并且需要额外的后处理。 而centernet,作为一个anchor free模型,将对象bounding box的中心点进行建模。 以热力图的形式找到中心点,并通过中心点回归到所有其他对象属性,例如大小、方向甚至骨骼点。性能Object Detection on COCO validationmodelbackbonefpsAPCenterNet-DLADL

2021-05-02 12:40:49 9874 7

原创 卡尔曼滤波

基本概念卡尔曼滤波是一个优化估计算法,能够降低预测结果的方差,是预测结果更加稳定。上图是代表的是一个雷达对一辆汽车位置的估计,黑点代表真实的情况,红色线条代表的是雷达的探测结果,紫色线条代表的是经过卡尔曼滤波处理后的结果。原理使用上一时刻的最优估计(后验估计)得到当前时刻的估计值(先验估计),然后利用观测值修正当前的估计值,得到当前时刻的最优估计。通俗理解:我们想要得到一个预测结果有两个办法,但这两个办法都有误差,卡尔曼滤波是综合这两个方法的结果得到一个误差更小的结果。比如想知道一个汽车现在所

2021-04-18 20:22:29 201

原创 deepsort跟踪的基本流程

目录基本概念成员基本流程本篇文章主要梳理deepsort跟踪的基本流程,不会具体讲解所有细节,但是基本的环节都不会遗漏。基本概念匈牙利算法匈牙利算法也可以称之为最小权重匹配,给一个矩阵,每一行至多与一列匹配,每一列也至多与一行匹配,当所有行或者列都匹配结束后,使匹配的结果之和最小。>>> cost = np.array([[4, 1, 3], [2, 0, 5], [3, 2, 2]])>>> from scipy.optimize import linear

2021-03-13 19:52:23 1503

原创 c++高级教程

目录文件和流C++ 异常处理动态内存命名空间模板函数模板文件和流到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型表示输入文件流,用于从文件读取信息。f

2020-12-27 11:34:27 1485

原创 c++面向对象(精简版)

目录类&对象C++ 类成员函数C++ 类访问修饰符公有(public)成员私有(private)成员protected(受保护)成员继承类构造函数 & 析构函数构造函数析构函数C++ 拷贝构造函数友元函数内联函数this 指针类的静态成员静态成员函数继承访问控制和继承继承类型多态类&对象类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,

2020-12-27 00:18:24 426

原创 c++面向对象

目录类&对象类访问修饰符public私有(private)成员protected(受保护)成员继承中的特点类构造函数 & 析构函数类的析构函数拷贝构造函数C++ 友元函数内联函数类&对象类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。#include <iostream> using namespace std; class Box

2020-12-26 11:38:54 519

原创 【技术文档】HRNet姿态估计

目录模型结构augmentloss模型结构class PoseHighResolutionNet(nn.Module):def __init__(self, cfg, **kwargs): self.inplanes = 64 extra = cfg['MODEL']['EXTRA'] super(PoseHighResolutionNet, self).__init__() # stem net self.conv1 = nn.Conv2d(3, 64,

2020-12-25 21:21:42 452

原创 优化器:SGD > Momentum > AdaGrad > RMSProp > Adam

目录SGD 随机梯度下降momentumAdaGradRMSPropSGD 随机梯度下降在这里SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们平梯度均值。后面几个改进算法,均是采用min-batch的方式。momentum1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的。2.加速学习3.一般将参数设为0.5,0.9,或者0.99,分别表示最大速度2倍,10倍,100倍于SGD的算法。4.通过速度v

2020-12-25 20:48:30 785

原创 【技术文档】centernet(姿态估计)

目录模型结构backbone dla34模型结构backbone dla34dla(Deep Layer Aggregation)We introduce two structures for deep layer aggregation (DLA): iterative deep aggrega-tion (IDA) and hierarchical deep aggregation (HDA).Hierarchical deep aggregation merges blocks and s

2020-12-23 20:18:52 1860 2

原创 【技术文档】yolact

目录模型结构backboneblockFPNheadprotonet最终的输出结果形势traincfgmatch模型结构backbone模型的backbone是res50,主要由四个layers组成,在输入进入每个layer之前,需要经过nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3, bias=False),norm_layer(64),nn.ReLU(inplace=True)和nn.MaxPool2d(kernel_size=3, stri

2020-12-22 20:26:06 804 1

原创 C++入门必备知识

目录执行环境设置本地环境设置文本编辑器C++ 编译器基本语法C++ 中的分号 & 语句块C++ 标识符注释数据类型typedef 声明枚举类型size_t数据类型C++ 中的左值(Lvalues)和右值(Rvalues)自动转换规则声明与定义声明在调用之前变量的作用域静态变量C++ 常量定义常量宏定义 #define 和常量 const 的区别是否可以做函数参数const关键字应用修饰指针执行1.在 C++ 中,分别使用.h 和.cpp 来定义一个类。.h 中存放类的声明函数原型(放在类的声明中

2020-12-21 00:16:04 530

原创 【技术文档】RetinaFace(详细版)

模型结构组成backbone的子结构def conv_bn(inp, oup, stride = 1, leaky = 0): return nn.Sequential( nn.Conv2d(inp, oup, 3, stride, 1, bias=False), nn.BatchNorm2d(oup), nn.LeakyReLU(negative_slope=leaky, inplace=True) )def conv_bn_no_r

2020-12-20 12:46:21 2104 4

原创 【技术文档】RetinaFace

RetinaFace模型原本是作者用于检测人脸,但我将其用于行人检测。我只是简单的将其anchor的宽高比例由原来的1:1,变为现在1:2.25,只有这一种比例,只是在FPN每个位置会有两个不同大小的,该比例的anchor。模型的特点就是比较小(4M)。configcfg_mnet = { 'name': 'mobilenet0.25', 'min_sizes': [[16, ...

2020-12-18 10:41:48 1754 1

原创 【技术文档】RetinaNet

RetinaNet的特点就是应用了FocalLoss。该模型大小为80M。数据读取我使用的数据是依然是crowdhuman,将其整理成VOC格式,也就是图片路径放入一个json文件,标注放到一个标注文件。该模型并没有设置背景类,若模型只检测行人这一个类的话,那么类别索引就是0,若有两个类,那么类别索引就是0,1。annotations = np.zeros((0, 5))for box ...

2020-12-18 10:40:46 441

原创 pytorch模型转torchscript

文章目录目的方法tracescript目的将pytorch模型转化成torchscript目的就是为了可以在c++环境中调用pytorch模型。pytorch官方链接方法共有两种方法将pytorch模型转成torch script ,一种是trace,另一种是script。一版在模型内部没有控制流存在的话(if,for循环),直接用trace方法就可以了。如果模型内部存在控制流,那就需要用到script方法了。trace通过使用示例输入对模型的结构进行一次评估,并记录这些输入在模型中的变化过程

2020-10-11 11:30:45 11967 10

原创 【人脸识别项目一】:眨眼检测

项目背景眨眼检测是我在卓朗科技实习期间做的第二个项目,这个项目做了大概一个多月的时间,从2019/7/21到2019/8/28才算基本完成眨眼检测的算法模型。眨眼检测主要用于上班的打卡软件上,有的打卡软件上有人脸识别,通过眨眼识别可以防止有人通过照片冒充人脸欺骗打卡软件,另一方面也可以通过眨眼拍照增加用户与打卡产品的互动性,使员工的打开过程更加方便。项目过程dlib关键点检测眨眼的定义...

2019-08-28 15:08:13 15729 15

原创 【机器学习案例八】股票投资中均线策略的应用

预测股票走势案例背景数据预处理导入基本库读取数据构造label构造特征构造依据将新特征加入到原始数据集中构造训练集合测试集普通神经网络案例背景数据集 SH50 给出了上证 50 指数从 2005 年 1 月 1 日至 2019 年 5 月10 日的股价数据,包括日期(date)、开盘价(open)、最高价(high)、最低价(low)、收盘价(close)、成交量(vol)。请建立模型对指数未...

2019-05-23 17:47:24 2315 3

原创 【机器学习案例七】:图像类别识别

keras图像识别案例背景数据预处理普通神经网络要求建立模型模型评估CNN要求模型建立(两个卷积层)模型建立(一个卷积层)案例背景数据集 caltech101 中给出了经过转化的 102 种物体图像数据( 128*128 像 素 ), 共 9144 个样例,相应的类标签在caltech101_labels给出。在此基础上将原始数据划分为训练集(80%)和测试集(20%)。(如果计算机性能...

2019-05-22 23:33:23 5165 1

原创 机器学习案例六:基于聚类的投资组合分析

基于聚类的投资组合分析案例背景数据预处理Kmeans、层次聚类以及谱聚类等kmeans层次聚类谱聚类找到离类中心最近的股票要求定义函数执行函数返回结果案例背景数据集 sh50components 中给出了上证 50 指数成分股从 2011 年 1 月4 日至 2019 年 5 月 10 日,共 2029 个交易日的涨跌幅数据。由于部分股票上市时间较晚,实际共有 42 只股票。数据预处理导...

2019-05-22 22:19:16 2710 2

原创 案例五:摩拜单车停放点(聚类分析)

摩拜单车停放点案例背景数据预处理DBSCAN要求模型参数寻找DBSCAN的eps参数进行聚类KMEANS要求模型建立画图类中心数量最多的十个类中心点案例背景数据集 mobike 给出了上海市某日 27 万辆摩拜单车的实时位置(经纬度),请利用聚类分析找到由摩拜单车用户自发形成的单车停放点,其中停放点定义为在某一区域内停放的摩拜单车超过 50 辆。数据预处理导入库import pand...

2019-05-22 21:47:56 6974 16

原创 【机器学习案例四】基于心电图的心脏病诊断(分类)

基于心电图的心脏病诊断案例背景数据预处理决策树要求模型参数格子搜索确定最优参数用最优参数训练模型利用产生的决策树确定属性重要性AdaBoost、随机森林、 GBDT、xgboost、lightGBM要求代码神经网络模型要求模型(200,200)模型参数(50,40,20)案例背景数据集 mitbih_train 中给出了心电图数据,其中每一行表示采集到一个人的心电图片段,并且将其转化为 187...

2019-05-22 21:03:06 9551 26

原创 【机器学习案例三】网购人群购买意图分析(分类)

案例背景数据集“online_shoppers_intention”给出了网购人群是否将浏览行为转化为购买行为的相关数据,包括 10 个数值型属性与 8 个类别型属性,其中“revenue”可以作为分类的类标签。请将该数据集随机划分为训练集(80%)和测试集(20%)并进行分类。数据预处理导入库import pandas as pdimport numpy as npimport ...

2019-05-22 18:46:51 8018 6

原创 【机器学习案例二】商品购买量的预测(回归)

基于回归分析的PM2.5预测案例背景数据预处理Lasso回归要求模型参数格子搜索确定最优惩罚因子用最优惩罚因子训练模型训练效果决策树要求模型参数格子搜索确定最参数用最优惩罚因子训练模型将得到的决策树对属性重要性进行评价案例背景数据集 BlackFriday 中给出了与商品销售量(Purchase)相关的因素,包 括 Gender 、 Age 、 City_Category 、 Stay_In_...

2019-05-22 11:48:52 5892 2

原创 【机器学习案例一】PM2.5的预测(回归)

基于回归分析的PM2.5预测案例背景数据预处理普通线性回归要求模型参数训练模型训练效果岭回归要求模型参数格子搜索确定最优惩罚因子用最优惩罚因子训练模型Lasso回归要求模型参数格子搜索确定最优惩罚因子用最优惩罚因子训练模型基于lasso回归,评价模型变量的重要性案例背景数据集 pm2.5 中给出了与预测 pm2.5 有关的气象数据。请利用 2010年至 2013 年的数据作为训练集对 201...

2019-05-22 11:03:23 22790 14

原创 【机器学习之路】十个机器学习分类模型处理银行数据

数据http://archive.ics.uci.edu/ml/datasets/Bank+Marketing导入基本库和数据import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport osfrom sklearn.model_selection i...

2019-03-26 23:22:00 5697 2

原创 【机器学习之路】十三种回归模型预测房价

数据:https://www.kaggle.com/santibermejo/xgboost-for-house-price-prediction这篇文章汇总了13个机器学习的回归算法,对比它们在同一个数据下的预测的效果。其实就是为了选模型的时候方便一点,一个一个试太麻烦了导入需要的库import pandas as pdimport numpy as npimport matplo...

2019-03-24 21:15:40 71021 29

原创 python3爬虫系列教学、案例、代码实战,看这几篇就够了

内容较多,请您细嚼慢咽,不懂就搜。爬虫第一课:爬虫的思路 https://blog.csdn.net/weixin_41779359/article/details/86184148爬虫第二课:定义函数(新手必看) https://blog.csdn.net/weixin_41779359/article/details/86227792爬虫第三课:正则表达式 https://blog.c...

2019-01-12 20:26:40 14671 2

原创 爬虫第五课:动态数据-拉勾网

拉勾网动态数据爬取网页的数据类型有两种,一种是动态数据,一种是静态数据。猫眼电影的数据就是静态数据,因为网页中所有的信息可以在它的源代码页中找到,像58同城,boss直聘里的数据都是静态生成的,可以很容易的爬取出来。但有些网站的数据是动态数据,动态数据就是你打开你需要数据所在页面的时候,在源代码中找不到你要的数据。这就说明数据是动态生成的,需要从其他途径来找到数据。拉钩网是一个有关招聘信息的网...

2019-01-10 19:13:28 4486 6

原创 爬虫第四课:猫眼电影

首先要导入我们需要使用的库导入库是因为库里有我们需要用的函数,这些函数能帮我们实现某些功能。使用 import 导入我们需要用的库,写法如图1所示,由图1可以看出导入了requests库和re库,第一个库是用来向服务器发送请求获得响应的,第二个库是正则表达式用来提取数据的。你要提取什么数据?假如我们要获得猫眼电影榜单top100的电影信息,网址为https://maoyan.co...

2019-01-10 18:27:16 12552 22

原创 爬虫第三课:正则表达式

Regular expression 正则表达式正则表达式可以非常简洁的表达一组很长字符串的特征,所以把正则表达说成一行胜千言。可以把一组字符串的特征或特点表达出来。比如说有一组字符串:无穷多个以L开头后面有一个或无穷多个H字符串。‘LH’‘LHH’‘LHHH’…‘LHHHHHHH…’正则表达式: LH+‘PY’开头,后续存在不多于10个字符,后续字符不能是‘P’或‘...

2019-01-10 15:09:36 6227 1

原创 爬虫第二课:定义函数

定义函数定义函数就是封装一部分代码,设置参数,输入相应的参数就会返回相应的结果。如果一个爬虫的代码超过五十行,那么如果不定义函数,每一行代码就会看起来很凌乱,如果定义一个函数的话,界面的结构就会很清晰。每次使用直接调用函数就可以了,不需要重复敲代码。比如:定义一个啷个数之和减去两个数之差的函数:def func(x,y): a = x + y b = x - y ...

2019-01-10 13:30:08 6481 2

原创 爬虫第一课:写爬虫的思路

什么是爬虫?爬虫就是从网上获得数据,它是通过编程来实现的。对于非计算机专业的人来说,一提到编程两个字,可能就会觉得自己做不到。但其实并不是这样,编程就是通过写代码,来让计算机实现你的想法。你解决问题的想法,就会影响你编程时写的代码。对于爬虫这件事情,就是从网上获取数据,那么相对应的代码就不会有太大的变化。比如你爬取58同城的求职和爬猫眼电影的电影数据的代码并不会有太大的差别。我写过的每个关于...

2019-01-09 22:18:06 11518 4

原创 爬虫第六课:爬取携程酒店数据

首先打开携程所有北京的酒店http://hotels.ctrip.com/hotel/beijing1简简单单,源代码中包含我们需要的酒店数据,你以为这样就结束了?携程的这些数据这么廉价地就给我们得到了?事实并不是如此,当我们点击第二页的时候出现问题:虽然酒店的数据改变了,但是我们发现该网页的网址却没有改变,这也就造成了源代码中酒店的数据不改变,还是第一页的数据,如下图所示。我们遇到的第一个...

2019-01-09 16:54:06 28304 54

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