Dex-Net使用手册————GQCNN网络

news2024/11/28 6:46:31

 1. Dex-Net Package  GitHub - BerkeleyAutomation/dex-net

🎈dex-net Python 包用于打开、读取和编写 HDF5 数据库的 3D 对象模型、平行下颚抓取和掌握鲁棒性指标。

🎈HDF5数据库还可用于生成大量数据集,将点云和抓取的元组与二进制抓取鲁棒性标签相关联,以训练抓取质量卷积神经网络(GQ-CNN)来预测点云候选抓取的鲁棒性。  

🎈该软件包是Dexterity Network(Dex-Net)项目的一部分。

🐸Dex-Net Object Mesh Dataset v1.1 和 Dex-Net 2.0 HDF5 数据库可以从数据存储库下载。

🐸生成自定义数据集:script tools/generate_gqcnn_dataset.py

2.GQCNN Package  GitHub - BerkeleyAutomation/gqcnn

🎈gqcnn Python 包用于训练和分析 Grasp Quality Convolutional Neural Networks (GQ-CNN)。它是正在进行的Dexterity-Network(Dex-Net)项目的一部分

🐸安装和使用手册:Berkeley AUTOLAB’s GQCNN Package

 ——————————————————————————————————————————

Dexterity Network (Dex-Net) 是一个研究项目,包括代码、数据集和算法,用于生成合成点云数据集、机器人平行颚抓取和基于物理的抓取鲁棒性指标,用于数千个 3D 对象模型,以训练基于机器学习的方法来规划机器人抓取。 Dex-Net项目的更广泛目标是开发高度可靠的机器人抓取各种刚性物体,如工具,家居用品,包装商品和工业零件。

Dex-Net 1.0 专为在云中跨超过 10,000 个 3D 网格模型的数据集进行分布式稳健抓取分析而设计。【此代码已于 2017 年 2 月弃用】

Dex-Net 2.0 旨在生成训练数据集,以学习 Grasp 质量卷积神经网络 (GQ-CNN) 模型,该模型可预测候选平行下颌抓取点云对象的成功概率。 GQ-CNN可用于快速规划抓取,这些抓取可以举起和运输物理机器人的各种物体。

Dex-Net 2.0: Deep Learning to Plan Robust Grasps with Synthetic Point Clouds and Analytic Grasp Metrics  Dex-Net 2.0:深度学习,使用合成点云和分析抓取指标规划稳健的抓取

概述:为了减少深度学习稳健机器人抓取计划的数据收集时间,我们探索了从 6 万个点云、抓取和从 Dex-Net 7.3 的数千个 1D 模型生成的稳健分析抓取指标的合成数据集中进行训练。 我们使用生成的数据集 Dex-Net 0.2 来训练 Grasp 质量卷积神经网络 (GQ-CNN) 模型,该模型可快速预测深度图像中抓取成功的概率,其中抓取被指定为夹持器相对于 RGB-D 传感器的平面位置、角度和深度。 在ABB YuMi上进行的0,1多次试验实验比较了单个物体的抓取计划方法,结果表明,仅使用来自Dex-Net 000.2的合成数据训练的GQ-CNN可用于在0.0秒内计划抓取,八个具有对抗几何形状的已知对象的成功率为8%,并且比将点云注册到预先计算的对象数据集和索引抓取快93倍。 GQ-CNN也是十种新型家用物品数据集上性能最高的方法,在3个抓取中,误报率为零,被归类为稳健(29%精度),成功率比基于注册的方法高100.1倍。

GitHub - BerkeleyAutomation/gqcnn: Python module for GQ-CNN training and deployment with ROS integration.

Dex-Net 2.1 增加了 pybullet 的动态模拟,并将鲁棒抓取模型扩展到料箱拣选的顺序任务。

Dex-Net 3.0增加了对基于吸力的末端执行器的支持。

Dex-Net 3.0: Computing Robust Robot Suction Grasp Targets using a New Analytic Model and Deep Learning  Dex-Net 3.0:使用新的分析模型和深度学习计算强大的机器人吸力抓取目标

🎈基于抽吸的末端执行器广泛用于工业,并且通常优于平行钳口和多指夹具,因为它们能够通过单点接触提升物体。此功能简化了规划,并且通常使用手动编码的启发式方法(例如瞄准平面)来根据点云数据选择吸力抓取。在本文中,我们提出了一种顺应的吸力接触模型,该模型计算吸盘和目标物体之间的密封质量,并确定吸力抓手是否可以抵抗物体上的外部扳手(例如重力)。

