当前位置: 首页 > news >正文

3-机器人视觉-机器人抓取与操作

文章目录

  • 3机器人视觉
    • 目录
  • 1. 传感器和标定
    • 摄像头模型
      • Intrinsic Matrix
      • Extrinsic Matrix
    • 标定
      • 内参标定
      • 手眼标定和外参标定
    • 力传感器&其它传感器
      • 其它传感器
  • 2. 神经网络和图像处理
    • 2D特征处理
      • 常见架构
    • 训练流程
    • 推理流程
    • 部署流程
    • 2D 图像任务
    • 3D Point Cloud Feature
      • PointNet Application
  • 3. 3D位姿估计
    • 分类
    • 位姿估计数据集
      • BOP: Benchmark for 6D Object Pose Estimation
      • YCB数据集
    • 位姿估计指标
    • 传统方法
    • PoseCNN
    • DenseFusion
    • YOLO6D
  • Category-level
    • Unseen Object Pose Estimation
    • Foundation Model
    • Foundation Pose
  • Pose Estimation for Grasping
  • REF

3机器人视觉

目录

  • 1. 传感器和标定
    • 摄像头模型
    • 标定
      • 手眼标定和机器人内参标定

1. 传感器和标定

摄像头模型

Pinhole Camera Model
3 coordinates
• World coordinate
• Camera coordinate
• Image coordinate (2D pixel)

在这里插入图片描述

Task:
• Given: pixel(u, v), and depth z;
• Compute: world coordinate ( x _ w , y _ w , z _ w x\_w,y\_w,z\_w x_w,y_w,z_w )

在这里插入图片描述

Intrinsic Matrix

T: 获取外界坐标到相机坐标

  • f x , f y , c x , c y f_x, f_y, c_x,c_y fx,fy,cx,cy
  • Distortion: S

c_x,c_y是像素分辨率的一半
• 假设相机传感器的宽度为36,高度为24,图像分辨率为6000*4000像素。如果相机的等效 35mm 焦距为50,则
在这里插入图片描述

Extrinsic Matrix

T:
• Model the transformation between camera coordinate to world coordinate
• Deal with “variable” frame (i.e. camera frame is moving)
在这里插入图片描述

标定

内参标定

• 内参矩阵K
• 畸变系数 k 1 , k 2 , p 1 , p 2 , k 3 k_1,k_2,p_1,p_2,k_3 k1,k2,p1,p2,k3

工具:
• ROS,OpenCV(内置工具进行标定)

对棋盘格不同角度拍照测量
• 张氏标定法

在这里插入图片描述

手眼标定和外参标定

手眼标定
• 工具:ROS,OpenCV
• 流程(eye-in-hand):
• 机械臂移动到不同位姿对标定板拍照
• 记录机械臂法兰位姿和对应的图片

眼在手上,求夹爪在相机坐标系下位姿
眼在手外:base_link在camera_link但坐标系下单位姿
在这里插入图片描述
在这里插入图片描述

机器人内参标定:

• 机器人内参误差一般小于摄像头外参带来的误差
• 相关产品需要验证机器人的内参误差(需要工程化验证)
• 标定方法
• 测量:一般为激光跟踪仪或者拖动到特定位置
• 算法:POE或者DH参数后,构建参数迭代

可参考:https://www.universal-robots.com/articles/ur/robot-care-maintenance/kinematic-robot-calibration/

手眼的实践问题(基于RGB-D的测量)
• 用于经典的pipeline
• 误差源较多(机器人内参,摄像头内外参,机器人工具到法兰,摄像头深度和RGB测量等),较难分离;
• 标定和验证流程较长,长期使用中出现精度下降问题比较难定位
• 用于数据生产,训练的模型可能会有硬件依赖问题

在这里插入图片描述

在这里插入图片描述

Depth摄像头:
• 结构光(Structured Light):干扰,室外
• 飞行时间(Time of Flight, ToF) :干扰
• 双目视觉(Stereo Vision):低纹理
Depth 信息:
• Pointcloud and depth image
• 有缺失值

在这里插入图片描述
Depth-RGB位置关系和标定
• 结构光,标定IR和RGB位置
其它:
• Pointcloud信息可以直接用于识别分割等任务
• RGB的识别任务,需要做2D到3D的投影

