【内网穿透】使用Frp + VNC配置远程桌面杂记
一. VNC部分参考链接Jetson nano(Ubuntu18.04) 网线连接电脑,实现VNC远程桌面_PiQiuNi的博客-CSDN博客_jetson nano连接电脑
本文通过网线连接jetson nano(Ubuntu18.04) 与windows电脑,实现了网络共享及VNC远程桌面访问配置Jetson nano (此过程需要连接屏幕及外设)以下内容来自系统自带文档 “README-vnc.txt”
安装VNC
12sudo apt updatesudo apt install vino
开启VNC服务实现开机自动启动
12mkdir -p ~/.config/autostartcp /usr/share/applications/vino-server.desktop ~/.config/autostart
配置VNC服务
12gsettings set org.gnome.Vino prompt-enabled falsegsettings set org.gnome.Vino require-encryption false
设置连接密码
12gsettings set ...
【目标检测】FCOS学习笔记
FCOS 学习笔记FCOS: Fully Convolutional One-Stage Object Detection
1. 前言目前大多数先进的目标检测模型,例如RetinaNet、SSD、YOLOv3、Faster R-CNN都依赖于预先定义的锚框。相比之下,本文提出的FCOS是anchor box free,而且也是proposal free,就是不依赖预先定义的锚框或者提议区域。通过去除预先定义的锚框,FCOS完全的避免了关于锚框的复杂运算,例如训练过程中计算重叠度,而且节省了训练过程中的内存占用。更重要的是,本文避免了和锚框有关且对最终检测结果非常敏感的所有超参数。由于后处理只采用非极大值抑制(NMS),所以本文提出的FCOS比以往基于锚框的一阶检测器具有更加简单的优点。
1.1 锚框的缺点
检测表现效果对于锚框的尺寸、长宽比、数目非常敏感,因此锚框相关的超参数需要仔细的调节。
锚框的尺寸和长宽比是固定的,因此,检测器在处理形变较大的候选对象时比较困难,尤其是对于小目标。预先定义的锚框还限制了检测器的泛化能力,因为,它们需要针对不同对象大小或长宽比进行设计。
为了提高召 ...
【目标检测】Retinanet学习笔记
1.Retinanet阅读笔记1.1 网络结构
用Resnet作为特征提取层,之后经过FPN网络进行多尺度的特征融合。
每一个尺度分配9个对应大小的anchor,每个尺度下有3x3个anchor(即3种scale的anchor和3种ratio构成9种anchor)。
其中A=9,4A代表每个锚点对应的九个不同锚框对应的x,y,w,h,KA代表每个锚框对应的K个种类
主干特征提取网络如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import torch.nn as nnimport torchimport mathimport torch.utils.model_zoo as model_zoofrom torchvision.ops import nmsfrom retinanet.utils import BasicBlock, Bottleneck, BBoxTransform, ClipBoxesfrom re ...
【目标检测】YOLOv1-v3学习笔记
YOLOv1-v3学习笔记1.YOLOv11.1 论文思想将一幅图像分成SxS个网格(grid cell), 如果某个object的中心 落在这个网格 中,则这个网格就负责预测这个object
每个网格要预测B个bounding box,每个bounding box 除了要预测位置之外,还要附带预测一个confidence值。每个网格还要预测C个类别的分数。
这个 confidence scores反映了模型对于这个栅格的预测:该栅格是否含有物体,以及这个box的坐标预测的有多准。公式定义如下:
如果这个栅格中不存在一个object,则confidence score应该为0。否则的话,confidence score则为predicted bounding box与 ground truth box之间的 IOU。
YOLO对每个bounding box有5个predictions:x, y, w, h和 confidence。坐标x,y代表了预测的bounding box的中心与栅格边界的相对值。坐标w,h代表了预测的bounding box的width、height相对于整幅 ...
【爬虫】使用baiduspider实现一个异步爬虫
代码仓库:https://github.com/Kakaluoto/asnyc_spider
爬虫数据收集1. 各文件说明
img:存放爬取的图片
async_spider:异步爬虫类
data_collector:爬虫执行脚本,从这里启动
ip_pool:代理IP池,管理可用的代理IP
image_selector:图片筛选器,将爬取的不符合要求的图片删除
2. 涉及到的一些工具和项目
爬虫工具: BaiduSpider: https://github.com/BaiduSpider/BaiduSpider
代理IP池: ProxyPool 代理IP池: https://github.com/jhao104/proxy_pool
随机生成useragent: pip install fake-useragent
异步http请求,异步文件读写: aiohttp, aiofiles, asyncio
3. 相关环境依赖3.1 安装baiduspider1pip install baiduspider
在路径site-packages/baiduspider下找到_init_ ...
【数值分析】Romberg数值积分
1. 原理与公式
2. Python代码实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384# coding=utf-8import numpy as npimport math# 二分法梯形公式# func:需要积分的函数# x_min: 积分下限# x_max: 积分上限# epoch: 二分次数def compute_Tn(func, x_min=0, x_max=1, epoch=10): Tn_list = [] Tn = 0 h0 = x_max - x_min # 积分区间的长度,即初始步长 h = h0 # 每次迭代计算更新h步长 x_half_list = np.array([0]) # 二分点列表 for k in range(epoch + 1): ...
【Linux】Linux实现一个简易shell
1. fork()函数 当程序调用fork()函数并返回成功之后,程序就将变成两个进程,调用fork()者为父进程,后来生成者为子进程。这两个进程将执行相同的程序文本,但却各自拥有不同的栈段、数据段以及堆栈拷贝。子进程的栈、数据以及栈段开始时是父进程内存相应各部分的完全拷贝,因此它们互不影响。
fork()函数在Linux中有两次返回,在父进程中返回子进程的pid,在子进程中返回0。
12345678910111213#include <unistd.h>int main(void){ pid_t pid; //调用一次,返回两次,在父进程中返回子进程的pid在子进程中返回0 pid = fork(); if(pid>0){ printf("I'm a parent\n"); }else if(pid==0){ printf("I'm a child\n"); }else{ ...
【Linux】基于ptrace系统调用实现一个debugger
基于ptrace的debugger设计1. 程序的设计思路1.1 设计思路本次设计实现的debugger针对被调试进程主要实现了6项功能:
可以读取被调试进程CPU所有寄存器的值
可以对被调试进程进行单步调试
可以恢复被调试进程运行
可以查看被调试进程任意内存空间
可以计算被调试进程执行完需要多少条指令
可以在指定地址插入断点
为了在不同的功能之间进行切换,使用循环轮询手动输入参数的方式来决定使用哪一项功能。
12345678910111213141516Type "exit" to exit debugger.Type "reg" or "r" to show registers.Type "step" or "s" to single step.Type "continue" or "c" to continue until tracee stop.Type "memory" or "m" to sh ...
【博客】Hexo在多台电脑上提交和更新
前言我现在有两台电脑,最初第一次装好hexo环境的电脑在宿舍,姑且叫这台电脑“老电脑”吧,代表最初拥有hexo环境的电脑,然后事情是这样的去到工位的电脑上想要更新博客总是要远程启动宿舍的电脑才行,于是想要在工位电脑也能更新,这里工位的电脑姑且叫做“新电脑”吧。
最初搞这个多设备同步属实折腾了好半天,看了很多博客也在知乎上参考了不少,但总是需要在不同博客之间相互参考最终才完美解决,所以想要把这几天的经历总结一下。
一. hexo同步原理1. hexo博客目录结构说明这是老电脑上的目录结构
文件夹
说明
是否需要上传github
node_modules
hexo需要的模块,就是一些基础的npm安装模块,比如一些美化插件,在执行npm install的时候会重新生成
不需要
themes
主题文件
需要
public
hexo g命令执行后生成的静态页面文件
不需要
packages.json
记录了hexo需要的包的信息,之后换电脑了npm根据这个信息来安装hexo环境
需要
_config.yml
全局配置文件,这个不用多说了吧
需要
.giti ...
【Linux】ELF文件解析
前言最近选了Linux内核原理的选修课,虽然因为课时比较短涉及到的内容只能涵盖Linux知识的一小部分,但是老师的水平确实很高,讲的知识也很深入,这次布置的小作业是编写Linux平台下的C语言程序实现如下功能:
模仿实现Linux下readelf工具的部分功能,能够对ELF可执行文件进行简单分析。(至少支持readelf工具的-h、-S、-s三个命令选项功能)
关于原理部分自认为没有能力和大佬们讲得一样透彻清楚,所以参考文章链接贴在了文章的末尾,看了一定就会明白的。
1.ELF文件介绍在 Linux 系统中,一个 ELF 文件主要用来表示 3 种类型的文件:
可执行文件:被操作系统中的加载器从硬盘上读取,载入到内存中去执行;
目标文件:被链接器读取,用来产生一个可执行文件或者共享库文件;
共享库文件:在动态链接的时候,由 ld-linux.so 来读取;
2.readelf命令1234567891011121314151617181920212223-a :--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I-h :--file-header 显 ...