🎈为了评估抓取,我们测量了对末端执行器和物体姿势、材料属性和外部扳手的扰动的鲁棒性。我们使用此模型生成 Dex-Net 3.0,一个包含 2 万个点云、吸力抓取和抓取鲁棒性标签的数据集,该数据集由 8,1 个 500D 对象模型计算,并在此数据集上训练 Grasp 质量卷积神经网络 (GQ-CNN),以对点云中的吸力抓取鲁棒性进行分类。我们在配备气动吸盘的ABB YuMi上进行3次物理试验,评估了最终的系统。当对象形状、姿势和质量属性已知时,模型在具有对抗几何(如急剧曲面)的对象数据集上实现了 375% 的精度。此外,在Dex-Net 99.3上训练的基于GQ-CNN的策略在基本和典型对象数据集上分别实现了0%和99%的精度。

Dex-Net 4.0 统一了多个抓手的奖励指标,以有效地训练“灵巧”抓取策略,从而决定哪种抓手最适合特定对象。

Learning Ambidextrous Robot Grasping Policies学习灵巧机器人抓取策略

通用拣选 (UP) 或可靠的机器人抓取堆中的各种新物体是一项重大挑战 用于电子商务订单履行、制造、检验和上门服务机器人。优化速率、可靠性、 由于传感、控制和接触物理场固有的不确定性,UP的范围很困难。本文探讨了 “灵巧”机器人抓取,其中使用两个或多个异质夹具。我们介绍灵巧网络 (Dex-Net) 4.0,对以前版本的Dex-Net的实质性扩展,可以学习一组给定的抓手的策略 通过使用物理和几何分析模型的域随机化对合成数据集进行训练。我们 在5万张合成深度图像上训练平行钳口和真空吸盘夹具的策略, 抓住,并从成堆的三维物体中产生奖励。在带有两个抓手的物理机器人上, Dex-Net 4.0 策略始终如一地清除多达 25 个新对象的箱子,可靠性大于 95%,速率 每小时超过 300 次平均拣选。

数据

  • GQ-CNN 训练数据集
  • 预先训练的 GQ-CNN 模型
  • 对象网格数据集 v1.1
  • HDF5 3D 对象数据库、YuMi 的平行钳口抓取和鲁棒性指标

法典

  • GQ-CNN Python 训练代码(文档))
  • Dex-Net Database Python API (文档))

GQ-CNN模型对生成数据集时使用的以下参数很敏感:

  1.         机器人抓手
  2.         深度摄像机
  3.         相机和工作区之间的距离。

因此,我们不能保证我们的预训练模型在其他物理设置上的性能。关于预训练的模型和示例策略的样本输入的更多信息,请参见Pre-trained Models and Sample Inputs.。


What are GQ-CNNs?

GQ-CNN是一种神经网络架构,它将深度图像和抓取作为输入,并输出在抬起,运输和摇晃物体时抓取成功握住物体的预测概率。

GQ-CNN 权重在合成点云、平行下颌抓取和从基于物理的模型生成的抓取指标数据集上进行训练,这些模型具有域随机化,可实现从模拟到真实的转移。有关更多信息,请参阅正在进行的Dexterity Network(Dex-Net)项目。


💚Prerequisites

Python

The gqcnn package has only been tested with Python 3.5, Python 3.6, and Python 3.7.

Ubuntu

The gqcnn package has only been tested with Ubuntu 12.04, Ubuntu 14.04 and Ubuntu 16.04.

Virtualenv

We highly recommend using a Python environment management system, in particular Virtualenv, with the Pip and ROS installations. Note: Several users have encountered problems with dependencies when using Conda.

🎈Pip Installation

The pip installation is intended for users who are only interested in
1) Training GQ-CNNs or
2) Grasp planning on saved RGBD images
, not interfacing with a physical robot.

If you have intentions of using GQ-CNNs for grasp planning on a physical robot, we suggest you install as a ROS package.

1. Clone the repository

$ git clone https://github.com/BerkeleyAutomation/gqcnn.git

2. Run pip installation

Change directories into the gqcnn repository and run the pip installation.

This will install gqcnn in your current virtual environment.

$ pip install .