深度摄像头问题
实践中-深度缺失&不准问题
• 材料,光照,边缘
• 人体头发深度
• 玻璃深度
p 实际量产场景
• 入厂测试,
• 功能&参数测试
• 系统测试
• 供应商问题

力传感器&其它传感器

末端力传感器
• 末端力控

单轴,6轴或者3轴
• 安装和使用
在这里插入图片描述

关节扭矩传感器
• 电流估计,电磁式,应变片式
• 可以用于关节力控
• 可以用于末端六维力估计和末端力控(可靠性和性能相对不如直接测量)
在这里插入图片描述

实践中力传感器问题
• 零飘,异常数据等

其它传感器

• 编码器
在这里插入图片描述
电机侧编码器:18位一一2^18=262144
输出端多圈绝对值编码器:19位一一2^19=524288
关节减速比:1:101
问关节转90°,输出端编码器数值及电机转了多少度?

输出端编码器数值 = ( 90 / 360 ) ∗ 2 1 9 输出端编码器数值=(90/360)*2^19 输出端编码器数值=(90/360)219
电机转了 101*90=9090度

关节位置信息
• 触觉传感器
在这里插入图片描述

2. 神经网络和图像处理

在这里插入图片描述

优化视角
• 寻找最优网络参数组合,使得训练数据中的loss最小化;
主要元素
• 网络结构

特征处理和任务头
• 数据集和dataloader
• Loss function and optimizer
• Training and inference
在这里插入图片描述

2D特征处理

p Conv2d
在这里插入图片描述
这个关于维度的变换图经常在图像卷积中用到
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

p MLP(Linear)
p Other layers
• Pooling
• Activation
Max pooling
• normalization

在这里插入图片描述

在这里插入图片描述
一幅搞笑图片
在这里插入图片描述

Normalization

可以参考一文弄懂Batch Norm / Layer Norm / Instance Norm / Group Norm 归一化方法
在这里插入图片描述

常见架构

CNN
• Residual bock
• U-net
在这里插入图片描述
在这里插入图片描述

Transformer:
• ViT

训练流程

• 1 准备数据集
• 2 准备模型
• 3 准备Loss函数和优化器
• 4 训练循环(模型评估)
• 4.1 optimizer.zero_grad()
• 4.2 outputs = model(images)
• 4.3 loss = criterion(outputs, labels)
• 4.4 loss.backward()
• 4.5 optimizer.step()

在这里插入图片描述

推理流程

• 1 读取图像
• 2 加载模型参数
• 3 模型forward推理

训练流程

在这里插入图片描述

部署流程

在这里插入图片描述

2D 图像任务

p 常见任务
• 分类
• 检测
• 分割
• 其它:生成,人脸,OCR,抠图,降噪,检索等
p 机器人相关:
• 位姿估计和追踪
在这里插入图片描述
在这里插入图片描述

3D Point Cloud Feature

在这里插入图片描述
注意这里会用一个T-Net生成转换矩阵,这是考虑到点云在空间的坐标变换。

PointNet 示例
在这里插入图片描述
在这里插入图片描述

pointNet++
推荐阅读:https://zhuanlan.zhihu.com/p/266324173
关注局部范围的point
在这里插入图片描述
Autonomous Driving Prediction and ML Planning:
• PointNet for subgraph feature extraction
在这里插入图片描述

PointNet Application

Autonomous Driving Prediction and ML Planning:
• PointNet for subgraph feature extraction
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 3D位姿估计

分类

 问题分类:
• Instance-level (特定的物体)
• Categories-level (一类物体)
• Unseen Object
 方法分类(Instance-level) :
• Correspondence-based method
• Template-based method
• Voting-based & Regression-Based Method
 输入:
• RGB图像
• RGB+Depth
• 3D模型

Vision-based robotic grasping from object localization, object pose estimation to grasp estimation for parallel grippers: a review

位姿估计数据集

在这里插入图片描述

在这里插入图片描述

BOP: Benchmark for 6D Object Pose Estimation

 BOP Tookit
 BOP Dataset:
https://bop.felk.cvut.cz/datasets/
可以直接使用huggingface cli和toolkit来准备相关数据集
部分数据集略有改动
Data: depth, rgb, model, camera_info, mask
 BOP Format:
• https://github.com/thodan/bop_toolkit/blob/master/docs/bop_datasets_format.md
 Leaderboard
在这里插入图片描述

YCB数据集

 21 YCB objects captured in 92 videos.
 常见物品, 在超市能够买到
 扩展数据集:
• DexYCB,YCB Affordance
• YCB-Sight: A visuo-tactile dataset (视觉和触觉两种模态数据集)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

位姿估计指标

ADD和ADD-S较为常用.
 Visible Surface Discrepancy (VSD)
 Maximum Symmetry-Aware Surface Distance (MSSD)
 Maximum Symmetry-Aware Projection Distance (MSPD)
average point distance (ADD): ref
average closest point distance (ADD-S)
 其它:
• Intersection-over-Union (IoU) 3D
在这里插入图片描述

 BOP评估方式
• 对VSD,MSSD,MSPD增加threshold
• 然后对相关数据集计算AR,然后取平均
在这里插入图片描述

传统方法

SFM(Structure From Motion )
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 2D Image
针对点匹配错误的问题
• PnP (Perspective-n-Point (PnP) )
• PnP+RANSAC(Random sample consensus): ref

OpenCV solvePnPRansac()
在这里插入图片描述
在这里插入图片描述

3D PointCloud
• ICP
• pcl::IterativeClosestPoint

ICP Algorithm: Theory, Practice And Its SLAM-oriented Taxonomy
在这里插入图片描述

Instance-level Pose Estimation

 Correspondence based method
 Template-Based Methods
 Voting-based & Regression-Based Method
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PoseCNN

Pose estimation with RGB Input
[]Model
Feature Extraction
Segmentation
Center point prediction
Rotation and translation regression
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Task and Loss:
• Segmentation
• Center point prediction
* regress to the center direction for each pixel
* Hough voting
• Transformation prediction:
- PLoss: pose loss
- SLoss: shape match loss
计算两种loss,位姿和形状匹配
在这里插入图片描述

Model

  • Feature Extraction
  • Segmentation
  • Center point prediction
  • Rotation and translation regression
    在这里插入图片描述

center point ,预测 x,y的方向, Td
在这里插入图片描述
在这里插入图片描述

DenseFusion

Pose Estimation with RGB and Depth Image
在这里插入图片描述

Feature:
• 在分割的物体上,通过CNN和PointNet的编码器分别提取图像和点云特征
• 在像素坐标下做特征融合(concat)
• 提取全局特征
• 全局特征和局部特征融合(concat)
在这里插入图片描述
在这里插入图片描述

 Head
• Translation, rotation, confidence
 Loss
 Pose Refinement
• Pose residual estimator

在这里插入图片描述

在这里插入图片描述

YOLO6D

 Simple and Fast
 feature extraction
• CNN
 Detection architecture
• Prediction 8 bbox points + 1 center point; and Class
• PnP for 3D estimation uses 9 control point correspondences
在这里插入图片描述
\

Category-level


Example application of category level perception:

  • Object detection in autonomous driving:
    • Hierarchical categories:
    • Car – Truck, SUV, Sedan, etc;
       Category-level pose estimation
      • 针对同类物体估计位姿(例如,杯子)
      generalizing to objects within established categories
      在这里插入图片描述

Category-level pose estimation
• 针对同类物体估计位姿(例如,杯子)
• generalizing to objects within established categories


NOCS:
https://github.com/hughw19/NOCS_CVPR2019
• Represent a category of objects
• Normalized Object Coordinate Space
•Predict NOCS map (x, y, z)
在这里插入图片描述
在这里插入图片描述

Data generation:

  • Mixed Reality data generation
    • Real background with sim object
    • Rendering with different lighting

在这里插入图片描述

Unseen Object Pose Estimation

 Input: CAD model, reference image
• No training on novel object
• Non-like category-level which requires training on category,
and alignment if using NOCS
 Traditional:
• template-based, or feature-based method
 Foundation Model
在这里插入图片描述
在这里插入图片描述

Foundation Model

 Foundation Pose
 SAM-6D
 FreeZe
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Foundation Pose

https://github.com/NVlabs/FoundationPose/tree/main/learning/models

 Input:
• model-based, where a textured 3D CAD model of the object is
provided;
• model-free, where a set of reference images of the object is provided
 Good Performance in these tasks
• model-based, model-free;
• Pose estimation, pose tracking
在这里插入图片描述

 Pose generation data pipeline
• Hierarchical LLM from data generation

  1. LLM Prompt for object description
  2. LLM description for texture generation
    • Physics engine for rendering
    在这里插入图片描述

