- 博客(49)
- 资源 (5)
- 收藏
- 关注
原创 深度图(Depth Map)
这里主要是指用模型估计图片中的物体深度,这样的方式获得的结果,在一张图片中不同的像素点之间的相对深度差,但是在在连续的图片序列中,两帧之间的深度估计结果没有必然的联系。例如,假设上面的面具是一个视频序列,在第一帧面具左眼的深度为100,面具右眼的深度估计为110.第二帧中,面具的左眼的深度可能是1000,而右眼的深度可能为1010。可以发现,两帧之间同一区域的深度,在采用深度学习模型估计的时候,其绝对值结果是没有参考价值的:例如同样都是左眼,在第一帧中的深度和第二帧的深度估计数值甚至不在一个量级。
2023-11-07 23:23:30
19546
4
原创 python导出requirements.txt的几种方法及环境配置流程
生成requirements.txt,pip freeze会将当前PC环境下所有的安装包都进行生成,再进行安装的时候会全部安装很多没有的包.此方法要注意。导出结果会存在路径,生成的requirements.txt文件在当前目录下。,这个工具的好处是可以通过对项目目录的扫描,发现使用了哪些库,生成依赖清单。生成的requirements.txt文件在当前目录下。生成的requirements.txt文件在当前目录下。在python项目的根目录下 使用。具体的版本的下载代码可以在。这里的环境名称取名为。
2023-10-11 19:26:47
6717
原创 Python深度学习实用代码合集
背景:这篇文章的背景是在日常的学习和项目中,经常会遇到一些基础功能的组合复用,每次去查函数的用法和pipeline都是比较耗时耗力需要重新调试,所以想着把一些经常用到的代码段固化成函数,方便未来的调用,快速迭代和验证。另外,发现谷歌的colab比较好使,对于算法的快速验证迭代还是很有帮助的(尤其对于我这个垃圾笔记本),在环境的配置,算力的提供上都有无与伦比的优势,本地的部署除了在必须的情况下使用,尽量还是可以通过colab的形式迭代算法。
2023-07-09 20:24:31
1186
原创 Anaconda使用总结(conda操作,环境操作,包管理)
背景:Anaconda作为深度学习最流行的pipeline之一,可以方便的修改和导出学习环境,每次跑代码配环境总是一件令人头大的事情。之前一直没有好好研究Anaconda的用法,导致每次使用的时候一些简单的命令都需要现场查询,所以想着把一些常见的用法和命令固化,希望能够帮到大家,也作为自己以后的一个查阅的依据。
2023-05-27 10:01:09
3688
原创 从端到端打通模型端侧部署流程(MNN)
官方文档有疑问一定要先查这里!MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。相对来讲,目前我们过了两个端侧部署框架NCNN和MNN,开源较早,社区成熟,案例较多,问题容易解决。易用性较强,相对于MNN会更容易上手,很多操作都直接封装到NCNN内部,方便操作。
2023-04-03 00:31:14
1427
原创 安卓Android Studio JNI开发问题澄清与汇总
在处理图像时,需要根据图像的实际情况进行不同类型的Mat矩阵的创建和处理。在上述代码中,我们使用了createBitmap函数将Mat矩阵中的数据复制到Bitmap中,其中Bitmap_Config::ARGB_8888表示Bitmap的像素格式为ARGB8888,即每个像素点占4个字节。AndroidBitmap_lockPixels和AndroidBitmap_unlockPixels的底层逻辑就是在处理bitmap中的数据的时候,把内存锁定,防止像素缓存被改变导致数据变化。数组表示像素RGB值。
2023-04-03 00:30:29
394
原创 从端到端打通模型端侧部署流程(NCNN)
深度学习已经在生活的方方面面被应用和重视。随着手机算力的不断提升,以及深度学习的快速发展,特别是小网络模型不断成熟,原本在云端执行的推理预测就可以转移到端上来做。端智能即在端侧部署运行 AI 算法,相比服务端智能,端智能具有低延时、兼顾数据隐私、节省云端资源等优势。目前端智能正逐渐变为趋势,从业界来看,它已经在 AI 摄像、视觉特效等场景发挥了巨大价值。ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。
2023-02-13 22:39:14
3998
6
原创 显著图(Saliency map)
看下面这个图像分类任务的例子,在测试图片的任意位置贴一个固定大小的灰色方块,看看方块贴各个位置时对于预测结果的影响,把综合结果显示为热力图(越偏蓝影响越大),如图可见这种方法找到的关键特征是比较合理的。显著性是图像的突出部分,我们的大脑会特别关注这个部分。包含了主要模块以及扩展模块,扩展模块主要是包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。每次我们的文章都会通过对比记忆来了解不同方法的原理,侧重点,目的,以达到更好的理解和记忆效果,这次也是一样。
2023-01-31 22:37:52
7686
原创 Python进阶总结(含示例)
1、首先得到每个字符串长度2、排序,选择sorted或者 list.sort()进行排序内置sorted返回一个新的列表,而list.sort是对列表进行操作sorted(iterable , cmp = None , key = None , reverse = False) iterable:是可迭代类型;cmp :用于比较的函数,比较什么由key决定;key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
2022-12-22 23:29:49
932
原创 Android JNI 开发 调用Opencv 的so库
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。android 调用JNI 分为静态调用与动态调用(不论动态还是静态前提都是NDK环境已经配置好的前提下)一、静态主要就是将c(.c)或者c++(cpp)的源文件直接加到项目中进行调用,然后在CMakeLists.txt中进行配置。二、动态调用。
2022-12-18 16:29:54
1503
原创 计算机视觉基本概念大起底!
计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像或其他形式的信息。计算机视觉更偏向利用深度学习和神经网络来解决图片的理解,处理,生成,语义转换等任务,随着算力与数据的增加,逐步辐射到下面的各个领域,具有不可解释性,即无法用公式描述出数据从输入到输出所经历的计算过程。机器视觉。
2022-12-13 10:34:01
3091
原创 从Transformer到ViT再到MAE
从Transformer到VIT再到MAE引言Transfomer提出的背景模型架构具体细节Add&NormAttention:Multi-Head Attention自注意力机制(self attention)Positional EncodingViT提出的背景:模型架构:具体细节:维度序列信息Class Token的作用:Transformer处理任意长度的输入结论:MAE(CV版的BERT完形填空)引言最近一年来,Transformer在CV领域又掀起了一股新的潮流,尤其是ViT这篇文章
2022-04-06 18:16:15
3367
原创 长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总
长期换衣行人重识别任务中目前常用的数据集总览目前换衣数据集的主要问题数据集换衣/总体情况集统计DeepChange(2021)LaST(2021)COCAS(2020)VC-Clothes(2020)LTCC(2020)PRCC(2019)Celebrities-reID(2019)总览在长期换衣行人重识别的任务当中,数据集的获取(尤其是对于学术环境下)是一个难点,主要的困难有以下几点:采集大规模的数据集比较困难。采集不同的衣服的数据集比较困难。采集不同衣服不同角度的数据集比较困难。目前也有
2022-04-04 23:34:54
6059
7
原创 Python筛选特定文件夹下特定命名格式的文件并保存和读取txt文件
文件过滤器的代码遍历特定路径下所有文件并根据文件命名筛选文件。import osimport os.pathimport rerootdir = "/home/GTA/GTAv3"file_object = open('/home/moyang/Cloth-Changing-Person-REID/train_list.txt','w')#打开txt文件 #遍历所有文件路径parent为根目录,dirnames为文件夹名,filenames为文件名for parent,dirnames,fi
2021-09-26 21:13:35
1599
原创 c++ 字符串常用的可调用库函数
字符串//判断是否为字母和数字 isalnum(c) //判断是否为字母 isalpha(c) //判断是否为数字 isdigit(c) //转化为小写字母 tolower(c) //转化为大写字母 tohigher(c) //求子字符串 substring(s)哈希表哈希表的用法...
2021-09-24 21:38:50
490
1
原创 力扣练习:242.有效的字母异位词(哈希表)
题目要求:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false解题1(纯字符串算法实现哈希表)class Solution {public: bool isAnagram(string s, stri
2021-09-24 21:25:29
146
原创 力扣练习:136.只出现一次的数字(排序,异或)
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题1(排序求差法)class Solution {public: int singleNumber(vector<int>& nums) { sort(nums.begi
2021-09-19 21:16:16
132
原创 力扣练习:36.有效的数独(散列表)
题目请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。示例 1:输入:board =[[“5”,“3”,".",".",“7”,".","
2021-09-19 21:06:54
132
原创 力扣练习:283.移动零(双指针)
题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题(双指针)class Solution {public: void moveZeroes(vector<int>& nums) { int len = nums.size(); int left
2021-09-19 21:05:48
186
原创 OpenGL学习例程精析(绘制透视效果)
#include <gl/glut.h>#define WIDTH 400#define HEIGHT 400#include <math.h>void setLight(void){ static const GLfloat light_position[] = {1.0f, 1.0f, -1.0f, 1.0f}; static const GLfloat light_ambient[] = {0.2f, 0.2f, 0.2f, 1.0f}; static
2021-07-24 00:12:52
666
原创 OpenGL学习例程精析(3d纹理)
#include <gl/glut.h>#include <GL/freeglut.h>#include <GL/glext.h>#define nWidth 800#define nHeight 600#define nDepth 300GLuint RenderTexture = 0;GLuint* m_pBuffer;GLuint colorcount = 0;PFNGLTEXIMAGE3DPROC glTexImage3D;void load.
2021-07-15 16:11:58
2437
原创 OpenGL学习例程精析(2d纹理)
/*1、gl.glEnable(GL10.GL_TEXTURE_2D) 启用2D纹理功能;2、gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY) 启用纹理坐标数组;3、gl.glBindTexture(GL10.GL_TEXTURE_2D,texture) 绑定纹理;4、GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0) 根据位图生成纹理;5、gl.glTexCoordPointer(
2021-07-05 13:51:30
849
原创 OpenGL学习例程精析(键盘和鼠标的调用)
void keyboard (unsigned char key, int x, int y){ switch (key) { case 's': case 'S': glBindTexture(GL_TEXTURE_2D, texName[0]); glTexSubImage2D(GL_TEXTURE_2D, 0, 12, 44, subImageWidth, subImageHeight
2021-07-01 13:48:48
417
原创 OpenGL学习例程精析(四棱锥)
#include <gl/glut.h>#define WIDTH 400#define HEIGHT 400#include <math.h>#define ColoredVertex(c, v) do{ glColor3fv(c); glVertex3fv(v); }while(0)GLfloat angle = 0.0f;void myDisplay(void){ static int list = 0; if( list == 0 )
2021-06-25 14:50:15
1500
1
原创 OpenGL学习例程及函数精析(地日模型)
#include <gl/glut.h>#define WIDTH 800#define HEIGHT 600static GLfloat angle = 0.0f;void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕及深度缓存 // 创建透视效果视图 glMatrixMode(GL_PROJECTION); //声明当前进行的是投影变换,GL_MOD.
2021-06-19 14:10:47
646
原创 程序员该如何走出工作生活中的种种困境?《软技能——代码之外的生存指南》拾惠
把软件开发职业当成一个商业活动如果你愿意把工作当成一个商业活动,你就会更多的从需求,从长远的角度去计划自己的工作。首先是客户需求,显然客户就是你的老板,他需要的是能解决问题的人所以永远保持自己的技术有足够的活力和输出是不会过时的。其次,从商业的角度思考,你的业务目标——即你未来人生的走向。不要随心所欲地生活,不要漫无目的的行走,多想想未来五年或者十年自己应该的样子或者在的地方。这个大目标不需要很具体,但是一定要明确,好让你能确定自己到底是越来越靠近目标还是离它越来越远了。当确定好目标,下一步就是确定
2021-05-14 18:06:00
326
2
原创 Source Insight (SI) 变量、函数、宏定义变成黑色,无法快速查看调用的几种解决方法
Source Insight 变量、函数、宏定义变成黑色,无法快速查看调用的几种解决方法方法一:同步SI与本地的代码方法二:重构SI工程其他解决方法在source insight中,一般即使鼠标点在函数或者变量处,context windows窗口就会显示其定义信息。但是有的时候,变量和函数会变成黑色,点击之后在Reference框和Context框无法看到调用关系和预览,这种情况该怎么解决呢。经过实践,提供具体的两种方法:方法一:同步SI与本地的代码在“项目”(Project)->“同
2021-05-04 08:58:17
9377
1
原创 (解决 fatal error C1083: 无法打开包括文件:“xxxxxxxxx.h”: No such file or directory)VS和Eclipse添加新文件/文件夹路径步骤
Visual Studio和Eclipse添加新文件/文件夹路径步骤向VS工程中添加文件夹把新增的头文件添加到路径中Eclipse添加头文件向VS工程中添加文件夹首先添加相关的文件夹和文件–>解决方案–>显示所有文件–>右键文件夹–>包括在项目中把新增的头文件添加到路径中注意:同样debug和release版本都需要增加该目录VS2008引入头文件包含目录和lib库目录Eclipse添加头文件...
2021-04-25 19:34:24
2343
原创 什么?改BUG效率低?来看看代码调试的正确思路和心理!
相信每一个从事代码相关的开发人员都能深切体会到代码调试的速度的快慢和准确性而带给你的心理冲击有多大。同样的一个bug,经验老道的程序员可以在几分钟之内调试得到错误的根源,确定缺陷的来由,并在修改时引入尽量少的新错误。我们都有过这样的体验:调试一段花了30分钟写出来的代码,出错之后往往需要两个小时(甚至更多)来确定错误的根源。并且在最终尝试解决问题的时候,我们可能引入了更多的错误(只是当时没有察觉而已)。软件质量的普遍性原则:提高软件质量能够减少开发成本。最好的程序员能够找出最多的错误,最快的找到错误并且
2021-04-17 15:12:37
573
1
原创 你不会还不知道时间复杂度和空间复杂度怎么算吧?(用代码举例)
时间复杂度和空间复杂度的算法与辨析举例时间复杂度基础时间复杂度渐进时间复杂度空间复杂度时间复杂度即执行算法的时间成本基础时间复杂度基本操作执行次数:一个循环内的操作次数时间复杂度=循环次数*每步循环中的操作数例子1: void function(int n){ for(int i=0; i<n; i++) { printf("操作1"); printf("操作2"); printf("操作3"); } }每个循环要执行3次操作,如果需要执行n个循环,则
2021-03-26 18:05:23
470
原创 盘点那些切实提高效率的Visual Studio(VS) 与 Source Insight(SI)快捷键和使用小技巧
提升效率,就在今朝Visual Studio快捷键单键双组合键三组合键两条指令组合键操作怎样在同一个窗口中查看一个文档的不同部分?怎样快速切换不用的页面?Source Insight快捷键使用技巧设置括号缩进显示坐标列操作VS作为宇宙第一IDE(doge),已经受到了广泛的应用,适当的掌握一些能够提高效率的用法能够极大的提升工作效率,因为一些枯燥重复的操作可能会耽误很多时间。SI作为一款相当友好的代码阅读软件,因其能够方便的查看调用和关系,受到了开发人员的广泛喜爱。这两个软件可以发掘的技巧有很多,而且
2021-03-18 18:07:07
1331
原创 Linux下运行程序崩溃出现segment error/fault(段错误) 的可能原因和排查方法
segment fault/error,产生core dump的可能原因和排查方法表现/现象可能的原因内存访问越界多线程未加锁非法指针堆栈溢出.排查的方法直接法:间接排除法:简而言之就是访问了错误的内存段或者是0地址。表现/现象在Eclipse的输出框或者Linux终端调用运行的时候报出xxxxx文件的某一行有一个segment error/fault这个问题属于比较棘手和麻烦的问题,因为像这个内存报错问题在VS下一般不会有问题,在Linux下才会无法运行。需要注意的是,报错信息里面的xxxx文件
2021-03-04 13:43:22
5270
1
原创 OpenGL学习笔记:第五章 OpenGL顶点着色器和片段着色器(顶点着色器和片段着色器的结构,输入输出)
OpenGL顶点着色器和片段着色器顶点着色器顶点着色器的结构顶点着色器的输入输出顶点着色器的输入顶点着色器的输出片段着色器片段着色器的结构片段着色器的输入输出片段着色器的输入片段着色器的输出顶点着色器顶点着色器是处理VBO/VAO提供的顶点信息的程序。VBO/VAO提供的每个顶点都执行一遍顶点着色器。Uniforms(一种变量类型)在每个顶点保持一致,属性(Attribute)每个顶点都不同(可以理解为输入顶点属性)。执行一次VertexShader输出一个Varying(可变变量)和gl_posito
2021-03-01 19:10:45
1909
原创 OpenGL学习笔记:第四章 OpenGL处理管线(流程)(OpenGL渲染管线的对比,渲染管线的结构,着色器,名词解释和中英文对照)
OpenGL渲染管线,着色器和名词解释OpenGL渲染管线传统的可编程图形硬件处理管线流程(通用流程)图形硬件技术处理渲染管线总体流程(OpenGL流程)OpenGL渲染管线传统的可编程图形硬件处理管线流程(通用流程)在这种传统的图形处理流程中,首先经过顶点级的光照计算和坐标变换,求出每个顶点的光照颜色值,同时还将顶点坐标从物体坐标系转化到裁剪空间(clip space),然后对每个三角形进行光栅化处理,并对三角形顶点的颜色进行双线性插值,得到三角形中每一个像素的颜色值,接着进行纹理映射,即根据每一
2021-03-01 19:10:09
878
原创 承上启下的总结+从吴军的书《态度》总结出的20条为人方法生活状态
从吴军的书《态度》总结出的条为人方法生活状态似乎是一个序?内心最好保持平静和淡泊:一个心胸狭隘,锱铢必较的人,即使遇到好事,也会怀疑是别人的阴谋,因此而丧失了快乐 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210222192600404.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0tpbmdzTWFuN
2021-02-27 08:50:12
378
1
原创 从吴军的书《见识》总结的49条商业本质、为人方法
《见识》读书笔记一开始的话1.对待扇来的巴掌的三种态度:扇回去、认栽(为自己的不成器开脱)、分析原因,找出改进方法并落到实处2.少就是多:太多的选择往往带来的是不满,因为众口难调,吃力不讨好。好的产品设计者会想办法引导顾客而不是迎合顾客,好的管理者需要指定简单有效还能让大多数员工满意的政策。适度选择给我们自由,过多选择会适得其反3.好的产品会创造出用户的需求,本质上是扩大市场。共享是为了带来便利,而不是节约资源4.能够概括未来合作经济的模式(技术革命的规律):原有产业+电=新产业,恰似原有产业+互联网=新产
2021-02-01 21:06:42
863
1
FIR,IIR滤波器对语音信号的滤波处理matlab仿真
2020-01-03
MATLAB基于离散小波变换(DWT)的语音和音频信号的数字水印代码
2019-07-19
MATLAB基于LSB算法的语音信号的数字水印代码
2019-07-19
基于直方图均衡化,暗通道先验,retinex方法的数字图像去雾matlab程序集合.zip
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人