🎈ROS Installation

Installation as a ROS package is intended for users who wish to use GQ-CNNs to plan grasps on a physical robot.

1. Clone the repository

Clone or download the project from Github.

$ cd <PATH_TO_YOUR_CATKIN_WORKSPACE>/src
$ git clone https://github.com/BerkeleyAutomation/gqcnn.git

2. Build the catkin package

Build the catkin package.

$ cd <PATH_TO_YOUR_CATKIN_WORKSPACE>
$ catkin_make

Then re-source devel/setup.bash for the package to be available through Python.


💚Overview

There are two main use cases of the gqcnn package:

1.在离线数据集中使用GQCNN模型,然后在RGBD图像上进行抓取规划
2.在RGBD图上使用预先训练的GQCNN模型

Prerequisites 先决条件

先下载示例模型和数据集

$ cd /path/to/your/gqcnn
$ ./scripts/downloads/download_example_data.sh
$ ./scripts/downloads/models/download_models.sh

🎈Running Python Scripts 运行python脚本

cd /path/to/your/gqcnn
python /path/to/script.py

💚Training

The gqcnn package can be used to train a Dex-Net 4.0 GQ-CNN model on a custom offline Dex-Net dataset.【软件包可用于在自定义离线模式上训练GQ-CNN模型数据集。】从头训练耗时,所以训练新网络最有效的方法是微调预训练的GQ-CNN模型的权重。Dex-Net 4.0 GQ-CNN model,已经在百万张图像上进行了训练。

若要微调 GQ-CNN ,则运行:

$ python tools/finetune.py <training_dataset_path> <pretrained_network_name> --config_filename <config_filename> --name <model_name>

The args are:

  1. training_dataset_path: Path to the training dataset.

  2. pretrained_network_name: Name of pre-trained GQ-CNN.

  3. config_filename: Name of the config file to use.

  4. model_name: Name for the model

训练GQ-CNN,选择不同的gripper,运行不同的代码

To train a GQ-CNN for a parallel jaw gripper on a sample dataset, run the fine-tuning script:

$ python tools/finetune.py data/training/example_pj/ GQCNN-4.0-PJ --config_filename cfg/finetune_example_pj.yaml --name gqcnn_example_pj

To train a GQ-CNN for a suction gripper run:

$ python tools/finetune.py data/training/example_suction/ GQCNN-4.0-SUCTION --config_filename cfg/finetune_example_suction.yaml --name gqcnn_example_suction

🎈Visualizing Training 训练可视化

gqcnn模型包含对通过Tensorboard可视化训练进度的支持。当训练脚本运行时,Tensorboard会自动启动,可以通过在网络浏览器中导航到localhost:6006来访问。

在那里你会发现类似下面的内容:

其中显示有用的训练统计数据,如验证误差、最小批量损失和学习率

Tensorflow摘要存储在model/<model_name>/tensorboard_summaries/


💚Analysis

检查训练和验证损失和分类的错误,有助于确保网络训练成功。想分析经过训练的GQ -CNN的性能,请运行:

$ python tools/analyze_gqcnn_performance.py <model_name>

The args are:

  1. model_name: Name of a trained model.

To analyze the networks we just trained, run:

$ python tools/analyze_gqcnn_performance.py gqcnn_example_pj
$ python tools/analyze_gqcnn_performance.py gqcnn_example_suction

💚Grasp Planning

抓取计划包括在给定的点云中寻找具有最高预测成功概率的抓取方式。在gqcnn软件包中,这被实现为通过最大化GQ-CNN的输出将RGBD图像映射到6-DOF抓取姿势的策略。最大化可以用迭代方法实现,如交叉熵法(CEM),它用于Dex-Net 2.0、Dex-Net 2.1、Dex-Net 3.0、Dex-Net 4.0,或者更快的全卷积网络,这在FC-GQ-CNN中使用。

我们在examples/中提供了策略的例子。特别是,我们提供了一个Python策略示例和一个ROS策略示例。注意,ROS策略需要安装ROS gqcnn,可以在这里找到。我们强烈建议使用Python策略,除非你需要使用ROS对物理机器人进行抓取规划。

Sample Inputs

