- 博客(72)
- 资源 (7)
- 收藏
- 关注
原创 深度学习模型移植-替换torch.einsum算子
onnx不支持torch.einsum算子,很多嵌入式端平台就更不支持了,下面给出用基本的矩阵计算torch.matmul替代orch.einsum算子的代码。torch.matmul属于基本矩阵操作,一般嵌入式平台都会支持的,如果连基本的矩阵操作不支持,那就建议跟老板提出换芯片平台吧哈哈~
2023-07-26 10:40:26 849 2
原创 Rigidbody 2D中的线性阻尼有什么用?
线性阻尼是指物体在移动时受到的阻力。在Unity中,Rigidbody 2D中的线性阻尼可以模拟物体在移动时受到的空气阻力。这个属性可以帮助您更好地模拟物体的运动,使其更加逼真。如果您不需要模拟物体在移动时受到的空气阻力,可以将线性阻尼设置为0。
2023-05-26 00:31:27 344
原创 Rigidbody 2D中的角阻力有什么用?
角阻力是指物体在旋转时受到的阻力。在Unity中,Rigidbody 2D中的角阻力可以模拟物体在旋转时受到的空气阻力。这个属性可以帮助您更好地模拟物体的运动,使其更加逼真。如果您不需要模拟物体在旋转时受到的空气阻力,可以将角阻力设置为0。
2023-05-26 00:26:05 214
原创 请用unity生成一个控制2D刚体移动的代码,要求左右键控制转向,前后控制前进后退的
(3) unity物体四种移动方法总结_unity控制物体移动_学习使我快乐13的博客-CSDN博客. https://blog.csdn.net/maojiaoliang/article/details/123883389.(1) Unity(7)-控制2D物体移动_梦之海岛的博客-CSDN博客. https://blog.csdn.net/smallfox233/article/details/117378294.这个代码可以让你用左右键控制转向,前后控制前进后退。如果你还有其他问题,请随时问我。
2023-05-22 23:29:29 935
原创 pytorch中3d卷积如何拆分成空间可分离卷积
在这个示例中,我们使用nn.Conv2d()来代替空间卷积,使用nn.Conv1d()来代替时间卷积。在forward()方法中,我们首先对输入进行空间卷积,然后将输出转换为2D张量,进行时间卷积,最后再将输出转换回3D张量。具体地,可以使用nn.Conv2d()来代替空间卷积,使用nn.Conv1d()来代替时间卷积。在PyTorch中,可以使用nn.Conv3d()来实现3D卷积,空间可分离卷积可以通过将3D卷积分解为单独的空间卷积和时间卷积来实现。
2023-05-11 14:15:00 940
原创 图像算法(1)-直方图均衡化
对于一个灰度图(即常见的只有一个通道,像素值介于0~255的黑白图),可以通过遍历每个像素的像素值,统计其中像素值等于0,等于1,等于2,等于3···一直到等于255的像素个数,然后把像素值作为横坐标,像素个数作为纵坐标,就可以绘制一张像素值分布图,该图即为对应灰度图的直方图。如下图所示示例图1示例图1示例图1 8位的灰度图像的直方图横坐标只有256个值,即0到255。显然如果一张灰度图是全白的,那么它的直方图中,横坐标等于255的个数就非常大,如果一张图是全黑,那么等于0的个数就非常大。...
2022-05-11 10:59:08 2262 1
原创 python中opencv无法调用ximgproc库
报错:Module 'cv2.cv2' has no attribute 'ximgproc'opencv有4种包: opencv-python opencv-contrib-python opencv-python-headless opencv-contrib-python-headless只能用一种,不然会有冲突。如果报上面的错,则需要先卸载掉之前的opencv包:pip uninstall opencv-contrib-p...
2021-12-17 10:16:42 7587
原创 RVM论文阅读笔记
Robust High-Resolution Video Matting with Temporal Guidance论文下载:https://arxiv.org/pdf/2108.11515.pdfgithub:GitHub - PeterL1n/RobustVideoMatting: Robust Video Matting in PyTorch, TensorFlow, TensorFlow.js, ONNX, CoreML!一、亮点总结 Nvidia GTX 1080...
2021-10-26 17:22:32 1305
原创 LeetCode:两数之和
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:[1,2]示例 3:输入:nums = [3,3], target = 6输出:[0,1...
2021-08-23 14:34:28 137
原创 提升工作效率计划
工作几年后越来越感觉每天的工作安排应该结合自己的状况来安排。通常情况下,我都是一天中上午那段时间状态最佳,下午和晚上相对状态比较差,很多次遇到一个问题,一下午,或者一晚上都没排查解决掉,第二天早上稍微看看就解决了,为此,准备做出以下计划。 每天上午上班最开始那两个小时,用来解决前一天遇到的待解决的问题,或者打算看的最新论文,代码或者技术博客,然后接下来的上午最后两个小时以及整个下午都来处理自己在公司的工作,晚上的时候专门用来写工作日报,以及总结自己白天的实验结果,学习的新技...
2021-08-23 10:39:06 272
原创 Side Window Filtering(侧窗滤波)原理分析、代码实现及效果分析
最近学习了下侧窗滤波算法,这是一个保边滤波算法,据说该算法的论文是近几年CV行业为数不多的非深度学习论文,方法简单而高效,查阅资料自己实现了下算法,跑了一些图后,不太确定自己实现的效果是否正确。翻看论文的时候,看他们的论文中贴出的图效果很惊艳,甚至有些动物的毛发都可以保留下来,就愈发有点怀疑自己实现的结果是否正确。于是灵机一动,要不自己造点数据来跑算法,验证下看看吧,于是就有了如下动图:上图中原图就是我造的数据,里面包含各种边缘类型,大致也包含论文中提出的三种边缘模型:另外还有一些散点视..
2021-07-21 16:21:19 5841 3
原创 HRank论文总结
之前接触深度学习时结合自己负责的项目接触过关键点检测,语义分割这两个方向,当时主要研究了下对应方向的最新的网络以及曾经提出过的经典网络。在学习的过程中其实越来越体会到,选网络,训练,调参这些任务并不难的,因为这些在网上参考资料挺多的。其实深度学习这块最核心最重要的还是往应用端部署。很多网络能在显卡上达到实时性,但是怎么部署到算力有限的下位机中,这些在网上资料比较少,尤其是如果部署的平台比较小众,像一些国产的低端芯片,用的人比较少,然后可能本来芯片卖的就便宜,配套的资料不完善等等,这时候很多问...
2021-05-06 15:51:56 1094 9
原创 高斯模糊优化加速总结
1.使用分离卷积 先对x方向做一维高斯模糊,再对y方向做一维高斯模糊,所得结果跟二维高斯模糊效果一样,因为一个二维矩阵就是可以拆解成一个行向量和一个列向量相乘。算法复杂度由n*n*k变为2*k*n。k为像素个数,n为高斯模糊半径。算法是间复杂度从O(n^2)提高到了O(n)。2.用多次均值等效高斯模糊 一维均值模糊的曲线是一个矩形框,经过三次均值模糊后,逐渐接近正态分布,也既高斯分布。经过4次均值模糊后,其结果跟高斯模糊只有4%的误差。通常是采用3次均值模糊来等效高斯...
2021-04-14 16:47:45 1274
原创 DSP芯片上算法加速技巧总结
#1 将多层或者双层循环改为单层循环。 让循环只形成一个pipeline,充分利用dsp的流水线, #2 使用const关键字限定目标。 C6000编译器如果确定两条指令是不相关的,则安排它们并行执行。 关键字const可以指定一个变量或者一个变量的存储单元保持不变。 这有助于帮助编译器确定指令的不相关性。#3 使用内联指令_add2() 将16位整数改为32位,调用_add2()一次完成两组16位整数的加法,效率可提高一倍。...
2021-04-07 17:28:12 2761
原创 动态内存与智能指针总结
#1 静态内存和栈内存中的对象由编译器自动创建和销毁。#2 除了静态内存和栈内存,每个程序还有一块内存池,用于存储动态内存。#3 C++11标准库提供两种智能指针,shared_ptr和unique_ptr 。#4 shared_ptr允许多个指针指向同一个对象。unique_ptr则独占所指的对象。#5 智能指针跟vector类似,也是模板,用法跟普通指针类似,解引用返回它指向的对象。#6 通常用make_shared函数给shared_ptr分配内...
2021-04-07 11:30:25 119
原创 Pytorch网络模型参数修改
最近在研究HRank的论文和代码,发现里面的模型结构化剪枝后,模型大小没有变小,打印最终训练完后的网络模型中的参数,发现它只是把一些channel的参数全部稀疏化为0,并没有把channel的个数裁剪下来。 于是想自己写代码重新构建裁剪channel后的小网络,然后把通道稀疏化(也就是裁剪)后的网络参数直接给到小网络中,这样做就可以用小网络模型做一模一样的推理了。关于为什么可以直接用小网络获取大网络稀疏化通道裁剪后的网络参数作推理,其实原因很简单的,后续再写HRank论文的总结...
2021-04-06 16:57:30 3521
原创 HDR+论文总结及代码实现
HDR+论文总结及代码实现HDR+算法是自己好几年前在某手机公司接触的项目,当时花了几个月时间把HDR+的论文复现了下,降噪效果还是很不错的,但是我主要用的是jpg的图,没用过RAW原图,当时也只是摸清了原理,没有做过下位机移植。顺便说下自己的感受,感觉不管做什么行业,一定都要有自己的想法,也就是对整个行业的把握和理解。如果没有自己的想法,那就只能被人牵着鼻子走,自己彻底沦为打杂的。当时我刚毕业时就是没什么自己的想法,让做什么就做什么,其实这样很不好的,对自己职业发展肯定是不利的。工作几年后,对
2021-03-29 18:36:54 5624 11
原创 #ifdef __cplusplus extern “C“ { #endif”的定义
在linux c平台开发的时候,引用了一些Cpp或者C的代码库,发现一些头文件有如下代码条件编译。#ifdef __cplusplusextern "C" {#endif// 代码#ifdef __cplusplus}#endif作用:为了在C++代码中调用用C写成的库文件,就需要用extern"C"来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。原因:C++支持函数重载,而C是不支持函数重载的,两者语言的编译规则不一样。编译器对函数名的处理方法...
2021-02-25 14:49:16 264
原创 RuntimeError: leaf variable has been moved into the graph interior(Pytorch报错)
有时候想在pytorch中修改训练过程中网络模型的参数。比如做网络稀疏化训练,对于某一层卷基层的参数,如果值小于一定阈值就想赋值为0,这时就需要实时修改网络模型的参数,如果直接修改会报错: RuntimeError: leaf variable has been moved into the graph interior这是因为pytorch中会有叶子张量和非叶子张量之分,这个主要是为了节省内存或显存。pytorch中网络模型中的张量默认是叶子张量,系统会默认对其进行求导,其它都为非叶...
2021-01-13 13:27:11 3034 1
原创 BiSeNet V2网络结构详解
语义分割中微观(细节)信息和宏观信息都很重要,一般浅层网络能够提取微观信息,而宏观信息提取需要很深的网络。这两个需求是相反的,很难在同一个网络上实现,于是提出了一种双边网络。Detail Branch : 提取微观特征。关注图像细节。Semantic Branch : 提取宏观特征。相当于将图像大致分块。3.2 网络细节r:重复的次数 Stem Block: 卷积层设置stride=2也可以起到跟pooling类似的下采样的作用,但是卷积层...
2020-12-15 16:09:53 4748
原创 深度学习代码调试经验
最近在做有关深度学习的项目,大致内容就是车位检测,目前我用到的方案是将人脸关键点检测的深度学习模型迁移到车位检测上。在这个过程中经历过各种坎坷,对于深度学习的代码调试算是知道了写皮毛经验。下面就记录下,也分享出来供后面有需要的同学借鉴。 现在网上有很多深度学习的代码,有些论文都开原源了,其实他们代码都可以拿来直接改改就用的。就是在改代码的过程中可能会遇到各种问题,导致迟迟达不到目标效果。 我在将人脸关键点检测算法迁移到车位检测的过程中就遇到了这种问题。一开始...
2020-10-12 15:52:36 1395 1
原创 欧几里得数据和非欧几里得数据
欧几里德数据:数据特点是排列整齐。对于某个节点,很容易可以找出其邻居节点,就在旁边,不偏不倚。最常见到的是图片(image)和视频(video)以及语音(voice)。非欧几里德数据:排列不整齐,比较的随意。具体体现在:对于数据中的某个点,难以定义出其邻居节点出来,或者是不同节点的邻居节点的数量是不同的。...
2020-06-21 19:09:46 4651
原创 非极大值抑制(NMS)的原理理解
假设有ABCDEF这么多个得分框(已经按照得分从小到大排序)。1、从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值;2、假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。3、从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。4、一直重复这个过程,找到所有曾经被保留下来的矩形框。...
2020-05-26 14:36:19 282
原创 matlab中读取每一行列数都不同的txt
有时候matlab中需要读取txt中多行数据,但是没一行的列数又不同,可以使用下面代码:fid=fopen('test.txt');while ~feof(fid) tline = fgetl(fid); S=regexp(tline,'\s+','split'); if isempty(tline) continue; endend ...
2020-01-15 08:55:23 3764 6
原创 安卓开发中如何将apk放在服务器上供用户下载
首先需要在IIS服务器上开通能够下载apk文件的接口,具体操作如下:MIME类型中添加新的类型:扩展名中填写“.apk”,MIME类型中填写apk的MIME类型“application/vnd.android.package-archive”然后可以让用户直接打开网址:http://xxxxx.com/apk/xxx.apk就可以下载下来了,这时浏览器可以自动识别apk是可...
2019-09-24 02:14:30 7623
原创 安卓开发中fragment XML中的button找不到Onclick
先这样:btnPayMember = (Button) view.findViewById(R.id.id_pay_member);private void pay_member(){ btnPayMember.setOnClickListener(new OnClickListener() { @Override public void onCl...
2019-08-18 22:56:35 687
原创 无法import android.support.v4.app.Fragment的解决办法
最近做安卓开发,自己菜,遇到很基础的问题,网上搜了很久也没解决掉,后面歪打误撞,终于解决了。遇到的问题就是:import android.support.v4.app.Fragment老是无法通过。解决办法:在gradle.properties中把有关AndroidX的设置全部注释掉,顺便初步了解下AndroidX的作用:android.useAndroidX=true 表示当前项目启...
2019-07-17 20:10:12 12354 2
原创 服务器上无法播放mp4文件
解决办法:打服务器IIS,MIME类型” > “新建”,在“扩展名”框内输入“.mp4”,“MIME类型”框中输入“application/octet-stream”,然后确定即可。
2019-05-02 22:43:22 4646
原创 opencv3.0以上版本 cvCaptureFromFile读取视频出现指针为NULL
主要原因是3.0以上版本可能缺乏自带解码器,因而需要下载安装,亲测安装xvid后cvCaptureFromFile函数可用,下载地址:https://www.xvid.com/download/ 。
2019-02-27 15:56:16 1238 4
原创 安卓开发——app设置全屏及隐藏标题
在values文件夹下的styles.xml文件中添加子标签改为如下:<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name=&quo
2019-01-20 18:56:49 528
原创 监听audio是否加载完毕,如果加载完毕,则读取audio播放时间
audio.addEventListener("canplay", function(){//监听audio是否加载完毕,如果加载完毕,则读取audio播放时间 document.getElementById('audio_length_total').innerHTML=transTime(audio.duration); });...
2018-12-25 01:29:20 17545
原创 python中import caffe与import matplotlib.pyplot as plt冲突的解决办法
最近在python中用caffe跑网络,想写个实时显示准确率,testl-oss,train-loss的功能。这个时候需要调用import caffe和import matplotlib.pyplot as plt,可是发现老是出现“ImportError: DLL load failed: 找不到指定的模块。”折腾了许久后,换了若干个版本的python,才发现了一个很简单的解决办法:把i...
2018-08-21 09:27:22 469
原创 PHP中最彻底的退出登录操作
废话不多说,直接上代码:<?php $_SESSION = array(); //清除SESSION值. if(isset($_COOKIE[session_name()])){ //判断客户端的cookie文件是否存在,存在的话将其设置为过期. setcookie(session_name(),'',time()-1,'/'); } session_destro...
2018-07-08 01:32:48 4780
wubi.exe(用于安装ubuntu系统的工具)
2018-06-09
波士顿房价预测(数据集)
2018-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人