自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 收藏
  • 关注

原创 Python Performance Matters

python performance

2023-05-16 21:47:27 240 1

原创 理解cpp的重载,重写,重定义

函数重载overload,重写override和重定义redefine。

2022-11-24 11:44:57 563

原创 C 库函数 - feof()

feof()判断文件结尾feof函数读取文件最后一个字符的时候依然会返回0,表明没有到达文件结尾,只有再往后读取字符(越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾。#include <stdio.h>#include <string.h>int main(){ char StrTmp[80]; memset(StrTmp,0,sizeof(StrTmp)); FILE *fp; fp=fopen("test.txt",

2022-04-18 21:08:19 807

原创 网络模型不收敛的可能原因

检查输入数据是否正常。是否有异常数据(全部是零,gt不对)是否归一化数据与预训练模型原来的输入标准是否一致。数据预处理是否正确简单化自己的问题。检查自己的损失函数检查损失的输入检查自定义的网络层检查冻结层的设置检查维度信息是否匹配梯度回传检查检查模型初始化参数超参数的设置是否合理减少正则化训练模式和测试模式的相互转换可视化 (权重,激活函数,权重直方图,层的更新)使用不同的优化器梯度爆炸和梯度消失(查看梯度的值)调节学习率的大小(和权重应该是数量级的差异,权重0.1,学.

2022-03-28 01:03:28 631

原创 ROI Align的实现原理2_代码实现

​书接上文,上一次分析了一下ROI Align的原理是如何实现的,一直想知道具体细节是如何实现的,这里找了相关资料进行学习.上一篇原理介绍博客:ROI Align的实现原理_dlvector的博客-CSDN博客输入输出的官方文档Arguments:input (Tensor[N, C, H, W]): input tensorboxes (Tensor[K, 5] or List[Tensor[L, 4]]): the box coordinates in (x1, y1, x2, y2)f

2022-03-23 01:43:28 3867

原创 python深度拷贝和浅拷贝的差异

# add a new element to orignal 1D list aimport copy a = [1, 2]b = a c = a.copy() d = a[:]e = list(a)f = copy.copy(a)g = copy.deepcopy(a) print("add a new element to orignal 1D list a")a.append(3)print("original a = ", a)print("assign b = ",

2022-02-18 23:45:19 306

原创 从汇编角度看编译器优化

化简内联函数指针(别名现象)矢量化循环内部优化结构体(直接对齐)STL容器数学运算编译器选项

2022-02-08 01:19:12 193

原创 cpp拷贝构造的3/5法则

来源由于拷贝控制操作是由三个特殊的成员函数来完成的,所以我们称此为“C++三法则”。在较新的 C++11 标准中,为了支持移动语义,又增加了移动构造函数和移动赋值运算符,这样共有五个特殊的成员函数,所以又称为“C++五法则”。也就是说,“三法则”是针对较旧的 C++89 标准说的,“五法则”是针对较新的 C++11 标准说的。为了统一称呼,后来人们把它叫做“C++ 三/五法则”。CPP拷贝构造这个命名,原来看c++ primer的时候,搞的我有点晕,今天梳理一下:这个命名可以看做 内容来源 +

2022-01-16 23:18:31 671

原创 mmdection入门

mmdection基本框架

2021-12-27 00:40:07 265 1

原创 非极大值抑制算法(Non-Maximum Suppression,NMS)

算法思想目标检测中常用到NMS,在faster R-CNN中,每一个bounding box都有一个打分,NMS实现逻辑是:1,按打分最高到最低将BBox排序 ,例如:A B C D E F2,A的分数最高,保留。从B-E与A分别求重叠率IoU,假设B、D与A的IoU大于阈值,那么B和D可以认为是重复标记去除3,余下C E F,重复前面两步。代码实现"""文件说明:https://www.cnblogs.com/king-lps/p/9031568.html"""# !/usr/bin/

2021-12-26 21:02:17 2537

原创 如何高效阅读源码

以前阅读代码总是很慢,自己理解能力也不是很好,很难直接在脑中运算出每一步结果,主要原因有两点:对api不熟悉,框架太多,函数太多.->多熟悉自己常用的框架源码框架层数一般较深,多次返回就会记不住原来的内容.这次也是从网上阅读了一些博主的帖子,希望改进自己的源码阅读能力,提高工作效率.如何高效阅读源码带着问题去阅读,这次为什么看代码?希望理解和解决什么问题?先让项目可以跑起来多熟悉框架的功能点的使用,不会用就谈不上读多debug,打断点来分析运行的情况.重点地方写注释形成文档,记录自

2021-12-19 23:20:34 221

原创 maxflow 算法

一些相关的博客一些论文和代码实现图像处理中的全局优化技术(Global optimization techniques in image processing and computer vision) (一)  这个博客写的特别好,一定要好好研究一下.wiki:Ford–Fulkerson algorithm最大流问题与Ford-Fulkerson算法介绍...

2021-09-26 01:15:50 1516

原创 网课:GAMES101-homewor1

本次作业主要是补充两个函数,实现的目标是一个三角形绕着一个轴旋转.主要是使用课上PPT4里面涉及的内容.主要讲解了三个矩阵,MVP.对应在计算机里的拍照,实际上是这三步:Model:把要成像的物体摆好位置。View:摆好照相机的位置,对准。Projection:成像!它们分别对应着三种变换,这就是 MVP transformation,我们目前要做的,就是搞清楚它们是怎么变换的。第一个模型的变化矩阵的旋转矩阵是最简单的,直接从2维度的情况推演过来就可以了.Eigen::Matrix4f g

2021-07-25 22:40:00 193

原创 存档_CmakeList的一些常见配置

cmake 设置cuda的时候一些配置选项.# 按惯例,cmake的版本CMAKE_MINIMUM_REQUIRED(VERSION 2.8)# 项目名称PROJECT(AD-Census)# cmake寻找cuda,这个要现在系统里面装好cuda,设置好cuda的环境参数啥的FIND_PACKAGE(CUDA REQUIRED)# C++和CUDA的编译参数,可选。SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")SET(CUDA_N

2021-07-25 16:48:27 223

原创 dataset探索:花的类别

daisy:雏菊(花); (类似雏菊,但花稍大的)菊科植物;dandelion蒲公英;rose玫瑰sunflowers向日葵tulips郁金香

2021-07-17 00:19:57 102

原创 网课:GAMES101-homework pa0

作业1还是挺简单的,把课上一些基本的概念写成代码即可。#include<cmath>#include<eigen3/Eigen/Core>#include<eigen3/Eigen/Dense>#include<iostream>int main(){ // Basic Example of cpp std::cout << "Example of cpp \n"; float a = 1.0, b = 2.

2021-04-12 01:20:26 318

原创 Anaconda瘦身_清理相关存储

用了一年的anaconda,存储占用44G,不断出现存储不够的报警。可以看到有很多库,不同版本的库,这里可以用conda自带的清理命令行来处理一下。conda clean 命令方参数$ conda clean -Husage: conda clean [-h] [-a] [-i] [-l] [-p] [-t] [-f] [-c TEMPFILES [TEMPFILES ...]] [-d] [--json] [-q] [-v] [-y]Remove unu

2021-04-05 20:15:11 7857 2

原创 导向滤波原理(Guided Filter)的一些剖析和实践

参考:知乎:导向滤波原理(Guided Filter)CSDN博客:双边滤波与引导滤波

2021-03-21 01:54:41 1014

原创 ROI Align的实现原理

ROI Pooling 的局限性分析在常见的两级检测框架(比如Fast-RCNN,Faster-RCNN,RFCN)中,ROI Pooling 的作用是根据预选框的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和包围框回归操作。由于预选框的位置通常是由模型回归得到的,一般来讲是浮点数,而池化后的特征图要求尺寸固定。故ROI Pooling这一操作存在两次量化的过程。将候选框边界量化为整数点坐标值。将量化后的边界区域平均分割成 k x k 个单元(bin),对每一个单元的边.

2021-02-21 02:00:16 1241 2

原创 网课:GAMES101-现代计算机图形学入门-闫令琪

点乘:主要用来区分向量的方向,确定向量是否同向(点乘为正)叉乘:主要用来1.寻找法向量,2.点是否在向量包围圈之内。3.区分两个向量的左右关系。齐次坐标为啥需要使用齐次坐标呢?主要是为了统一线性变换和平移这一个操作,成矩阵乘法的形式。第三个维度,等于0的时候,表示的是向量;等于1的时候,表示的是点。这个ppt中,点+点是中点,原因是因为相加之后,第三个维度有2*w,把第三个维度变成1之后,点就变成了中点的形式。参考博客:视频:GAMES101-现代计算机图形学入门-闫令琪

2021-02-13 23:38:00 330

原创 cpp源码STL之vector中push_back的时间复杂度分析

先说结论最好是O(1),最差是O(n), 均摊是O(1)。最好的情况,就是插入的时候,还有空余;最坏的情况,就是每次插入都满了,要重新分配内存。均摊复杂度,先看一下定义对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。推导这里就是按照定义,对插入九个数的过程进行了分析

2021-02-09 02:11:54 625

原创 algebraic reconstruction technique (ART)算法

ART算法是图像复原的经典方法.假定线性方程Ax=b,其中A是mn维度,n是输出的像素个数,m是正玄图的个数.x是n1的向量,b也是m*1的向量.最终的迭代方程如下1:其中,bi是b向量中的第i个元素,ai是A矩阵中的第i行.这是一种求解线性方程组的迭代方法,对于数据规模或者维度比较大的时候,SVD方法往往失效.该算法是每次用A矩阵中的一行来解决这个问题,并且假设开始的x0=0.最终该算法可以收敛.对于一个线性方程2:Gm=d.在二维空间,Gm可以看作是在二维空间中的线;在三维空间中,Gm可

2021-02-03 23:21:05 3180 1

原创 傅里叶变换中一些细节

为什么傅里叶变换是对单通道图像进行处理?傅里叶变换与时间或空间信号的强度一起工作,并转换为频率信号的强度。没有一个数字可以表示颜色的强度而不转换为灰度。您可以将图像分成3个不同的图像,分别针对红色,绿色和蓝色分量。这些中的每一个都可以独立进行傅里叶变换处理。当您应用傅立叶变换(FT)(或某些相关变换,例如DCT)时,您正在查看图像中的空间频率。直观地说,这意味着FT重新组织您的图像中的空间信息,以矩阵的形式对应于2D正弦曲线的系数,如果总结,您将获得原始图像。正如Mark Ransom指出的..

2021-02-02 15:09:26 824

原创 opencv:傅里叶变换中的相位的计算

#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>using namespace cv;using namespace std;//快速傅里叶变换void fft2Image(InputArray _src, OutputArray _dst){ //得到Mat类型 Mat

2021-02-02 01:38:53 2676

原创 sklearn:卡方分布输入不能是负数

今天使用sklearn进行特征选择的时候出现一个错误:ValueError: Input X must be non-negative.找了stackoverflow,原来是卡方验证不能用于负值。卡方分布是通过统计当前变量的频次,和目标变量的频次来分析当前变量时候有关系来衡量当前变量的重要程度,所以用来做特征选择。这里细致讲解,请看参考博客第三个。频次当然不是负数,所以不能输入负数值。解决办法:1.把输入变化到0-1.sklearn.preprocessing.MinMaxScaler()

2021-02-01 01:00:28 2415

原创 opencv测试的基本代码

开始一直运行不正确,发现和标准代码有出入。发现是使用img.empty() == 0这个用法是错误的。#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <opencv2/opencv.hpp>#include "opencv2/highgui/highgui.hpp"#include <iostre

2021-01-20 23:29:51 2128 1

原创 计算弧度θ的估计计算范围

经常在计算视场角的时候,会看见sin(theta)≈theta从弧度的角度考虑可以看到62度的时候,这弧度和sin(弧度)之间的差值是0.2。可以看做近似相等。在角度等于49°,弧度和sin(弧度)差值小于0.1,更加近似相等。...

2021-01-19 17:06:56 577

原创 2020kaggle年度调查报告

Top visualization libraries: Matplotlib, Seaborn, Ggplot / ggplot2Top machine learning frameworks: Scikit-learn, TensorFlow, KerasTop big data products: PostgresSQL, MongoDB, Microsoft SQL ServerTop BI tools: Tableau, Microsoft Power BI, Data StudioTop

2021-01-10 21:03:19 152

原创 自动调参数工具:Keras-Tuner的基本使用

基本的代码,导入一些库文件。from tensorflow.keras.datasets import fashion_mnistfrom tensorflow import kerasfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Activation(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()定义模型构建函数,

2021-01-03 23:36:22 1702

原创 pytorch中二分类的lossf函数使用

二分类中,torch.nn.BECLoss 和torch,nn.BCEWithLogitsLoss需要预测输出y_pred和y_gt需要一样的维度。故需要使用一下两种转变y_gt的方法。假设y_pred如下:[[1.2 2.3 ],[2.1 2.2 ]]其中,y_gt如下:[[0],[1]]目标是是转化成下面的维度:[[1,0],[0,1]]代码如下:gt_y_temp = torch.zeros(gt_y.shape[0], 2)gt_y_temp[range(gt_y.sh

2021-01-01 19:29:56 1815

原创 LSTM:好理解的资源

https://zhuanlan.zhihu.com/p/79064602

2020-12-28 03:11:38 221

原创 模型融合_stacking&blending

个人理解:1.stacking堆叠法,更像是在特征维度上扩展,使用不同的模型获得不同的特征,堆在一起获得新的输入特征。2.blending融合法,更像是在特征的时间维度来多次开发特征,先被一套模型预测,得到的结果,作为另一套模型的输入,一直套娃,得到最终的输出。stacking,自己的理解blending,自己的理解...

2020-12-28 02:53:26 327

原创 图像复原:逆滤波

逆滤波,就是利用傅里叶反卷积。% deconvolve in frequency domainFimg = fft2(img,599,599);FC = fft2(C);R = FC ./ Fimg;r = ifft2(R);% show deconvolved Gaussianfigure(1);subplot(2,3,1), imshow(img), title('image');subplot(2,3,2), imshow(Z), title('Gaussian');subplo

2020-12-25 01:43:04 1779

原创 MATLAB可视化:用鼠标选取ROI

function Zoomer figure(); highResImage = imread('peppers.png'); lowResImage = imresize(highResImage,0.5); a1 = subplot(2,1,1); a2 = subplot(2,1,2); imshow(lowResImage,'Parent',a1); initialPosition = [10 10 100 100]; lowRe

2020-11-20 22:59:42 1211

原创 红外热成像的空间分辨率怎么算?

空间分辨率算法 :空间分辨率=像元间距{Pixel Size (Array Pitch}/镜头焦距(Lens focal length )。因为像元间距一般无法测得,因此实际计算中,以镜头的视场角/探测器在对应方向的分辨率,同时转换为弧度单位来测得:举例说明:FLIR T400红外热像仪标配25°(焦距19mm)镜头为例,镜头的视场角为25°×19°,探测器的分辨率为320×240,每弧度≈57.2958°。则空间分辨率的算法是:25°÷57.2958°/rad÷320 = 19°÷57.295.

2020-11-16 21:09:31 4913

原创 C/C++中__builtin_popcount()的使用及原理

这个函数功能:返回输入数据中,二进制中‘1’的个数。对于不同的使用类型,可以采用采用以下函数:__builtin_popcount = int__builtin_popcountl = long int__builtin_popcountll = long long1. 二分法,源码采用的方法主要思路是:将相邻两位相加,可以实现用二进制来表示输入数据中‘1’的个数。然后依次将上半部分和下半部分相和并实现计数。unsigned popcount (unsigned u){ u = (

2020-11-10 15:02:00 21203

原创 竞赛回顾:脊柱疾病智能诊断大赛

先说结果:复赛27/3107,只能说一般般,没有打入前top20,并没有实现自己的目标。但是也是收获了不少经验,做一些总结和分享。失败的经验:尽早开始,尽快搭建自己的整套pipeline,后面再去增加的自己的idea,不断检验自己的idea.可以准备一些自己的pipeline模板,这样可以加速开发。想办法和大佬合作吧,和大佬一起合作。贴一张最后决赛的结果:其中GPU第一队,基本是大佬合集,看个人简介就知道,经常获得冠军的队。也是唯一一个实现map超过0.7的对。自己的实现思路:Unet

2020-11-08 23:05:35 2549 8

原创 opencv中加速的一些操作

CV_OCL_RUNOpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准。OpenCL由两部分组成,一是用于编写kernels(在OpenCL设备上运行的函数)的语言,二是用于定义并控制平台的API(函数)。 OpenCL提供了基于任务和基于数据两种并行计算机制,它极大地扩展了GPU的应用范围,使之不再局限于图形领域。OpenCL是一种标准,intel、Nvidia、ARM、AMD、QUALCOMM、Apple都有其.

2020-11-03 15:07:39 3130

原创 C++ VS2015提示未加载 wntdll.pdb

报错信息:未加载wntdll.pdb,下面的框架可能不正确/或缺失,没有为ntdll.dll加载符号。出错原因:你的指针指向了错误的东西 / 你调用你的指针释放了奇怪的内容,和内存的调用有很大的关系,比如new的使用。案例:有问题的代码:#include<iostream>#include<ctime>#include<fstream>#include<string>#include<stack>#include<v

2020-11-02 16:11:44 2194

原创 matlab中对文件的操作总结

matlab中常见的对文件的操作函数有:fopen,fseek,ftell,fread,fclose打开文件fid=fopen(文件名,‘打开方式’)fid用于存储文件句柄值如果返回的句柄值大于0,则说明文件打开成功。常见的打开方式如下:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建

2020-10-29 16:00:22 714

空空如也

空空如也

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

TA关注的人

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