Sample inputs from our experimental setup are provided with the repo:

  1. data/examples/clutter/phoxi/dex-net_4.0: Set of example images from a PhotoNeo PhoXi S containing objects used in Dex-Net 4.0 experiments arranged in heaps.

  2. data/examples/clutter/phoxi/fcgqcnn: Set of example images from a PhotoNeo PhoXi S containing objects in FC-GQ-CNN experiments arranged in heaps.

  3. data/examples/single_object/primesense/: Set of example images from a Primesense Carmine containing objects used in Dex-Net 2.0 experiments in singulation.

  4. data/examples/clutter/primesense/: Set of example images from a Primesense Carmine containing objects used in Dex-Net 2.1 experiments arranged in heaps.

请注意,在尝试这些样本输入时,你必须确保你所使用的GQ-CNN模型是为相应的摄像机和输入类型(单一化/杂乱化)训练的。


Pre-trained Models

Dex-Net 4.0的预训练的平行颚和吸力模型会随着gqcnn包的安装自动下载。如果你确实希望尝试旧的结果的模型(或我们的实验模型FC-GQ-CNN),所有预训练的模型都可以用下载:

$ ./scripts/downloads/models/download_models.sh

The models are:

  1. GQCNN-2.0: For Dex-Net 2.0, trained on images of objects in singulation with parameters for a Primesense Carmine.

  2. GQCNN-2.1: For Dex-Net 2.1, a Dex-Net 2.0 model fine-tuned on images of objects in clutter with parameters for a Primesense Carmine.

  3. GQCNN-3.0: For Dex-Net 3.0, trained on images of objects in clutter with parameters for a Primesense Carmine.

  4. GQCNN-4.0-PJ: For Dex-Net 4.0, trained on images of objects in clutter with parameters for a PhotoNeo PhoXi S.

  5. GQCNN-4.0-SUCTION: For Dex-Net 4.0, trained on images of objects in clutter with parameters for a PhotoNeo PhoXi S.

  6. FC-GQCNN-4.0-PJ: For FC-GQ-CNN, trained on images of objects in clutter with parameters for a PhotoNeo PhoXi S.

  7. FC-GQCNN-4.0-SUCTION: For FC-GQ-CNN, trained on images of objects in clutter with parameters for a PhotoNeo PhoXi S.

请注意,GQ-CNN模型对数据集生成过程中使用的参数很敏感,特别是:1)抓手的几何形状,我们所有的预训练模型都使用ABB YuMi平行颚式抓手;2)相机的内在结构,我们所有的预训练模型都使用Primesense Carmine或PhotoNeo Phoxi S(关于哪一个见上文);3)渲染时相机和工作区之间的距离,我们所有的预训练模型都是50-70厘米。因此,我们不能保证我们的预训练模型在其他物理设置上的性能。我们正在积极研究如何生成更强大的数据集,可以跨机器人、相机和视角进行通用化!


Python Policy

The example Python policy can be queried on saved images using:

$ python examples/policy.py <model_name> --depth_image <depth_image_filename> --segmask <segmask_filename> --camera_intr <camera_intr_filename>

The args are:

  1. model_name: Name of the GQ-CNN model to use.

  2. depth_image_filename: Path to a depth image (float array in .npy format).

  3. segmask_filename: Path to an object segmentation mask (binary image in .png format).

  4. camera_intr_filename: Path to a camera intrinsics file (.intr file generated with BerkeleyAutomation’s perception package).

To evaluate the pre-trained Dex-Net 4.0 parallel jaw network on sample images of objects in heaps run:

$ python examples/policy.py GQCNN-4.0-PJ --depth_image data/examples/clutter/phoxi/dex-net_4.0/depth_0.npy --segmask data/examples/clutter/phoxi/dex-net_4.0/segmask_0.png --camera_intr data/calib/phoxi/phoxi.intr

To evaluate the pre-trained Dex-Net 4.0 suction network on sample images of objects in heaps run:

$ python examples/policy.py GQCNN-4.0-SUCTION --depth_image data/examples/clutter/phoxi/dex-net_4.0/depth_0.npy --segmask data/examples/clutter/phoxi/dex-net_4.0/segmask_0.png --camera_intr data/calib/phoxi/phoxi.intr

FC-GQ-CNN Policy

FC-GQ CNN题目:基于全卷积深度网络学习机器人抓取策略的策略数据集合成

快速可靠的机器人抓取各种物体的应用范围从仓库自动化到家庭整理。一种有前途的方法是从点云、抓取和奖励的综合训练数据集中学习深度策略,这些数据集使用具有域随机化的随机噪声模型的分析模型进行采样。