Pose Estimation for Grasping

 6D object pose estimation
 Grasping pose generation
 Pre-grasping pose
 Path planning and trajectory generation

REF

https://www.shenlanxueyuan.com/course/727/task/29418/show

 Deep Learning-Based Object Pose Estimation: A Comprehensive Survey; “https://github.com/CNJianLiu/Awesome-Object-Pose-Estimation”
 Vision-based Robotic Grasping From Object Localization, Object Pose Estimation to Grasp Estimation for Parallel Grippers: A Review
 Challenges for Monocular6D Object Pose Estimation in Robotics
 BOP: Benchmark for 6D Object Pose Estimation
 FoundationPose: Unified 6D Pose Estimation and Tracking of Novel Objects
 DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion
 Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation
 PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes
 Real-Time Seamless Single Shot 6D Object Pose Prediction
 Computer Vision: A Modern Approach
 https://deeprob.org/w24/projects/project3/, Project 3 PoseCNN

相关文章:

3-机器人视觉-机器人抓取与操作

文章目录 3机器人视觉目录 1. 传感器和标定摄像头模型Intrinsic MatrixExtrinsic Matrix 标定内参标定手眼标定和外参标定 力传感器&其它传感器其它传感器 2. 神经网络和图像处理2D特征处理常见架构 训练流程推理流程部署流程2D 图像任务3D Point Cloud FeaturePointNet Ap…...

LINUX——shell编程

Shell 简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图&#xff…...

12.11函数 结构体 多文件编译

1.脑图 定义一个数组,用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息,删除后调用显示学生信息函数 显示 4> 封…...

【go语言】reflect包与类型推断

reflect 包的核心概念 Go 中的反射涉及两个核心概念: Type:表示一个类型的结构体,reflect.Type 是类型的描述。Value:表示一个值的结构体,reflect.Value 是一个具体值的包装。 反射让我们能够动态地访问对象的类型和…...

docker启动一个helloworld(公司内网服务器)

这里写目录标题 容易遇到的问题:1、docker连接问题 我来介绍几种启动 Docker Hello World 的方法: 最简单的方式: docker run hello-world这会自动下载并运行官方的 hello-world 镜像。 使用 Nginx 作为 Hello World: docker…...

【瑞萨RA0E1开发板评测报告】IIC OLED 测试

【瑞萨RA0E1开发板评测报告】IIC OLED 测试 基于前面关于瑞萨 e studio 开发软件的使用,以及工程测试基础,本文进一步探索实现硬件 IIC OLED 的文字和图片显示。 1 背景 简单介绍 IIC 通信协议、OLED 显示原理、SS1306 驱动 IC 等。 IIC 通信协议 I…...

全球叉车市场 2023 - 2032 年发展趋势:自动化、电商与电动叉车的崛起

全球叉车市场到2032年将达到955.1亿美元,年复合增长率为7.49% | Astute Analytica 全球叉车市场正迎来显著增长,市场估值预计将从2023年的498.6亿美元增长至2032年的955.1亿美元,预测期内年复合增长率(CAGR)为7.49%。这…...

Kafka系列教程 - Kafka 生产者 -2

1. 生产者简介 不管是把 Kafka 作为消息队列系统、还是数据存储平台,总是需要一个可以向 Kafka 写入数据的生产者和一个可以从 Kafka 读取数据的消费者,或者是一个兼具两种角色的应用程序。 使用 Kafka 的场景很多,诉求也各有不同&#xff…...

【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p38564 本年度,国家及地方政府持续发力,推出诸多政策组合拳,全力推动汽车产业向更高质量转型升级,积极鼓励消费升级,并大力推行以旧换新等惠民生、促发展举措。尤为引人注目…...

将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档

阅读中国古籍电子书的时候,往往有很多注释。在正文和注释之间来回滚动页面是一件挺麻烦的事,比较方便的做法是将它编辑成通过点击注释引用即将注释弹出显示在引用所在位置的HTML文档,然后利用HTML文档制作成PDF或者epub文件,就比较…...

【Android开发】安装Android Studio(2023.1.1)

下载安装包 Android Studio2023.1.1百度云盘下载,提取码:6666https://pan.baidu.com/s/1vNJezi7aDOP0poPADcBZZg?pwd6666 安装Android Studio 2023.1.1 双击下载好的安装包 弹出界面点击下一步 继续点击【Next】 更改安装路径后继续点击【Next】 点…...

SQLite Truncate Table

