All in One | X-AnyLabeling v2.0.0 全自动标注工具强势登场,全新功能亮相,欢迎体验升级_xanylabelling下载-程序员宅基地

技术标签: 计算机视觉  人工智能  分享系列  

导读

大家好!今天,很荣幸地为各位小伙伴介绍全新的 X-AnyLabeling v2.0.0 版本。本次更新带来了许多实用好玩的新功能,让我们一同了解下吧!
简单介绍一下今天的主角——X-AnyLabeling:这是一款开箱即用的标注工具,不仅极大改善了传统的标注流程,同时无缝集成了多种领先的深度学习算法,而无需繁琐的配置和编写复杂的后端代码。X-AnyLabeling从设计之初就定位于实际应用,旨在为开发和标注人员提供工业级、功能丰富的一站式解决方案,以构建完整的数据闭环。此外,为了最大程度地降低迁移使用成本,该工具在许多操作交互上与主流标注工具(如LabelImgLabelmeroLabelImgAnylabeling以及CVAT等)尽可能保持对齐,最大限度提升用户的标注效率和使用体验!

项目链接:https://github.com/CVHub520/X-AnyLabeling/tree/main

废话不多说,让我们直接进入主题,详细介绍下 X-AnyLabeling 的亮点功能以及整体架构分析。

亮点功能

支持图像和视频导入功能

除了支持图像级的标注功能外,X-AnyLabeling还引入了对视频的全面支持,实现了一键解析和自动标注的便捷功能!为了更好地满足用户对视频文件标注的需求,我们在工具中集成了经典的ByteTrack和最新的OC-Sort(CVPR 2023)等先进的跟踪算法。此外,工具还支持导出符合 MOT 格式的 *.csv 标注文件,为用户提供更灵活的数据输出选项。无论是处理图像还是视频,X-AnyLabeling致力于提供全面而高效的标注解决方案,以满足不同场景下的标注需求。

支持一键导出功能

X-AnyLabeling 工具中还提供了一键导出的便捷功能,支持多种标准格式,包括COCO-JSONVOC-XMLYOLOv5-TXTDOTA-TXT以及MOT-CSV等。因此,无论您是与其它工具协同工作,还是应用到不同的深度学习框架中进行训练,X-AnyLabeling 都旨在提供广泛的输出选项,确保用户能够灵活地集成标注结果到其工作流程中。这一功能的引入旨在最大程度地方便用户,为标注后的数据提供多样性的应用和导出选项,形式高效闭环。

此外,大家还可以通过 tools/label_converter.py 支持更多格式的转换。通过上述转换,我们可以很轻松地将图片格式的掩码转换成 custom 格式导入到标注工具进行修正后再直接导出 YOLO 系列或其它框架所需的多边形标签格式进行快速训练:

custom  YOLO  mask

如下图展示了最终训练好的效果:

GT vs. Prediction

支持多硬件环境和跨平台应用

X-AnyLabeling 是一款全面的标注工具,支持在不同硬件环境下进行标注。除了常规的 CPU 推理外,还引入了 GPU 的推理支持,充分利用显卡强大性能,提升标注速度,同时为用户在处理大规模数据时提供更灵活的选择。

此外,该工具具备多平台兼容性,能够在 WindowsLinuxMacOS 等不同操作系统环境下无缝运行,确保用户在各种工作环境中轻松使用,无需担心操作系统的限制。无论是在个人笔记本、台式机,还是专业工作站上使用,X-AnyLabeling 都为用户提供跨平台的便捷性和灵活性,成为一个适用于各种场景的全能标注解决方案。

不仅如此,X-AnyLabeling 还提供了便捷的编译脚本,赋予用户根据其具体需求自行编译系统的能力,使用户能够随时随地轻松地分发应用,为其提供更加灵活的定制和部署体验,进一步简化工具的安装过程。

支持单帧和批量预测

X-AnyLabeling 中提供了灵活的标注方式,支持单帧预测和一键处理所有图像。用户可以选择逐帧标注,以更加精细地处理每一张图像,也可以通过一键处理所有图像来快速完成整个数据集的标注。这一功能的引入旨在满足用户在不同项目中的不同需求,为标注过程提供更大的灵活性和效率。无论是处理个别图像还是批量数据集,X-AnyLabeling 都致力于为用户提供便捷而高效的标注体验,使标注工作更加流畅和符合用户个性化的工作流程。

支持多种标注模式