探讨了合成训练样本的分布如何影响学习机器人策略的速率和可靠性。提出了一种合成数据抽样分布,它将从政策行动集中抽样的抓取与来自具有完整状态知识的强大抓取主管的指导样本相结合。我们用它来训练基于完全卷积网络架构的机器人策略,该架构以 4-DOF(3D 位置和平面方向)评估数百万个抓取候选者。 

  • 我们最新的研究成果FC-GQ-CNN,将新颖的全卷积网络结构与我们先前在GQ-CNN方面的工作结合起来,以提高策略率和可靠性。
  • FC-GQ-CNN不是依靠交叉熵法(CEM)在策略动作空间中反复搜索最佳抓取方式,而是密集而有效地并行评估整个动作空间。
  • 因此,它能够在0.625秒内考虑5000次以上的抓取,从而使MPPH(平均每小时抓取次数)达到296次,而之前Dex-Net 4.0的MPPH是250次。
  • 论文链接:on_policy_dataset_synth_fcgqcnn.pdf

You can download the pre-trained FC-GQ-CNN parallel jaw and suction models along with the other pre-trained models:

$ ./scripts/downloads/models/download_models.sh

Then run the Python policy with the --fully_conv flag.

To evaluate the pre-trained FC-GQ-CNN parallel jaw network on sample images of objects in heaps run:

$ python examples/policy.py FC-GQCNN-4.0-PJ --fully_conv --depth_image data/examples/clutter/phoxi/fcgqcnn/depth_0.npy --segmask data/examples/clutter/phoxi/fcgqcnn/segmask_0.png --camera_intr data/calib/phoxi/phoxi.intr

To evaluate the pre-trained FC-GQ-CNN suction network on sample images of objects in heaps run:

$ python examples/policy.py FC-GQCNN-4.0-SUCTION --fully_conv --depth_image data/examples/clutter/phoxi/fcgqcnn/depth_0.npy --segmask data/examples/clutter/phoxi/fcgqcnn/segmask_0.png --camera_intr data/calib/phoxi/phoxi.intr

💚Replicating Results

有两种方法来复制结果:

1.使用预先训练过的模型: 下载一个预先训练好的GQ-CNN模型,并运行一个例子政策。

2.从头开始训练: 下载原始数据集,训练一个GQ-CN模型,并使用你刚刚训练的模型运行一个例子策略。

我们鼓励使用方法1。因为2计算昂贵,原始数据集太大。


方法1:Using a Pre-trained Model

First download the pre-trained models.

$ ./scripts/downloads/models/download_models.sh

Dex-Net 2.0

Evaluate the pre-trained GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_2.0_examples.sh

Dex-Net 2.1

Evaluate the pre-trained GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_2.1_examples.sh

Dex-Net 3.0

Evaluate the pre-trained GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_3.0_examples.sh

Dex-Net 4.0

To evaluate the pre-trained parallel jaw GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_4.0_pj_examples.sh

To evaluate the pre-trained suction GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_4.0_suction_examples.sh

FC-GQ-CNN

To evaluate the pre-trained parallel jaw FC-GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_4.0_fc_pj_examples.sh

To evaluate the pre-trained suction FC-GQ-CNN model.

$ ./scripts/policies/run_all_dex-net_4.0_fc_suction_examples.sh

方法2:Training from Scratch 从0开始训练

Dex-Net 2.0

First download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_2.0.sh

Then train a GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_2.0.sh

Finally, evaluate the trained GQ-CNN.

$ ./scripts/policies/run_all_dex-net_2.0_examples.sh

Dex-Net 2.1

First download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_2.1.sh

Then train a GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_2.1.sh

Finally, evaluate the trained GQ-CNN.

$ ./scripts/policies/run_all_dex-net_2.1_examples.sh

Dex-Net 3.0

First download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_3.0.sh

Then train a GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_3.0.sh

Finally, evaluate the trained GQ-CNN.

$ ./scripts/policies/run_all_dex-net_3.0_examples.sh

Dex-Net 4.0

To replicate the Dex-Net 4.0 parallel jaw results, first download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_4.0_pj.sh

Then train a GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_4.0_pj.sh

Finally, evaluate the trained GQ-CNN.

$ ./scripts/policies/run_all_dex-net_4.0_pj_examples.sh

