-
Grounded-SAM(1/2)
Grounded SAM 2 是一个开源项目,结合了 Grounding DINO 和 SAM 2 等先进模型,实现了图像和视频中的目标检测、分割和跟踪。该项目支持自定义视频输入和多种提示类型,适用于广泛的视觉任务。Grounding DINO 是一种开放集对象检测模型,能够根据任意文本输入检测图像中的目标。它将基于 Transformer 的检测器 DINO 与真值预训练相结合,实现了开放集对象检测的能力。SAM (Segment Anything Model) 是一种可提示的分割模型,...…
-
强化学习机械臂任务
Deep Reinforcement Learning from Human Preferences这篇文章的核心内容是探索通过人类偏好进行深度强化学习(Deep Reinforcement Learning, DRL)。研究的创新点在于: 无奖励函数的强化学习:通常情况下,强化学习需要一个明确的奖励函数来指导学习。然而,许多复杂任务的目标难以用奖励函数明确表达。本文提出了一种通过人类对轨迹片段的偏好反馈来学习奖励函数的方法,从而使得算法能够在没有明确奖励函数的情况下,解决复杂...…
-
嵌入式特性
tips 当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。 在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。 ARM状态:arm处理器工作于32位指令的状态,所有指令均为32位; Thumb状态:arm执行16位指令的状态,即16位状态; volatile关键字的作用是防止变量被编译器优...…
-
C++模板
在C++中,模板(Template) 是一种泛型编程技术,用于编写能够处理不同数据类型的代码,而无需为每种类型单独编写多个版本。模板允许函数、类和结构体在不指定具体数据类型的情况下定义,使得代码更加通用和可复用。模板主要分为两种类型: 函数模板(Function Template) 类模板(Class Template)通过模板,程序员可以编写类型无关的代码,编译器会根据实际传入的类型实例化出具体的函数或类的版本。可以通过模板实现容器!1. 函数模板函数模板用于定义一个可以处理多种类型...…
-
python碎碎念2
基础数据类型Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:实例(Python 3.0+)#!/usr/bin/python3 counter = 100 # 整型变量 miles = 1000.0 # 浮...…
-
强化学习中的动态规划
动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。基于动态规划的强化学习算法主要有两种:一是策略迭代(policy iteration),二是价值迭代(value iteration)。其中,策略迭代由两部分组成:策略评估(policy evaluation)和策略提升(policy improvement)。具体来说,策略迭代...…
-
强化学习中的马尔可夫过程
马尔可夫奖励过程当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质。也就是说,当前状态是未来的充分统计量,即下一个状态只取决于当前状态,而不会受到过去状态的影响。通过这种链式的关系,历史的信息被传递到了现在。马尔可夫性可以大大简化运算,因为只要当前状态可知,所有的历史信息都不再需要了,利用当前状态信息就可以决定未来。状态转移矩阵:\[\boldsymbol{P}=\left(\begin{array}{cccc} p\left(s_{1} \mid s_{1}...…
-
光子带隙PGB
光子带隙(Photonic Band Gap,简称PBG)是指在光子晶体中,特定频率范围内的电磁波(通常是可见光或近红外光)不能传播的现象。这一概念与电子在固体中的电子带隙相似,电子带隙是电子不能存在的能量区间。光子带隙是由光子晶体的周期性结构引起的,这种结构可以是一维、二维或三维的。光子带隙的形成原理光子带隙的形成基于布拉格散射原理,这是一种波在周期性结构中传播时遇到的散射现象。在光子晶体中,不同材料的周期性排列导致折射率的周期性变化。当入射光的波长与光子晶体的结构特征(如周期、层间距)...…
-
Linux疑难杂症
curlcurl是一个用于在命令行界面进行数据传输的工具,广泛用于从或向服务器传输数据。它支持多种协议,包括HTTP、HTTPS、FTP、SFTP、SMTP等。curl命令可以用来执行各种网络请求,例如下载文件、上传数据、提交表单等。以下是一些常见的curl命令用法示例: 获取一个网页内容: curl https://www.example.com 下载文件并保存到指定文件名: curl -o filename https://www.examp...…
-
环境问题合集
libGL:p:(base) cch@cch-virtual-machine:~/learn_pybullet$ /home/cch/anaconda3/envs/py39/bin/python /home/cch/learn_pybullet/hello_world.pypybullet build time: Nov 28 2023 23:52:03startThreads creating 1 threads.starting thread 0started thread 0 arg...…
-
强化学习中表格类方法
表格型方法策略最简单的表示是查找表(look-up table),即表格型策略(tabular policy)。使用查找表的强化学习方法称为表格型方法(tabular method),如蒙特卡洛、Q学习和Sarsa。本章通过最简单的表格型方法来讲解如何使用基于价值的方法求解强化学习问题。Q 表格在多次尝试和熊打交道之后,我们就可以对熊的不同的状态做出判断,用状态动作价值来表达在某个状态下某个动作的好坏。如图 3.6 所示,如果 Q 表格是一张已经训练好的表格,这张表格就像是一本生活手册。通...…
-
esp32串口机制
几个常用的函数Serial.print()将数据作为人类可读的 ASCII 文本打印到串行端口。此命令可以有多种形式。每个数字都使用 ASCII 字符打印数字。浮数类似地打印为 ASCII 数字,默认为小数点两位。字节作为单个字符发送。字符和字符串按现在样发送。例如,Serial.print(78); 输出: “78”Serial.print(1.23456); 输出: “1.23”Serial.print(‘N’); 输出: “N”Serial.print(“Hello world.”)...…
-
机器人控制路线
1 空间变换其中齐次变换什么的是机器人学中非常基础和重要的内容。其中需要注意的地方有: 熟悉坐标表示方式:坐标系 {B} 在坐标系 {A} 下的位姿为 \({^A_B}T\) 等; 左乘与右乘矩阵的区别; 了解旋转矩阵每一列的含义,学会如何通过「目测」写出两个坐标系之间的旋转矩阵; 姿态的表示方式:RPY 角、各种欧拉角、轴角(Angle-Axis)表示、旋转矩阵,除了书上的内容,可以顺便看看四元数(Quaternion)表示,了解欧拉角...…
-
树莓派GPIO
0.1 树莓派GPIO编号方式功能物理引脚从左到右,从上到下:左边奇数,右边偶数:1-40BCM编号侧重CPU寄存器,根据BCM2835的GPIO寄存器编号。wiringPi编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。如图 WiringPi一栏。操作GPIO时一定先要清楚使用那一套编号。 准备1.1 硬件树莓派(我测试了Pi 3B+和Pi Zero W)LED(3mm或5mm)1KΩ电阻杜邦线电脑(我用Windows 7)1.2 GPIO接口1.3 接线首先我们把...…
-
哈希算法
哈希算法是一种将输入数据(通常是任意长度的消息)转换为固定长度的字符串或数字的方法。这种转换过程通常是通过一系列复杂的数学运算实现的。哈希算法广泛应用于数据加密、数据校验、文件完整性验证等领域。哈希算法的工作原理哈希算法的核心在于将输入的任意长度数据,通过一系列不可逆的数学操作,生成一个固定长度的输出。这种输出通常被称为哈希值或摘要。哈希算法具有以下几个重要特性: 确定性:相同的输入总是会生成相同的输出。这意味着,对于任何给定的输入数据,无论你执行多少次哈希运算,结果都是相同的。...…
-
wsl2是最好的虚拟机
wsl2yes!不需要虚拟机劣化,完全利用资源,直接支持GPU,对于开发和学习来说还有更香的选择吗?但是配置比虚拟机困难,很多逻辑没有虚拟机符合直觉。基本操作开启 WSL 环境 通过命令行:在 Windows 的命令提示符(CMD)或 PowerShell 中输入以下命令: wsl 或者,如果你有多个 WSL 分发版,可以指定要启动的分发版: wsl -d Ubuntu-20.04 通过快捷方式:你可以在开始菜单中找到安装的 WSL 分发版...…
-
ARM的七种模式两种状态
两种工作状态1、ARM状态:32位,ARM状态执行字对齐的32位ARM指令。2、Thumb状态,16位,执行半字对齐的16位指令。3、用Bx Rn指令来进行两种状态的切换:其中Bx是跳转指令,而Rn是寄存器(1个字,32位),如果Rn的位0为1,则进入Thumb状态;如果Rn的位为0,这进入ARM状态。(原 因:ARM指令的后两位始终为0,没有用,而Thumb指令的后一位始终为0,没有用,因此采用位0来表示ARM指令与Thumb指令的切换标志位。)注:1、ARM和Thumb两种状态之间的切...…
-
ndnSIM
仿真平台ns-3ns(源自“network simulator”)是一系列离散事件网络模拟器,包括ns-1、ns-2和ns-3,主要用于研究和教学。ns-3是一个开源的离散事件模拟器,使用GNU GPLv2许可证。在网络、协议、流量上都是公开的,可以进行研究、开发和学习。Ns-3是近年来最为突出和重要的网络模拟器之一。它允许您创建一个完整的网络环境来设计、建模、测试和改进网络、协议和系统。离散事件网络模拟器主要用于研究和教育用途。ns3有两个主要目标。其中之一是使研究成为可能,不仅是为学术...…
-
机器学习杂记
RULE激活函数w.r.t. with respect to 常用于求导,或者满足一定条件之类的情况MSE: 均方误差A ≜ B 定义A为B凸偏好:协方差cov(x)>0正相关<0负相关,协方差矩阵由方差和协方差组成,是一个对称矩阵m个样本,$\Sigma=\frac{1}{m}XX_T$ **总体是除以m,样本是m-1,因为要保证无偏估计。在矩阵中用数学期望算更方便S(β) $\Rightarrow$ β的残差平方和残差在数理统计中是指实际观察值与估计值(拟合...…
-
安装ROS1&2
要成功管理这两个不同的ROS版本,需要注意环境变量的切换,以确保每次只激活一个版本的环境。1. 安装ROS 1(以noetic为例)sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.c...…