自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【Prelim】光通信的C band L band S band分别是多少

1550范围(C波段)通常被称为"erbium window"英文“铒窗口”,因为铒离子的能量级别与C波段光子的能量级别接近。通过受激发射处理,可以诱使铒释放能量中使用该能量放大C波段中的光。最开始第二和第三通信窗口是由1400 nm处存在的损耗峰来划分开的,但是一些高级的光纤不具备这一峰值。

2024-05-07 15:11:22 292

转载 OpenClash无法更新内核

安装完 Dev 内核后,可以配置代理网络节点,然后通过在 “openclash”>“全局设置”>“版本更新” 内更新内核,如你需要安装 TUN 内核,那么和以上方法一致,但需要将内核文件修改为 clash_tun 并给予 777 最高权限,以下列出 Dev 和 TUN 内核下载地址。Dev 内核下载:https://github.com/vernesong/OpenClash/releases/tag/Clash。

2023-12-14 15:26:33 15676

原创 分光棱镜BS、PB、NPBS的区别

对偏振不敏感,不管入射光是什么偏振态的都不会影响到出射光的分光比,分光比在任何情况下都是50:50。分束的时候只管分能量,理想器件下出射的两路光偏振态还是原来的样子,实际工艺缺陷会造成一点点退偏振。:对入射偏振敏感,线偏振角度会影响分光比。若入射的是自然光或圆偏振光,则按50:50分光。分束的时候除了分配能量外,出射的两路光一定是线偏振,而且一束是平行线偏振,一束是垂直线偏振,两种线偏振方向相差90°。分束的时候只管分能量,理想器件下出射的两路光偏振态还是原来的样子,实际工艺缺陷会造成一点点退偏振。

2023-09-09 21:33:36 2703

原创 通信中的比特率、符号率

当要将数据进行远距离传送时,往往是将数据通过调制解调技术进行传送的,即将数据信号先调制在载波上传送,如QPSK、各种QAM调制等,在接收端再通过解调得到数据信号。数据信号在对载波调制过程中会使载波的各种参数产生变化(幅度变化、相位变化、频率变化、载波的有或无等,视调制方式而定),波特率是描述数据信号对模拟载波调制过程中,载波每秒中变化的数值,又称为调制速率,波特率又称符号率。在数据调制中,数据是由符号组成的,随着采用的调制技术的不同,调制符号所映射的比特数也不同。

2023-09-04 22:11:15 310

原创 TP、TN、FP、FN的理解

在第2个单词的基础上理解第1个单词(即第2个单词是前提条件)判定为真的(positive),且判定对了(true)判定为假的(negative),且判定对了。判定为真的(positive),但判定错了。判定为假的(negative),且判定错了。

2023-08-10 00:40:12 625

转载 树莓派3B+配置OpenWRT

保存并应用后,等待一会,然后断开网络,再重新连接,在浏览器中输入192.168.2.1,就是刚才我们修改后的地址,进入路由器后台,此时开始创建网络连接,点击网络-接口,然后创建新接口,设置参考下图所示,选择有线接口eth0,然后点击提交。这里把ipv4地址修改为192.168.2.1,主要是为避免和后面连接的主路由IP冲突,修改后点击右下角的保存,记住是点击保存,不是保存应用,保存后右上角会出现未保存设置提示,点击进入, 在这里再点击保存并应用。点击保存,然后再保存并应用,此时就可以正常上网了。

2023-05-01 19:32:16 2055 1

原创 寒武纪MLU270安装运行Pytorch yolov3实录

注:本教程仅供摩米实验室内部学习适用。

2023-04-03 11:20:27 1780

原创 Ubuntu分区扩充

Ubuntu 分区扩充

2023-04-01 14:43:45 1381

原创 快排的最好最坏情况

快排的最好最坏情况

2022-08-17 09:36:31 5640

原创 二叉树的迭代遍历(先序、中序、后序)