To replicate the Dex-Net 4.0 suction results, first download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_4.0_suction.sh

Then train a GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_4.0_suction.sh

Finally, evaluate the trained GQ-CNN.

$ ./scripts/policies/run_all_dex-net_4.0_suction_examples.sh

FC-GQ-CNN

To replicate the FC-GQ-CNN parallel jaw results, first download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_4.0_fc_pj.sh

Then train a FC-GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_4.0_fc_pj.sh

Finally, evaluate the trained FC-GQ-CNN.

$ ./scripts/policies/run_all_dex-net_4.0_fc_pj_examples.sh

To replicate the FC-GQ-CNN suction results, first download the appropriate dataset.

$ ./scripts/downloads/datasets/download_dex-net_4.0_fc_suction.sh

Then train a FC-GQ-CNN from scratch.

$ ./scripts/training/train_dex-net_4.0_fc_suction.sh

Finally, evaluate the trained FC-GQ-CNN.

$ ./scripts/policies/run_all_dex-net_4.0_fc_suction_examples.sh

💚Benchmarks

Dex-Net 2.0

Below are the highest classification accuracies achieved on the Dex-Net 2.0 dataset on a randomized 80-20 train-validation split using various splitting rules:

The current leader is a ConvNet submitted by nomagic.ai.

GQ is our best GQ-CNN for Dex-Net 2.0.


 API Documentation

GQ-CNN — GQCNN 1.1.0 documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/470940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】【进阶篇】12、搭建Django开发环境

目录 搭建Django开发环境1. 安装Python解释器2. 安装MySQL数据库3. 安装Python包管理器4. 安装 Pycharm IDE 搭建Django开发环境 上一章我们介绍了 Django 框架的重要组件&#xff0c;常言道“工欲善其事&#xff0c;必先利其器”&#xff0c;在正式创建 Django 项目之前&…

AI绘画——Lora模型Niji-Expressive V2 launch(灵动优雅,张力尽显)

目录 Niji-Expressive V2 launch!! 灵动优雅&#xff0c;张力尽显 Vivid and elegant, full of tension 模型演示&#xff08;多图预警&#xff09; Niji-Expressive V2 launch!! 灵动优雅&#xff0c;张力尽显 本次升级泛用性&#xff0c;能在更多模型和采样方式上适用 …

《一文带你读懂:云原生时代业务监控》

点击上方蓝字关注我们&#xff01; 对业务来说&#xff0c;完备的应用健康性和数据指标的监控非常重要&#xff0c;通过采集准确的监控指标、配置合理的告警机制&#xff0c;我们能够提前或者尽早发现问题&#xff0c;并做出响应、解决问题&#xff0c;进而保证产品的稳定性&am…

vue性能优化之虚拟列表滚动

一、前言 前端的性能瓶颈那就是页面的卡顿&#xff0c;当然这种页面的卡顿包含了多种原因。 例如HTTP请求过多导致数据加载变慢&#xff0c;下载的静态文件非常大导致页面加载时间很长&#xff0c;js中一些算法响应的时间过长等。很多前端工程师都花费很多的精力在dom渲染上来…

Java 入门 - 语法基础

hello world public class Hello {public static void main(String[] args) {System.out.println("hello world");} } 复制代码 public: 是关键字&#xff1b;表示公开的class: 是关键字&#xff1b;用来定义类Hello: 是类名&#xff1b;大小写敏感&#xff1b;命名…

BFS算法专题

BFS算法专题 框架篇LeetCode 111. 二叉树的最小深度解题思路代码实现 LeetCode 752. 打开转盘锁解题思路代码实现 LeetCode 773. 滑动谜题解题思路代码实现 总结 不要纠结&#xff0c;干就完事了&#xff0c;熟练度很重要&#xff01;&#xff01;&#xff01;多练习&#xff0…

Vivado约束添加方法:一文全面解析IO和时序约束

FPGA开发离不开IO约束和时序约束&#xff0c;IO约束用于确定输入/输出端口的物理端口和电气特性&#xff0c;与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性&#xff0c;以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置约束的方法。 …

mysql 如何避免索引失效