为最大限度满足用户的各式需求,X-AnyLabeling 中提供了多样化的图像标注功能,包括多边形、矩形、旋转框、圆形、线条、关键点等基本标注形状。此外,工具还支持文本检测和识别,使用户能够方便地标注图像中的文字信息。更进一步,X-AnyLabeling还引入了 KIE(Key Information Extraction)标注,帮助用户标注并提取关键信息,以满足更复杂场景下的标注需求。

这一全面而灵活的图像标注功能集合,使用户能够轻松地适应不同任务和项目的标注要求,为各种场景提供了高效而全面的解决方案。X-AnyLabeling 致力于为用户提供最优秀的标注工具,以满足不断演变的标注需求。

Tip: 旋转框还支持实时显示旋转预估角度哦!

支持多种SOTA深度学习算法

更进一步地,X-AnyLabeling 中内置了多种先进的深度学习算法,包括但不仅限于经典的目标检测算法如 YOLO 系列以及最热门的 SAM 系列等算法,目前仍在不断扩充中。这意味着用户可以根据不同的任务需求选择并应用最适合的AI算法,以实现对图像和视频的高效、准确的标注。

不仅如此,X-AnyLabeling 还支持导入用户自定义的模型,这一特性使其真正成为一个具备广泛适用性和高度可定制性的标注工具,满足用户在深度学习领域的不同需求,关于具体的内置算法,我们将留到下一小节详细讲解。

提供详细的帮助文档和完善的社区支持

为了确保用户能够充分利用 X-AnyLabeling 的功能,提供了全面而详细的帮助文档。这些文档包含详细的使用说明、标注步骤、功能解释以及常见问题解答,旨在为用户提供清晰、易懂的指导,使其能够顺利地使用工具完成标注任务。

除此之外,仍积极维护和支持开发者社区,致力于建立一个互助互学的平台。在这个社区中,用户可以分享经验、提出问题、交流想法,得到来自开发人员的支持和解答(初步估计,目前X-AnyLabeling的bug修复率以及功能支持率高达95%+,基本做到有问必答,有bug必解!)。通过建立积极的开发者社区,小编一直希望能为用户提供更加全面、实时的支持,以确保大家在使用 X-AnyLabeling 时能够获得最佳的体验和帮助,同时也欢迎大家积极提PR。

SOTA 算法库