SQLite Truncate Table SQLite 是一种轻量级的数据库管理系统,广泛用于各种应用程序中。在数据库管理中,有时候需要快速删除表中的所有数据,这时就可以使用 TRUNCATE TABLE 命令。然而,SQLite 与其他数据库管理系统(如…...

港科夜闻 | 香港科大与荷兰代尔夫特理工大学(TU Delft)建立合作伙伴关系,推动艺术科技教育与研究...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大与荷兰代尔夫特理工大学(TU Delft)建立合作伙伴关系,推动艺术科技教育与研究。2024年12月6日,合作伙伴计划正式启动,双方期望透过合作加强艺术科技知识交流,借此推…...

谈一谈大数据流式处理,以Spark Streaming为例详细论述

Spark Streaming是构建在Spark上的实时流计算框架,可以进行实时流数据处理。Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算…...

RabbitMQ实现消息发送接收——实战篇(路由模式)

本篇博文将带领大家一起学习rabbitMQ如何进行消息发送接收,我也是在写项目的时候边学边写,有不足的地方希望在评论区留下你的建议,我们一起讨论学习呀~ 需求背景 先说一下我的项目需求背景,社区之间可以进行物资借用&#xff0c…...

Docker Desktop占用空间问题解决

Windows安装Docker Desktop,没过多久就会发现C盘空间满了,很大可能是Docker Desktop的文件占用了空间,可以通过以下步骤解决: 步骤一:执行清理命令 docker system prune清理磁盘,删除关闭的容器、无用的数…...

系统性能优化

一、概述 性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、cpu、内存、磁盘IO、网络、流量、JVM、Tomcat、DB等方面的性能指标。 性能优化需要有一些技巧:对于整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发…...

golang操作sqlite3加速本地结构化数据查询

目录 摘要Sqlite3SQLite 命令SQLite 语法SQLite 数据类型列亲和类型——优先选择机制 SQLite 创建数据库SQLite 附加数据库SQLite 分离数据库 SQLite 创建表SQLite 删除表 SQLite Insert 语句SQLite Select 语句SQLite 运算符SQLite 算术运算符SQLite 比较运算符SQLite 逻辑运算…...

【NebulaGraph】mac通过Docker安装以及官方查询示例、以及索引详解还有数据构建案例(五)

【NebulaGraph】mac通过Docker安装以及官方查询示例 1. Docker安装NebulaGraph2. 官方查询示例3. Nebula Graph 的 Java 数据解析实践与指导4. 从零到一:如何构建一个企业股权图谱系统?5. Nebula Graph 索引详解6. nGQL 执行计划详解与调优7. 图数据库的…...

【一本通】家庭作业(贪心算法)

【一本通】家庭作业 C语言代码 💐The Begin💐点点关注,收藏不迷路💐 老师在开学第一天就把所有作业都布置了,每个作业如果在规定的时间内交上来的话才有学分。每个作业的截止日期和学分可能是不同的。例如如果一个作业…...

Kylin麒麟操作系统 | 网络链路聚合配置(team和bond)

目录 一、理论储备1. 链路聚合 二、任务实施1. team模式2. bond模式 一、理论储备 1. 链路聚合 链路聚合是指将多个物理端口捆绑在一起,形成一个逻辑端口,以实现出/入流量在各成员端口中的负载分担。链路聚合在增加链路带宽、实现链路传输弹性和冗余等…...

2024年软件测试面试题大全【含答案】

一、面试基础题 简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(…...

Stable Diffusion 提示词语法

1.提示词基础 1.提示词之间用英文逗号,分隔 2.提示词之间是可以换行的 3.权重默认为1,越靠前权重越高 4.数量控制在75个单位以内 2.提示词各种符号的意义 2.1 ()、[]、{}符号 权重值()小括号[]中括号{}大括号默认1111层()1.1[]0.9{}1.052层(()) 1.121.21[[]]0.920.81{{}}1.…...

Y20030004基于asp.net+Sql的环保网站的设计与实现(附源码 调试 文档)

环保网站的设计与实现 1.摘要要2. 系统功能3.功能结构图4.界面展示5.源码获取 1.摘要要 近几年国家对于环境管理是高度重视,尤其是对于环境生态的破坏与环境污染,已经严重影响到人类的生存和发展。为了使生态环境能够得到保护和改善,持续发展…...

OpenCV的简单练习

1、读取一张彩色图像并将其转换为灰度图。 import matplotlib.pyplot as pltimg plt.imread("./flower.png") # 灰度化 img_gray img[:,:,0]*0.299 img[:,:,1]*0.587 img[:,:,2]*0.114plt.subplot(121) plt.imshow(img) plt.subplot(122) plt.imshow(img_gray,c…...

VS2019中无法跳转定义_其中之一情况

我习惯了使用VS2019看stm的代码; 遇到的问题,在导入代码后,发现有些函数调用不能跳转到定义; 问题描述步骤 1、导入代码 2、跳转,无法跳转 1、中文路径 2、删除.vs文件 和网上查的都没办法解决 最后发现是VS不支持 …...

虚幻5描边轮廓材质

很多游戏内都有这种描边效果,挺实用也挺好看的,简单复刻一下 效果演示: Linethickness可以控制轮廓线条的粗细 这样连完,然后放到网格体细节的覆层材质上即可 可以自己更改粗细大小和颜色...

【C语言】多线程服务器

多线程服务器 多线程服务器步骤代码 多线程服务器 步骤 主线程创建子线程,用子线程和客户端通信。 步骤: 1.使用socket函数,获取一个socket文件描述符 2.使用setsockopt端口复用 3.使用bind函数允许客户端的哪些ip可以访问服务器 4.使用lis…...

跨平台轻量级RTSP技术设计和使用场景探讨

设计背景 跨平台内网超低延迟直播的创新引擎 为满足安防视频监控、教育培训、工业生产、医疗健康、智能物联网等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了跨平台(Windows|Linux(含x86_64|aarch64…...

分解质因数

题目描述 给定 n个正整数a,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数 n。 接下来 n行,每行包含一个正整数 a。 输出格式 对于每个正整数 aiai,按照从小到大的顺…...

wordpress建站--如何用Let‘s Encrypt给网站添加免费ssl证书,支持https访问

本文首发网站:https://www.click234.com 默认情况下我们的网站是http访问,为了增加访问安全性,我们需要添加ssl证书,支持采用https方式访问,今天我们来看下怎么创建免费的ssl证书--Lets Encrypt 使用 Certbot 自动化工…...

web实操7——ServletContext

概念 和服务器通信 功能 解释说明: mime:互联网中一种文件的类型,可以用servletContext对象来获取。 域对象:用来共享数据,里面有一些get,set,removeAttribute,只要搞清楚ServletContext对象的域的范围是什么 如何…...

Android中bindService和startService启动服务有何区别

Android中bindService和startService启动服务有何区别 bindService 和 startService 是 Android 中两种用于与 Service 交互的方式,它们的区别主要在于 生命周期管理 和 使用场景。以下是详细对比: 1. bindService方式 bindService 是一种绑定方式&am…...

Jupyter Notebook 切换虚拟环境

方法 切换到需要添加到Jupyter Notebook中的虚拟环境,执行: python -m ipykernel install --name Jupyter Notebook中显示的虚拟环境名称如果遇到 [Errno 13] Permission denied: /usr/local/share/jupyter类似的权限问题,可能是没有对应的…...

短波红外相机

短波红外相机搭载采用 SenSWIR 技术的 Sony 高灵敏度传感器,能捕获到400nm~1700nm范围的可见光-短波红外宽波段图像信息,该相机可替代传统的“可见光相机短波红外相机”双相机检测方案,降低系统成本、提高处理速度、扩大检测范围,…...

余弦相似度Cosine Sim

what 余弦相似度是一种用于度量向量相似性的metric。 c o s θ A . B ∣ A ∣ . ∣ B ∣ cos\theta \frac{A.B}{|A|.|B|} cosθ∣A∣.∣B∣A.B​ A.B:向量的内积|A|:向量的模长 c o s θ cos\theta cosθ:的范围$ [ -1 , 1 ] $ why 余弦…...

【从零开始的LeetCode-算法】1338. 数组大小减半

给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1: 输入:arr [3,3,3,3,5,5,5,2,2,7] 输出:2 解释:选择 {3,7…...

测试工程师八股文05|功能测试、业务测试

一、基础概念 1、软件测试分类 1️⃣按照软件产生的阶段划分 单元测试:针对程序源代码进行测试【开发自测】集成测试:针对模块之间功能交互进行测试系统测试:对整个系统(功能、非功能)进行全面测试验收测试&#xff…...

【电源专题】开关转换器使能(EN)和欠压锁定(UVLO)为什么需要回滞?

在文章:【电源专题】案例:芯片规格书使能定义高电平最小阈值1.4V,那真的是到1.4V时才开始输出?_芯片的电流阀值-CSDN博客中我们提到一般来说开关转换器的使能脚是有一个回滞的,比如下图所示的芯片规格书...

TS的类型守卫、类型约束实践

类型守卫 // 基础类型判断 const arr [30, 50] console.log(typeof arr) // object const set new Set(arr) console.log(typeof set) // object const map new Map() console.log(typeof map) // objectclass Customer {constructor() {}buy(method:string) {console.log(…...

Thread线程基础使用

多线程目的:其实就是希望“并行”执行多任务,提升效率。 单核多线程基于时间片轮询 并发而非并行 线程最大数等于cpu核心数为佳 namespace thinger.ThreadDemo {class Program{//主线程static void Main(string[] args){Console.WriteLine("这个…...

番外篇 | BGF-YOLO:引入双层路由注意力、广义特征金字塔网络和第四检测头,提高YOLOv8检测性能

前言:Hello大家好,我是小哥谈。本文提出了一种名为BGF-YOLO的新模型,通过引入双层路由注意力、广义特征金字塔网络和第四检测头,提高YOLOv8在脑肿瘤检测中的性能,采用多层特征融合与动态稀疏注意机制以减少特征冗余。 🌈 目录 🚀1.基础概念 🚀2.网络结构 �…...

15-从 TypeScript 到 ArkTS 的适配规则(5)

15-从 TypeScript 到 ArkTS 的适配规则(5) 不支持确定赋值断言 **规则:**arkts-no-definite-assignment 级别:警告 ArkTS不支持确定赋值断言,例如:let v!: T。改为在声明变量的同时为变量赋值。 TypeS…...

UniApp配置使用原子化tailwindcss

参考视频 创建项目 新建项目选择uniapp - vue版本这里我选择3 - 点击创建即可 创建完成后,如果是要编译到小程序的项目则可以先将项目运行到小程序打开了 初始化package.json 执行 npm init -y安装和配置 安装 npm i -D tailwindcss postcss autoprefixer # 安…...

魅族手机刷官方系统

从魅族官网下载固件 https://flyme.cn/firmware.html 找到自己的型号,里面有历史版本、最新版,按照需求下载。 下载的是update.zip,改名就不能升级了 方法1 直接点击下载的update.zip包就可以升级。 方法2 将文件移动到文件管理的根目录&a…...

【欧几里得算法以及扩展欧几里得算法】

欧几里得算法 假设有两个非负整数 a , b a,b a,b,并且 a , b a,b a,b都不等于0,那么 a , b a,b a,b的最大公约数等于其中较小的数和 a , b a,b a,b相除的余数的最大公约数。 用公式表达为 g c d ( a , b ) g c d ( b , a ( m o d b ) ) gcd(a,b)gcd(b,a\pmod{b})…...

CentOS7 Apache安装踩坑

Gnome桌面右键弹出终端。 [rootlocalhost ~]# yum repolist 已加载插件:fastestmirror, langpacks /var/run/yum.pid 已被锁定,PID 为 2611 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit... [root…...

c#基于tcp的打印机共享程序可以打印图片

c sharp 基于tcp共享图片打印程序: 基于c#的tcp打印服务程序https://gitee.com/paoxi/tcpprint代码已经开源 执行文件在下方 tcp打印发送端 庖犠/c sharp 基于tcp共享图片打印程序 - Gitee.comhttps://gitee.com/paoxi/tcpprint/releases/tag/0.9...

二分查找算法

目录 1.二分查找 2.在排序数组中查找元素的第一个和最后一个位置 2.1题目解析 2.2算法原理 2.3编写代码 3.x的平方根 3.1题目解析 3.2算法原理 3.3编写代码 4.搜索插入位置 4.1题目解析 4.2算法原理 4.3编写代码 5.山脉数组的峰顶索引 5.1题目解析 5.2算法原理 …...

【Python技术】同花顺wencai涨停分析基础上增加连板分析

周末,有读者加我, 说 之前的涨停分析 是否可以增加连板分析。 这个可以加上。 先看效果 这里附上完整代码: import streamlit as st import pywencai import pandas as pd from datetime import datetime, timedelta import plotly.graph_o…...