二叉树的迭代遍历import java.util.*;public class Main { public static void inorder(TreeNode root){ Deque<TreeNode> stack = new ArrayDeque<>(); TreeNode cur = root; while(cur != null || !stack.isEmpty()){ if(c

2022-02-26 14:17:52 119

原创 Java使用链表实现队列

插入和删除O(1)public class QueueLinkedList { private int size; private Node head; private Node tail; public QueueLinkedList(){ size = 0; head = new Node(0); tail = new Node(0); head.next = tail; } public

2022-02-24 08:55:24 811

原创 深度优先搜索&宽度优先搜索

深搜与广搜比较:数据结构空间性质DFSstackO(h)不具最短路性质BFSqueueO(2h)具有最短路性质DFS边搜边回头,执着。回溯、剪枝。每个DFS都对应一条搜索树。想清楚搜索的顺序。想清楚遍历的顺序。回溯重要步骤:恢复现场。BFS眼光六路,耳听八方。每次只会扩展一层,不会离起始点太远。...

2022-02-18 11:22:38 299

原创 单调栈问题详细笔记

当元素出栈时,说明这个新元素是出栈元素向后找第一个比其小的元素举个例子,配合下图,现在索引在 6 ,栈里是 1 5 6 。接下来新元素是 2 ,那么 6 需要出栈。 当 6 出栈时,右边 2 代表是 6 右边第一个比 6 小的元素。当元素出栈后,说明新栈顶元素是出栈元素向前找第一个比其小的元素当 6 出栈时,5 成为新的栈顶,那么 5 就是 6 左边第一个比 6 小的元素。如接雨水这题class Solution { public int trap(int[] height)

2022-02-10 13:27:02 231

原创 Trie树、并查集、堆

Trie树用来高效地存储和查找字符串集合的数据结构使用Trie树通常存储要么全是小写、要么全是大写、要么全是数字并查集两大主要功能:将两个集合合并询问两个元素是否在一个集合当中并且近乎O(1)的时间复杂度内完成。基本原理:每个集合用一棵树来表示,树根的编号就是整个集合的编号,每个节点存储它的父节点,p[x]表示x的父节点。问题1: 如何判断树根? --〉if(p[x] == x)问题2: 如何求集合编号? --〉while(p[x] != x) x = p[x]最后这个x就是集合编

2022-02-05 20:34:26 520

原创 Java使用数组模拟「链表、栈与队列」(笔试常用)

写在前面:由于new操作比如new Node()是相当耗时的,并且笔试的时候数据量是比较大的,如果链表需要把节点都new出来可能会超时,这时候就需要使用数组来模拟。数组模拟链表(1)单链表常常使用邻接表来模拟,邻接表常常用来存储树和图。(2)双链表通常是用来优化某些题。e[N]: 某点的值是多少ne[N]: 某个点的next指针是多少e和ne使用下标来关联,0号点的值为e[0], next指针是ne[0], 显然ne[0] = 1,注意空节点的下标用-1来表示。数组模拟双向链表e[N],

2022-02-04 10:40:29 605

原创 区间合并算法

区间合并算法第一步:按区间左端点排序

2022-02-02 21:28:55 1544

原创 离散化模版

把一组数映射到从0开始的自然数:0 1 2 3 … N具体实现:C++模版基本思路就是对这个值域很大很稀疏的数排完序之后,下标就是他们映射的值。数组去重算法:

2022-02-01 22:18:39 388

原创 双指针算法

双指针算法模版for(int i = 0, j = 0; i < n; i++){ while(j < i && check(i, j)) j++; //具体问题的逻辑}常见问题的分类:(1)对于一个序列,用两个指针维护一段区间(2)对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作...

2022-02-01 20:36:43 880

原创 位运算常用操作

lowbit()得到某个数的二进制最后一位1.比如说某二进制为1010,lowbit输出为10,比如说某数为101000,那lowbit输出为1000.具体实现是,x & (-x)即x & (~x + 1)作用:可以得到x中1的数量,具体实现是把最右边的1去掉。判断某数二进制表示的第k位是0还是1使用右移再与1x >> k & 1...

2022-02-01 20:26:22 345

原创 Java快速输入输出之BufferedReader和BufferedWritter

BufferedReader和BufferedWritter使用首先定义输入输出static BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));static BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out));使用方法如下:String[] firstline = cin.readLine().sp

2022-01-29 15:18:15 1168 1

原创 二分算法只需背两种模版

整数二分有单调性,必然可以二分。如果没有单调性,也可能可以二分,二分的本质并不是单调性。模版//区间[l, r]被划分成[l, mid]和[mid + 1, r]使用int bsearch_1(int l, int r){ while(l < r){ int mid = l + r >> 1; if(check(mid)) r = mid; // check()判断mid是否满足性质。 else l = mid + 1; } return l;}//区间[l

2022-01-28 12:18:41 610

原创 快排和归并排序

快排模版class Solution { public int[] sortArray(int[] nums) { quickSort(nums, 0, nums.length -1); return nums; } public void quickSort(int[] nums, int l, int r){ if(l >= r) return; int key = nums[l]; int

2022-01-28 10:50:08 729

原创 滑动窗口问题

滑动窗口的最大最小值问题:import java.util.*;class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = in.nextInt(); int N = 1000010; int[] a = new int[N];

2022-01-28 01:48:57 852

原创 Ubuntu使用docker常用操作记录

1. docker基本常用命令docker version # 查看版本systemctl start docker # 启动systemctl stop docker # 停止systemctl status docker # 查看状态systemctl restart docker  # 重启systemctl enable docker # 设置开机自动启动# 验证,运行hello-worlddocker run hello-world # 下载hello-world镜像并运行

2022-01-19 16:59:05 2432

原创 Java初始化二维数组为某常数

Arrays.fill(dp, -1)只能初始化一维数组,使用两步走的方法:public int[][] memo;public int rob(int[] nums) { memo = new int[nums.length + 2][40000]; int[] ten = new int[40000]; Arrays.fill(ten, -1); Arrays.fill(memo,ten); return dfs(nums, 0, 0);}即可

2022-01-17 08:51:04 360

转载 二分查找及其变体总结(左闭右闭情况)

二分法总结

2022-01-14 11:05:06 475 1

原创 MQTT物联网协议学习笔记

MQTT构建在tcp-ip协议之上,极少的代码和有限的带宽提供实时可靠的网络消息服务。1. MQTT的协议原理1.1 MQTT协议实现方式实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:(1)Topic,可以理解为

2022-01-12 16:05:23 106

原创 实现路由器内网穿透

实现路由器内网穿透在获得电信网关的公网ip资格后,将windows服务器内网穿透,实现远程调用相关服务。比如说我配置livego为远程流媒体服务器,推流的端口是1935,所以需要实现一个端口代理转发。由于推流端口1935,和拉流端口7001都需要使用,所以这两个端口都需要被代理。(1)配置路由器代理在浏览器上输入192.168.31.1进入路由器管理界面,然后选择高级设置,添加端口转发:由于我的这个路由器有DMZ功能,就是一键将本机所有服务都完成一次代理。(2)网关配置代理在浏览器输入

2022-01-12 15:35:32 9815

原创 关于win10电脑突然无法显示输入法的解决方案

解决方案执行了以下三个步骤就好了,也不知道是哪个步骤起的作用,估计是第三个。把Microsoft IME进程关掉,不然一直会高占用CPU,输入法栏无法出现。任务管理器,找到ChsIME,位置,找到目录,给上管理员权限。用管理员权限执行C:\Windows\System32下的ctfmon.exe即可出现...

2022-01-10 14:38:07 2887

转载 关于重写equals方法时为什么要重写HashCode方法

转载于:https://blog.csdn.net/pange1991/article/details/86550867?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-17.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-

2021-12-22 20:21:19 84

原创 在windows和Ubuntu配置OpenXXX客户端

在Windows和Ubuntu配置OpenXXX客户端方法在服务器上配置OpenXXX服务,然后在两台电脑上配置OpenXXX客户端,可以实现虚拟局域网通信。对于ROS之类的需要局域网通信的协议,通过XXX的方式即可实现非真实的局域网通信。由于云服务器上的OpenXXX配置过于复杂,本文先介绍客户端的配置方法。参考文献:https://blog.csdn.net/m0_50546016/article/details/114240734一、Windows端下载OpenXXX windows版本客

2021-10-11 15:24:49 1978 2

原创 Centos8.2云服务器通过nginx + nginx-rtmp-module搭建流媒体服务器实现低延迟推拉流

Centos8.2云服务器通过nginx + nginx rtmp 方式搭建流媒体服务器一. 准备工作1、虚拟机系统: Centos8.2 (本人使用的是腾讯云服务器)2、软件包:nginx-1.18.0.tar.gz 、nginx-rtmp-module3、远程工具:宝塔面板4、推流工具:OBS5、拉流工具:VLC二. 开始搭建新建好服务器之后,首先进入root模式,在root模式下配置宝塔面板:如果是Centos系统可以按照如下命令一键配置宝塔面板yum install -y wge

2021-09-16 22:03:27 2166 8

原创 pip安装出现Script file ‘D:\ProgramData\Anaconda3\Scripts\pip-script.py‘ is not present.

pip安装出现Script file ‘D:\ProgramData\Anaconda3\Scripts\pip-script.py’ is not present.python -m ensurepip --default-pip

2021-08-30 15:44:49 923 1

原创 将yolov5的detect.py改写成可以供其他程序调用的方式,并实现低时延(<0.5s)直播推理

将yolov5的推理代码改成可供其它程序调用的方式,并实现低时延(<0.5s)直播推理yolov5的代码具有高度的模块化,对于初学者十分友好,但是如果咱们要做二次开发,想直接调用其中一些函数,恐怕还是得费一番功夫。参考https://www.pythonheidong.com/blog/article/851830/44a42d351037d307d02d/和https://blog.csdn.net/ld_long/article/details/113920521(不知道为什么失效了)实现

2021-08-16 17:03:15 17173 35

原创 leetcode 56 合并区间

Leetcode 56. 合并区间插入链接与图片链接: link.class Solution { public int[][] merge(int[][] intervals) { List<int []> inter = Arrays.asList(intervals); List<int []> newInter = new ArrayList<int []>(inter); List<int []> res = new Ar

2021-04-20 19:52:54 76

原创 (二分法总结)剑指 Offer 53 - I. 在排序数组中查找数字 I

class Solution { public int search(int[] nums, int target) { return helper(nums,target)-helper(nums,target-1); } int helper(int[] nums, int tar){ int i = 0,j = nums.length-1; int m; while(i<=j){ .

2020-08-17 17:08:33 109

原创 Leetcode笔记:7.整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路我的思路是,先把输入的数字转换成数组,然后取逆序,然后再转换成数字输出。但是涉及到符号,越界等问题,做了很多微调,最后代码就很丑了。

2020-08-06 15:48:05 131

原创 【PaddlePaddle论文复现】Temporal Pyramid Network for Action Recognition论文笔记

Temporal Pyramid Network for Action Recognition论文笔记Abstract视觉节奏表征了动作的动态和时间尺度。本文提出了一种通用的时间金字塔网络(TPN),该网络以即插即用的方式灵活地集成到2D或3D主干网络中。TPN的两个基本组件,特征源和特征融合,形成了主干的特征层次结构,因此它可以捕获各种速度的动作实例。Introduction当执行相同的动作时,由于年龄,情绪和精力水平等各种因素,每个演员可以按自己的视觉节奏来做动作。例如,老人的运动往往比年轻人

2020-08-05 19:59:21 465

原创 使用python opencv实现瞳孔追踪

使用python+Opencv实现瞳孔识别与跟踪使用opencv做瞳孔识别是十分方便的,它有很多好用的库可以直接使用。废话不多说,直接上代码。下面展示一些 内联代码片。// A code blockvar foo = 'bar';import cv2import numpy as npcap = cv2.VideoCapture("eyes.mp4")while (True): ret, frame = cap.read() if ret is False:

2020-07-09 14:38:54 7972 9

原创 VS2015+OpenCV4.2.0实现四图拼接

VS2015+OpenCV使用stitch函数实现四图拼接使用平台:VS2015+OpenCV4.2.0网上见到的教程用的都是OpenCV4.0以下的,然而在新的版本的OpenCV拼接函数有点不一样。我采用的是stitch函数,代码如下:#include <iostream> #include <stdio.h> #include "opencv2/core...

2020-04-24 15:53:37 2160

空空如也

空空如也

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

TA关注的人

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