案例演示 建表及初始化数据 CREATE TABLE staffs (id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(24) NOT NULL DEFAULT ,age INT NOT NULL DEFAULT 0,pos VARCHAR(20) NOT NULL DEFAULT ,#职位add_time TIMESTAMP NOT NULL DEFAULT CURREN…

二维码在设备点维一体化管理中的应用

随着科技发展&#xff0c;设备点维一体化管理体系应运而生&#xff0c;该管理体系的出现让设备维护保养变得更加高效精细化。 设备点维一体化管理体系以设备点检和维护保养为基础&#xff0c;通过日常、专业及精密点检&#xff0c;对点检测得的数据和设备给油脂保养情况进行统…

一个开源、免费在线数据建模、元数据管理平台,简单易用

一、开源项目简介 ERD Online 是一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能&#xff0c;辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 二、开源协议 …

全国各省份影像下载地址(11级别)

安徽省https://pan.baidu.com/s/1fMuWhVZFvSH1UlCGU1bPpA?pwdeasy澳门特别行政区https://pan.baidu.com/s/1aU2D4o2bfeHTJTb6AkUtVA?pwdeasy北京市https://pan.baidu.com/s/1eaNzAWm1pUx_rjhD_wHHhA?pwdeasy福建省百度网盘 请输入提取码甘肃省https://pan.baidu.com/s/1mAqf…

【Tools系列】IDA远程调试Linux文件

Date: 2023.4.28 文章目录 1、工具安装2、IDA+linux_server参考1、工具安装 IDA Pro 7.2 2、IDA+linux_server (1)进入到IDA的安装目录,找到文件夹/dbgsrv,其中有两个文件linux_server和linux_server64,分别为32位的服务端和64位的服务端,可根据调试目标进行选择。并将…

RocketMQ第二节(安装和模块详解)

目录 1&#xff1a;RocketMQ安装 1.1&#xff1a;下载安装包解压 1.2&#xff1a;修改运行配置 1.3&#xff1a;运行RocketMQ 1.3.1&#xff1a;启动NameServer 1.3.2&#xff1a;启动Broker 1.4&#xff1a;消息收发 1.5&#xff1a;服务关闭 2&#xff1a;RocketMQ模…

八部门联合推动IPv6创新发展 知道创宇助力IPv6快速安全改造

近日&#xff0c;工业和信息化部、中央网信办、国家发展改革委、教育部、交通运输部、人民银行、国务院国资委、国家能源局等八部门联合印发《关于推进IPv6技术演进和应用创新发展的实施意见》&#xff08;以下简称“《实施意见》”&#xff09;&#xff0c;提出到2025年底&…

换个花样玩C++(3)const_cast不是一行代码这么简单

我先不说const_cast的事情,还是回到我们之前遇到的一个问题,先看代码 示例1 #include <iostream> int main() {const int a = 1;int* p = (int*)(&a);*p = 100; std::cout << a; } 这段代码里,本来想通过指针p里修改a的值,vs调试看下来a的值在*p=100;这…

Elasticsearch --- 简介、安装

一、简介 1.1、elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 1.2、ELK技术栈 elas…

Linux安装helm

前言 运行环境&#xff1a;CentOS7.9 官方参考文档&#xff1a;官方文档 文章末尾附有一键安装脚本 下载安装包 github下载对应版本的安装包&#xff0c;下载地址 进入对应版本的下载页面&#xff0c;这里以v3.11.3为例 选择对应系统的安装包&#xff0c;这里以linux为例 …

WhatsApp CRM:通过 CRM WhatsApp 集成向客户发送消息

WhatsApp CRM&#xff1a;通过 CRM WhatsApp 集成向客户发送消息 你是否在寻找一个支持WhatsApp整合的CRM&#xff1f;或者&#xff0c;你想将WhatsApp与你当前的CRM整合&#xff1f;这篇文章将回答你所有的问题。我们将首先了解什么是WhatsApp CRM&#xff0c;以及你需要知道…

【Python】丘比特之箭,一箭穿心,快去发给你心仪的人叭~

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个人简…

20230428 -栈与队列1 | 232. 用栈实现队列、225. 用队列实现栈、Queue和Deque异同介绍

1、232. 用栈实现队列 class MyQueue {//整体实现思路&#xff1a;队列是先进先出&#xff0c;栈是先进后出。使用两个栈&#xff0c;一个栈A负责进&#xff0c;一个栈B负责接收栈A数据&#xff0c;然后出出&#xff0c;队列&#xff1a;A->B>C 栈A&#xff1a;A->B&g…