详情可参考[模型列表] (https://github.com/CVHub520/X-AnyLabeling/blob/main/docs/models_list.md),其中所有模型权重文件均提供百度网盘和github链接两种方式,任君选择!

Visual-Language LLM

作为 v2.0.0 版本的主打功能,X-AnyLabeling 正式实现了从闭集到开集的重大突破。首次推出的功能基于 Grounding-DINOGrounding-SAM 等模型。其中,Grounding-DINO 是 IDEA 最新开源的零样本目标检测模型,通过任意文本驱动,能够根据用户提供的文字描述来检测图像中指定的目标。

以检测大熊猫为例,检测结果显示模型几乎完美地定位了图像中的每个目标(panda),当然,结果也受到用户给定的文本提示词(prompt)的影响,例如将提示词从 pandas 更改为 panda 可能导致检测结果的变化。

为了实现真正的全自动标注,推荐大家体验最新部署的 Grounding-SAM。通过结合 X-AnyLabeling 工具中独家提供的一键运行组件和导出功能设置,用户可以高效地进行零样本检测和分割,轻松获取适用于各大主流训练框架的标签文件。

此外,尽管对于一些非通用目标定义仍然存在一些局限性,但通过亲自上手体验,可以更好地理解和掌握系统的运作方式。X-AnyLabeling 的持续优化和创新为用户提供了更广泛、更灵活的标注解决方案。

Image Captioning

图像字幕生成是一项融合了计算机视觉(CV)和自然语言处理(NLP)的复杂任务,其目标是使计算机能够以自然语言自动生成对图像内容的详尽描述。具体而言,系统接收一张图像作为输入,通过 RAM 模型的强势植入,实现了自动生成生动而详实的文本描述。该描述旨在生动展现图像中的主要场景、对象及它们之间的关系,从而帮助人们更深入理解图像。

Recognize Anything, RAM 是专用于图像标记的识别一切模型,与 SAM 类似,作为基础模型,它具备卓越的识别能力,在准确性和识别种类方面均超越了 BLIP 等当前领先的模型。最新版本的 X-AnyLabeling 引入了 RAM 模型,并成功集成了该项图像字幕生成功能。

除了图像级别的描述之外,X-AnyLabeling 还引入了Object-level的图像描述功能,从而大幅丰富了系统的功能。这意味着系统不仅能够在整体上描述图像,还能够深入到图像中的各个对象层面,为用户提供更为细致和全面的信息。

Multi-Label Classification

为满足广大粉丝的需求,X-AnyLabeling v2 版本引入了全新的多标签属性标注功能。首次推出的功能包括基于百度飞浆开源的 PULC 中的车辆属性(Vehicle Attribute)和行人属性(Person Attribute)模型。整体的用户界面(UI)设计以及标注范式遵循 CVAT 开源工具箱的标准,为用户提供更加一致和友好的体验。现在,您可以尽情体验这一全新的标注功能!

Object Detection

X-AnyLabeling 目前提供基于Horizontal Bounding Box,HBB即水平目标框(如yolov5/yolov6/yolov7/yolov8/yolox/yolo_nas/rtdeter/damo_yolo/gold_yolo等YOLO全系列产品)以及基于Oriented Bounding Box,OBB即有向目标框(如DOTAv1.0/1.5/2.0以及VisDrone数据集训练的yolov5obb)的检测模型。

当然,你也可以替换为自定义模型。此外,为了提升小目标检出能力,X-AnyLabeling 中还集成了 SAHI 工具,支持切片推理,一键提升小目标检测性能:

不仅如此,Classify-by-detection 同样也提供,支持对检测后的结果进行二次分类,提供更细粒度的识别结果!例如这里可以将原本是 bird 的类别进一步更正为 chickadee,即山雀:

Multi-Object-Tracking

目前,X-AnyLabeling 已经内置了两种先进的多目标跟踪(MOT)算法,分别是经典的 ByteTrack 和最新的 OC-Sort(CVPR 2023)。默认情况下,检测器使用 yolov5,当然,用户也可以根据个人偏好将其设置为其他先进的检测和跟踪模型。

Keypoint Detection

关键点检测部分主要包括人脸关键点回归(Facial Landmark Detection)和全身人体姿态估计(Pose Estimation)两个关键领域。在这方面,FLD 的一期规划已经植入了美团的 YOLOv6lite-face 模型。

此外,姿态估计方面当前适配了面向产业界应用的 YOLOv8-Pose 模型和高精度的 DW-Pose 两阶段检测模型:

Lane Detection

基于Line模式,X-AnyLabeling 中集成了 CLRNet-Tusimple (CVPR 2022) 模型供大家快速体验:

Optical Character Recognition

OCR(光学字符识别)是一种通过使用机器学习和模式识别等方法自动识别图像中的文字并提取为可编辑的文本,方便后续处理、搜索和编辑。文本标签是许多标注项目中的一项常见任务,但遗憾的是在 LabelmeLabelImg 等工具中仍然没有得到很好的支持,X-AnyLabeling 中完美支持了这一项新功能。考虑到效率问题,目前工具内提供了基于 PaddlePaddle 最新开源的 PP-OCRv4 轻量化模型,支持中英文、多语种文本:

  1. 图像文本标签:用户可以切换到编辑模式并更新图像的文本——可以是图像名称或图像描述。
  2. 文本检测标签:当用户创建新对象并切换到编辑模式时,可以更新对象的文本。
  3. 文本分组:想象一下,当使用 KIE(键信息提取)时,需要将文本分组到不同的字段中,包含标题和值。在这种情况下,你可以使用文本分组功能。当创建一个新对象时,我们同样可以通过选择它们并按G将其与其他对象组合在一起。分组的对象将用相同的颜色标记。当然,也可以按快捷键U取消组合。

注:标注的文本和分组信息将与其他标注保存在同一个 JSON 文件中。文本将保存在text对象的字段中,组信息将保存在字段中group_id

Instance Segmentation

目前 X-AnyLabeling 工具中提供的实例分割模型主要有两种范式,一种是常规的分割模型,如yolov5-segyolov8-seg

另外一种是基于Segment-Anything范式,如SAM/Mobile-SAM/HQ-SAM/Efficientvit-SAM等:

  • Segment Anything Model(SAM)是 Facebook Research 近来开源的一种新的图像分割任务、模型,可以从输入提示(如点或框)生成高质量的对象掩模,并可用于生成图像中所有对象的掩模;
  • Mobile-SAM 通过解耦蒸馏方案可同步获取到轻量级的 SAM 编码器和解码器,有效提升了推理性能;
  • HQ-SAM 是第一个通过对原始 SAM 引入可忽略开销而实现高质量零样本分割的模型,发表于 NeurIPS 2023;
  • Efficientvit-SAM 则是由 MIT 韩松团队发表于 ICCV 2023 上的最新轻量化网络架构 Efficientvit 扩展而成的 SAM-like 模型,同时兼顾精度和速度!

更进一步地,针对医学图像场景,X-AnyLabeling中同样提供了多种基于 SAM 微调的高精度模型,包括:

  • SAM-Med2D: 通用医疗图像分割一切模型;
  • LVM-Med ISIC SAM:皮肤病灶分割一切模型;
  • LVM-Med BUID SAM:超声乳腺癌分割一切模型;
  • LVM-Med Kvasir SAM:结直肠息肉分割一切模型;

最后,工具内还内置了 yolov5-SAMYOLOv8-EfficientvitSAM 模型,可以为原始的分割模型提供更加精细化的分割结果!

推理架构

X-AnyLabeling 中的模型推理架构如下图所示:

其中,LabelingWidget是推理 SAM 系列模型推理功能所需的核心部件。绘图区域是由Canvas类处理,而AutoLabelingWidget则作为自动标记功能和ModelManager的主要部件用于管理和运行 AI 模型。

优化点:

  1. 因为Encoder的计算是需要时间的,所以我们可以把结果缓存起来,也可以对Encoder在以后的图片上做预计算。这将减少用户等待编码器运行的时间。
  2. 对于缓存,添加了一个 LRU 缓存来保存编码器的结果。图像保存在缓存中,键是标签路径。当缓存中存在图像嵌入时,不会再次运行编码器,这样可以节省很多时间。缓存大小默认为 10 张图像。
  3. 对于预计算,创建一个线程来为下一个图像运行编码器。当加载新图像时,它将和下一张图像一起发送到工作线程进行编码器计算。之后,image embedding会缓存到上面的LRU缓存中。如果图像已经在缓存中,工作线程将跳过它。

SAM 模型使用步骤

  1. 选择左侧的Brain按钮以激活自动标记。
  2. 从下拉菜单Model中选择Segment Anything Models类型的模型。模型精度和速度因模型而异。其中,Segment Anything Model (ViT-B)是最快的但精度不高。Segment Anything Model (ViT-H)是最慢和最准确的。Quant表示量化过的模型。
  3. 使用自动分割标记工具标记对象。
  • +Point:添加一个属于对象的点。
  • -Point:移除一个你想从对象中排除的点。
  • +Rect:绘制一个包含对象的矩形。Segment Anything 将自动分割对象。
  • 清除:清除所有自动分段标记。
  • 完成对象(f):当完成当前标记后,我们可以及时按下快捷键f,输入标签名称并保存对象。

注意事项:

  • 由于 SAM 部署时采用了编解码分离的范式并应用了 LRU 机制,因此第一次进行推理时后天会缓存多张(可自行设置)图片的 image_embedding,具体见下述"集成方式"章节。
  • X-AnyLabeling 在第一次运行任何模型时,需要从远程服务器下载模型,可能需要一段时间,这具体取决于本地的网络速度和服务运营商。此外,由于当前模型存放在 github 托管,因此如果没有开启科学上网的化,大概率会由于下载失败而中断,可以参考后续实操步骤解决。

集成方式

Segment Anything Model 分为两部分:一个很heavy的编码器和一个lightweight解码器。编码器从输入图像中提取图像嵌入。基于嵌入和输入提示(点、框、掩码),解码器生成输出掩码。解码器可以在单掩码或多掩码模式下运行。

在演示中,Meta 在服务器中运行编码器,而解码器可以在用户的浏览器中实时运行,如此一来用户便可以在其中输入点和框并立即接收输出。在本项目中,我们还为每个图像只运行一次编码器。之后,根据用户提示的变化(点、框),运行解码器以生成输出掩码。项目添加了后处理步骤来查找轮廓并生成用于标记的形状(多边形、矩形等)。

使用手册

如何快速开始?

X-AnyLabeling 目前提供两种方式供大家运行。第一种是偏向小白用户,大家可以直接再 github release [https://github.com/CVHub520/X-AnyLabeling/releases/tag/v2.0.0] 或者直接通过百度网盘链接 [https://pan.baidu.com/s/1qX1Q36EfHEJiTkS7xri3_g?pwd=e5it] 下载编译好的 GUI 版本,打开即用。当然,如果你想加载AI模型,是需要科学上网的,如果没有条件可以参考如何加载自定义模型的教程 [https://github.com/CVHub520/X-AnyLabeling/blob/main/docs/custom_model.md]。

第二种方式是通过下载源码运行,也是笔者比较建议的构建方式。具体的可以根据自己的机器和个人需求直接 pip 安装相关的依赖库即可。如果遇到某个包如(lap库)安装失败,可以自行上网搜索下解决方案。此外,如果是想体验GPU加速功能,需要安装对应的 requirements*-gpu.txt 文件,同时修改文件中的 onnxruntime-gpu 版本号,要与 CUDA 匹配,具体适配对照表可参考官方文档 [https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html]。

如何修改自定义快捷键?

X-AnyLalbeing 中同样提供了丰富的快捷键,极大提升标注效率。大家可根据自己的习惯通过修改当前设备的用户根目录下的 .anylabelingrc 文件进行修改:

#Linux
cd ~/.anylabelingrc

#Windows
cd C:\\Users\\xxx\\.anylabelingrc

默认的快捷键设置可以参考 github 主页示意图。

如何支持自定义模型?

内置模型
  • 对于X-AnyLalabeling中已提供的内置模型,可参考以下操作:
  1. 创建配置文件

进入 X-AnyLabeling 项目工程,查看所需的配置文件

  1. 查看配置文件

配置文件需要遵循以下格式,以 yolov5.yaml 为例:

type: yolov5
name: yolov5s-r20230520
display_name: YOLOv5s Ultralytics
model_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v0.1.0/yolov5s.onnx
input_width: 640
input_height: 640
stride: 32
nms_threshold: 0.45
confidence_threshold: 0.45
classes:
  - person
  - bicycle
  - car
  ...

这里详细解释下每个字段:

  • type: 网络类型定义,不可更改,目前已适配的网络类型定义可参见 model_manager.py 文件中的 load_custom_model() 函数;
  • name: 该字段为当前模型对应的配置文件索引标记,如果是加载用户自定义模型,此字段可忽略,详情可参见 models.yaml 文件;
  • display_name: 即展示到界面上显示的名称,可根据自定义任务自行命名,如 Fruits (YOLOv5s);
  • model_path: 即相对于自定义配置文件 *.yaml 所对应的模型权重路径,要求是 *.onnx 文件格式;

注:剩余的均为当前模型所依赖的相关超参数设置,可根据任务自行设置,具体的实现可参考 yolov5s.py 文件,大家同样可以加入 filter_classes , agnostic 等参数,用法同原始 yolo 框架一致。

好了,了解完前置知识后,假设现在我们手头上训练了一个可检测 apple、banana 以及 orange 三类别的 yolov5s 检测模型,我们需要先将 *.pt 文件转换为 *.onnx 文件,具体的转换方法可参考每个框架给出的转换指令,如 yolov5 官方提供的 Tutorial 文档。

其次,得到 onnx 权重文件(假设命名为 fruits.onnx)之后,我们可以复制一份 X-AnyLabeling 中提供的对应模型的配置文件,如上述提到的 yolov5s.yaml,随后根据自己需要修改下对应的超参数字段,如检测阈值,类别名称等,示例如下:

type: yolov5
name: yolov5s-r20230520
display_name: Fruits (YOLOv5s)
model_path: fruits.onnx
input_width: 640
input_height: 640
stride: 32
nms_threshold: 0.45
confidence_threshold: 0.45
classes:
  - apple
  - banana
  - orange

可以看出,这里 model_path 字段建议直接填写模型权重名称。

  1. 配置模型文件

随后我们只需在任意新建一个文件夹,将上述权重文件和对应的配置文件放置到同一个文件夹下存放即可,组织目录如下:

|- custom_model
|   |- fruits.onnx
|   |- yolov5s.yaml

当然,你也可以将下载好的 *.onnx 文件放置到当前系统用户目录下的 anylabeling_data/models/xxx 下。这里 xxx 为对应的模型的名称,具体地可参考 X-anylabeling/anylabeling/configs/auto_labeling/models.yaml 文件中的对应 model_name 字段,示例如下:

(x-anylabeling) cvhub@CVHub:~/anylabeling_data$ tree
.
└── models
    ├── mobile_sam_vit_h-r20230810
    │   ├── mobile_sam.encoder.onnx
    │   └── sam_vit_h_4b8939.decoder.onnx
    ├── yolov5s-r20230520
    │   └── yolov5s.onnx
    ├── yolov6lite_s_face-r20230520
    └── yolox_l_dwpose_ucoco-r20230820
        ├── dw-ll_ucoco_384.onnx
        └── yolox_l.onnx

最后,只需将下载好的模型权重放置上述对应位置,重新打开标注工具载入,点击“运行”或按下快捷键i实现一键标注功能。为了方便大家更快捷的接入工具,仓库内也提供了大部分主流模型的的部署教程,包括 SAM、Efficient-SAM、SAM-Med2D、GroundingDINO、Recognize Anything、HQ-SAM等等,具体可以参考 X-AnyLabeling/docs/custom_model.md 文档。

未适配模型

如何编译打包成可执行文件?

可参考以下打包指令:

#Windows-CPU
bash scripts/build_executable.sh win-cpu

#Windows-GPU
bash scripts/build_executable.sh win-gpu

#Linux-CPU
bash scripts/build_executable.sh linux-cpu

#Linux-GPU
bash scripts/build_executable.sh linux-gpu

注意事项:

  1. 编译前请针对相应的 GPU/CPU 版本修改 anylabeling/app_info.py 文件中的 __preferred_device__ 参数,同时根据对应参数激活对应的 GPU/CPU 虚拟环境;
  2. 如果需要编译GPU版本,请通过pip install -r requirements-gpu-dev.txt安装对应的环境;特别的,对于 GPU 版本的编译,请自行修改 anylabeling-win-gpu.specdatas 列表参数,将您本地的onnxruntime-gpu的相关动态库*.dll or *.so 添加进列表中;此外,下载 onnxruntime-gpu 包是需要根据 CUDA 版本进行适配,具体匹配表可参考官方文档说明。
  3. 对于 macos 版本可自行参考 anylabeling-win-*.spec 脚本进行修改。

更多功能,欢迎访问 github 主页链接,开源不易,给个 Star 支持下吧!最后,如果你有新的 idea 想要探讨或者碰到难以解决的问题,欢迎大家添小编卫星:ww10874,备注X-AnyLabeling一起交流学习。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CVHub/article/details/134440788

智能推荐

分包组包 北斗通信_一种基于北斗的低功耗双向非实时通信方法-程序员宅基地

文章浏览阅读474次。一种基于北斗的低功耗双向非实时通信方法【技术领域】[0001]本发明涉及一种基于北斗的低功耗双向非实时通信方法,属于北斗系统通信技术领域。【背景技术】[0002]北斗卫星系统具备的短报文通信功能在水文、气象、海洋、林业领域的遥测系统已经广泛应用。但鉴于目前北斗通讯终端的功耗较大,发信频度受限的问题,这些遥测系统在应用北斗卫星作为数据传输载体时,一般只实现了野外遥测站向数据采集中心站的单向传输功能,..._北斗双向通信

windows域名映射_windows域名映射文件-程序员宅基地

文章浏览阅读981次,点赞2次,收藏2次。windows域名映射_windows域名映射文件

C++程序打包_c++打包-程序员宅基地

文章浏览阅读1.9k次。首先我用的vs2017对现有的项目进行打包处理,当然首先的有打包的工具就是下图的这个vs小工具,找不到的话可以在工具中打开扩展与更新,在里面查找相应的工具名之后就是在项目上新建一个setup项目,前提是你已经安装了上面的那个小工具,之后就是对项目进行添加要输出的项目,设为主输出,然后再第二个文件上进行存放该项目的快捷方式,这个是在桌面的上的,而第三个文件夹是在开始菜单栏里添加的在其中加入所需要的依赖以及项目再进行生成就会出现项目的安装的exe文件在你生成的项目下..._c++打包

输入打开文件-程序员宅基地

文章浏览阅读86次。import fnmatch, osimport reyy = input('')def edd(user_name): def allFiles(root, patterns = '*', single_level = False, yield_folders = False): patterns = patterns.split(';') ..._输打开

Eplan教学视频合集-百度网盘-收集于网络_eplan教程 百度网盘-程序员宅基地

文章浏览阅读9.4k次,点赞5次,收藏18次。Eplan教学视频合集-百度网盘-收集于网络https://yun.baidu.com/s/1djYbk#list/path=%2Fhttps://pan.baidu.com/s/14DHLr31mLq2N8qbxd7vcbw //code:cva8https://yun.baidu.com/s/1qYfdJLM#list/path=%2Fhttps://yun.baidu.co..._eplan教程 百度网盘

keep-alive vue不起作用的原因_vue3+vite的keep-alive浏览器返回不生效-程序员宅基地

文章浏览阅读2w次。keep-alive 从列表页进入到详情页,再回到列表页,然后页面又重新请求,而不是直接读缓存里面的(ps:之前keep-alive用在项目中是可以起作用的,但是不知道为什么这两天就出现了这样的问题。就连activated,deactivated这两个钩子函数也是没有触发到) 具体代码如下 我尝试在项目中新建一个很简单的页面,也是没有效果。一开始以为是vue的版本过低导致的,看了一下v..._vue3+vite的keep-alive浏览器返回不生效

随便推点

elasticsearch-setup-passwords interactive_bash: elasticsearch-setup-passwords: command not f-程序员宅基地

文章浏览阅读2.6k次。elasticsearch-setup-passwords interactive[root@node-zwf ~]# su elasticsearch[elasticsearch@node-zwf root]$ cd /home/elasticsearch/elasticsearch-7.8.0/[elasticsearch@node-zwf elasticsearch-7.8.0]$ elasticsearch-setup-passwords interactiveba..._bash: elasticsearch-setup-passwords: command not found

学校公共计算机保用规定,湖南中医药大学涉密计算机和涉密移动存储介质保密管理规定...-程序员宅基地

文章浏览阅读922次。第一条为了进一步加强学校涉密计算机和涉密移动存储介质(移动硬盘、U盘、软盘、光盘、存储卡等)的安全保密工作,维护国家安全和利益,维护学校稳定和发展,结合我校工作实际,特制定本规定。第二条学校保密委员会负责全校涉密计算机、移动存储介质保密管理的指导、协调和监督工作。保密技术防范和管理工作由学校网络中心负责。第三条涉密计算机的日常管理制度(一)涉密计算机不得直接或间接接入国际互联网、校园网和其他公共信..._大学 涉密计算机安全保密策略

Vue.js复习_下列代码中,应用v-for指令遍历数组items-程序员宅基地

文章浏览阅读380次。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载等⼀系列过程,称这是Vue的⽣命周期。_下列代码中,应用v-for指令遍历数组items

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac)_chrome自带的表格怎么删-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏2次。Mac mini操作系统,安装完 Google Chrome 浏览器以后,单击 启动台 桌面左下角的“显示应用程序”,我们发现捆绑安装了。进入目录 /Users/用户名/Applications/Chrome 应用。那如何删除这些网址连接呢?,一个个单击打开,发现都是网址链接。已删除,干干净净,启动台回来了。进入或者删除整个文件夹。_chrome自带的表格怎么删

基于Java+SpringBoot+vue+elementui图书商城系统设计实现_图书商城后台管理系统设计与实现-程序员宅基地

文章浏览阅读3.9w次,点赞153次,收藏430次。主要功能包括管理员:首页、个人中心、图书分类管理、回收类别管理、新书榜管理、特价区管理、旧书回收管理、用户管理、订单评价管理、回收预约管理、图书回收管理、管理员管理、系统管理、订单管理。前台使用:首页、新书榜、特价区、旧书回收、公告资讯、个人中心、后台管理、购物车、客服。用户:首页、个人中心、订单评价管理、回收预约管理、图书回收管理、我的收藏管理、订单管理等功能。_图书商城后台管理系统设计与实现

【JZ2440笔记】裸机实验使用SDRAM_京累里101123-程序员宅基地

文章浏览阅读393次。S3C2440A 存储器控制器为访问外部存储的需要器提供了存储器控制信号。S3C2440A 包含以下特性:–大/小端(通过软件选择)–地址空间:每个 Bank 有 128M 字节(总共 1G/8 个 Bank)–大/小端(通过软件选择)–除了 BANK0(16/32 位)之外,其它全部 BANK 都可编程访问宽度(8/16/32 位)–总共 8 个存储器 Bank6 个存储器 Bank 为 ROM,SRAM 等其余 2 个存储器 Bank 为 ROM,SRAM,SDRAM 等–7 个固定的_京累里101123