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

庐山派K230学习日记1 从点灯到吃灰

1 简介​

庐山派以K230为主控芯片,支持三路摄像头同时输入,典型网络下的推理能力可达K210的13.7倍(算力约为6TOPS)。支持CanMV,可作为AI与边缘计算平台

图 0

K230简介

K230芯片集成了两颗RISC-V处理器核心,双核玄铁C908,12nm 制程工艺,主频高达1.6GHz,是全球首款支持RISC-V Vector 1.0标准的商用SOC,配备第三代KPU处理单元,专为图像、视频、音频处理和AI加速设计,提供强劲的本地AI推理能力。支持三路MIPI CSI视频输入,最大分辨率可达4K。K230支持常见的AI计算框架如TensorFlow和PyTorch。下面是该处理器的框架图:

图 2

2 开发前准备​

序号名称数量
1️⃣立创·庐山派-K230-CanMV开发板 主板1片
2️⃣GC2093||OV5647 摄像头(22P 0.5mm间距)1块
3️⃣TF卡(2G以上 class10等级以上)1片
4️⃣Type-C数据线(用来连接电脑)1条
5️⃣TF 卡读卡器(把固件烧录进TF卡)1个

安装CanMV IDE K230,下载链接,写本文时最新版本为4.0.7,大家下载时下载最新的就可以了,单击下图中的CanMV IDE K230 for windows就可以把安装包下载到本地进行安装了。

图 3

打开后按照提示进行安装就可以了,注意安装到你知道的目录,建议不要安装到C盘。

图 4

安装成功之后可以在win11系统左下角的搜索栏中点击搜索找到CanMV IDE K230,我电脑这里的CanMV IDE是给K210使用的,如果大家也用过k210的话在打开IDE的时候需要注意,只有后面带K230标识的才支持我们的立创·庐山派-K230-CanMV开发板。如果搜索不到大家也可以直接去自己的安装目录的bin目录下的canmvide.exe文件。

图 5

3 获取及烧录固件​

3.1 获取固件​

固件获取链接

1️⃣ 【从嘉楠开发者社区获取最新固件】 (推荐)

点击这个链接,在资料下载栏目->K230->Images->CanMV->Micropython->CanMV-K230_LCKFB_micropython_v1.2-0-g9e4d9ca_nncase_v2.9.0.img.gz。

2️⃣ 【从Github仓库获取最新固件】

点击这个[链接](Releases · kendryte/canmv_k230),下载最新固件注意需要下载里面带LCKFB字符的固件。

3️⃣ 【从我们的资料包中获取】

在我们的离线资料里面的 【1】固件 目录里面寻找。

需要注意,不管是从Github下载下来的还是从我们资料包中获取的都是压缩包,解压出来的才是固件镜像。

⚠️警告:

.gz后缀结尾的是压缩包,.img后缀结尾的才是固件。只能往 TF卡 中只能烧录 .img文件 格式的固件,如果直接烧录 .gz文件 可能会造成开发板损坏。

如下图中的,1是固件镜像,2是压缩包,1是2解压得出来的文件。

图 6

3.2 烧录固件​

下载烧录工具Rufus,下载地址:Index of /downloads,如果网络不通畅的话也可以从我们的离线资料里面的 【0】工具/【2】烧录工具/【1】Rufus 目录中获取,这个软件是免安装的,下载下来后直接双击打开就可以了。我这里用的是4.5版本,界面如下:

图 7

此时把你的TF卡插入读卡器,然后把读卡器插入电脑,我这里使用的是4G的TF卡,插入后Rufus软件界面的设备列表栏会显示一个设备,并且左下角也会提示可以检测到设备,此时就可以点击镜像文件(请选择)后方的选择按钮来选择我们要烧录的镜像了,就选择我们在上一小节中获取到的 CanMV-K230_LCKFB_micropython_v1.1-0-g5a6fc54_nncase_v2.9.0.img 文件就可以了,选择后如下图所示:

图 8

正确选择固件镜像文件后我们直接点击右下角的开始按钮,继续操作会造成TF内所有内容全部消失,需要确保你这个TF卡内部没有重要数据,然后等待烧录完成就可以了。当Rufus软件的状态那一栏走完进度条,提示准备就绪时就表示成功烧录固件了,如下图所示:

图 9

此时我们就可以按以下步骤操作:

步骤:

  1. 关闭Rufus软件。
  2. 在电脑上软件弹出我们的读卡器 。
  3. 拔出读卡器。
  4. 从读卡器上拔出我们烧录号固件镜像的TF卡。
  5. 在 立创·庐山派-K230-CanMV开发板 未供电状态插入TF卡。

4 立创·庐山派 启动​

完成以上操作后,我们就可以给开发板上电了。用Type-C数据线将开发板连入电脑。

如果正常启动,板子上的红色指示灯(红灯)就会自动点亮,稍微等待一会后(十秒内)。我们就可以在设备管理器中看到一个 新的USB串行设备(COMx),同时我们电脑的也会出现一个CanMV设备,可以当做U盘来访问开发板内的文件。

图 10

⚠️注意:

在第一次上电时,庐山派开发板会自动将TF卡除固件镜像外的剩余空间格式化为fat,并挂载在/data文件夹,格式化会占用一些时间并且会主动进行一次重启。后续上电时不会再进行这个操作,所以第一次上电会稍微慢一点。

当然,如果你已经安装了CanMV IDE K230,打开IDE,当 立创·庐山派-K230-CanMV开发板 正常启动后,左下角的连接图标的右上脚就会出现一个USB标志,如果没有出现则表示开发板启动失败或未成功连接电脑。下图的左边是未接入开发板的IDE,右边是接入了开发板的IDE。

图 11

5 运行例程​

目前烧录固件的TF卡内有所有嘉楠官方提供的例程,源码+模型文件+字体等都在TF卡中,当立创庐山派开发板连接电脑后,用户可以直接在电脑的CanMV设备中的sdcard文件夹中找到所有文件

图 12

⚠️注意:

  1. 不要使用IDE自带的例程,版本太老可能无法直接运行,需要使用固件自带的例程。
  2. 例程默认的摄像头使用的是CSI2,就是开发板正面的那个立式的22P摄像头座,在运行和摄像头有关的例程时需要注意。
  3. 为了避免占用USB传输带宽,建议将例程拷贝至电脑本地存储后再打开复制。

其历程examples,libs,res目录结构如表所示:

sdcard:
├─examples
│  ├─01-Micropython-Basics
│  │      demo_crc16.py
│  │      demo_files.py
│  │      demo_fs_info.py
│  │      demo_globals.py
│  │      demo_json.py
│  │      demo_logging.py
│  │      demo_sha256.py
│  │      demo_sys_info.py
│  │      demo_thread.py
│  │      demo_time.py
│  │      demo_view_mem.py
│  │      demo_yield.py
│  │      demo_yield_task.py
│  │
│  ├─02-Media
│  │      acodec.py
│  │      audio.py
│  │      mp4muxer.py
│  │      rtsp_server.py
│  │      video_decoder.py
│  │      video_encoder.py
│  │      video_player.py
│  │
│  ├─03-Machine
│  │  ├─adc
│  │  │      adc.py
│  │  │
│  │  ├─fft
│  │  │      fft.py
│  │  │
│  │  ├─fpioa
│  │  │      fpioa.py
│  │  │
│  │  ├─i2c
│  │  │      i2c_master.py
│  │  │      i2c_slave.py
│  │  │
│  │  ├─pin
│  │  │      pin.py
│  │  │
│  │  ├─pwm
│  │  │      pwm.py
│  │  │
│  │  ├─rtc
│  │  │      rtc.py
│  │  │
│  │  ├─spi
│  │  │      spi.py
│  │  │
│  │  ├─timer
│  │  │      timer.py
│  │  │
│  │  ├─touch
│  │  │      touch.py
│  │  │
│  │  ├─uart
│  │  │      uart.py
│  │  │      uart1.py
│  │  │
│  │  └─wdt
│  │          wdt.py
│  │
│  ├─04-Cipher
│  │      cipher.py
│  │
│  ├─05-AI-Demo
│  │      dynamic_gesture.py
│  │      eye_gaze.py
│  │      face_detection.py
│  │      face_landmark.py
│  │      face_mesh.py
│  │      face_parse.py
│  │      face_pose.py
│  │      face_recognition.py
│  │      face_registration.py
│  │      falldown_detect.py
│  │      finger_guessing.py
│  │      hand_detection.py
│  │      hand_keypoint_class.py
│  │      hand_keypoint_detection.py
│  │      hand_recognition.py
│  │      keyword_spotting.py
│  │      licence_det.py
│  │      licence_det_rec.py
│  │      nanotracker.py
│  │      object_detect_yolov8n.py
│  │      ocr_det.py
│  │      ocr_rec.py
│  │      person_detection.py
│  │      person_keypoint_detect.py
│  │      puzzle_game.py
│  │      segment_yolov8n.py
│  │      self_learning.py
│  │      space_resize.py
│  │      tts_zh.py
│  │
│  ├─06-Display
│  │      display_hdmi.py
│  │      display_lcd.py
│  │      display_virt.py
│  │
│  ├─07-April-Tags
│  │      find_apriltags.py
│  │      find_apriltags_3d_pose.py
│  │
│  ├─08-Codes
│  │      find_barcodes.py
│  │      find_datamatrices.py
│  │      find_qrcodes.py
│  │
│  ├─09-Color-Tracking
│  │      automatic_grayscale_color_tracking.py
│  │      automatic_rgb565_color_tracking.py
│  │      black_grayscale_line_following.py
│  │      image_histogram_info.py
│  │      image_statistics_info.py
│  │      multi_color_code_tracking.py
│  │      single_color_code_tracking.py
│  │
│  ├─10-Drawing
│  │      arrow_drawing.py
│  │      circle_drawing.py
│  │      cross_drawing.py
│  │      ellipse_drawing.py
│  │      flood_fill.py
│  │      image_drawing.py
│  │      image_drawing_advanced.py
│  │      image_drawing_alpha_blending_test.py
│  │      keypoints_drawing.py
│  │      line_drawing.py
│  │      rectangle_drawing.py
│  │      text_drawing.py
│  │
│  ├─11-Feature-Detection
│  │      edges.py
│  │      find_blobs.py
│  │      find_lines.py
│  │      find_rects.py
│  │      hog.py
│  │      lbp.py
│  │      linear_regression_fast.py
│  │
│  ├─12-Image-Filters
│  │      adaptive_histogram_equalization.py
│  │      blur_filter.py
│  │      color_binary_filter.py
│  │      color_light_removal.py
│  │      edge_filter.py
│  │      erode_and_dilate.py
│  │      gamma_correction.py
│  │      grayscale_bilateral_filter.py
│  │      grayscale_binary_filter.py
│  │      grayscale_light_removal.py
│  │      histogram_equalization.py
│  │      kernel_filters.py
│  │      lens_correction.py
│  │      linear_polar.py
│  │      log_polar.py
│  │      mean_adaptive_threshold_filter.py
│  │      mean_filter.py
│  │      median_adaptive_threshold_filter.py
│  │      median_filter.py
│  │      midpoint_adaptive_threshold_filter.py
│  │      midpoint_filter.py
│  │      mode_adaptive_threshold_filter.py
│  │      mode_filter.py
│  │      negative.py
│  │      perspective_and_rotation_correction.py
│  │      perspective_correction.py
│  │      rotation_correction.py
│  │      sharpen_filter.py
│  │      unsharp_filter.py
│  │      vflip_hmirror_transpose.py
│  │
│  ├─14-Socket
│  │      http_client.py
│  │      http_server.py
│  │      iperf3.py
│  │      network_lan.py
│  │      network_wlan_ap.py
│  │      network_wlan_sta.py
│  │      tcp_client.py
│  │      tcp_server.py
│  │      udp_clinet.py
│  │      udp_server.py
│  │
│  ├─15-LVGL
│  │  │  lvgl_demo.py
│  │  │  lvgl_touch_demo.py
│  │  │
│  │  └─data
│  │      ├─font
│  │      │      lv_font_simsun_16_cjk.fnt
│  │      │      montserrat-16.fnt
│  │      │
│  │      └─img
│  │              animimg001.png
│  │              animimg002.png
│  │              animimg003.png
│  │
│  ├─16-AI-Cube
│  │      ClassificationApp.py
│  │      DetectionApp.py
│  │      MultiLabelApp.py
│  │      OCR_Det.py
│  │      SegmentationApp.py
│  │      SelfLearningApp.py
│  │
│  ├─17-Sensor
│  │      camera_dual_bind_hdmi.py
│  │      camera_mirror_flip.py
│  │      camera_single_bind_hdmi.py
│  │      camera_single_bind_lcd.py
│  │      camera_single_show_hdmi.py
│  │      camera_single_show_lcd.py
│  │      camera_snapshot_and_save.py
│  │      camera_triple_bind_hdmi.py
│  │
│  ├─18-NNCase
│  │  │  ai2d+kpu.py
│  │  │  kpu.py
│  │  │
│  │  └─face_detection
│  │          face_detection_320.kmodel
│  │          face_detection_ai2d_input.bin
│  │          face_detection_ai2d_output.bin
│  │          prior_data_320.bin
│  │
│  ├─99-HelloWorld
│  │      helloworld.py
│  │
│  ├─ai_test_kmodel
│  │      embedding.kmodel
│  │      insect_det.kmodel
│  │      landscape_multilabel.kmodel
│  │      ocr_det_int16.kmodel
│  │      ocr_rec_int16.kmodel
│  │      ocular_seg.kmodel
│  │      veg_cls.kmodel
│  │
│  ├─ai_test_utils
│  │      0.jpg
│  │      1.jpg
│  │      2.jpg
│  │      3.jpg
│  │      4.jpg
│  │      5.jpg
│  │      6.jpg
│  │      7.jpg
│  │      8.jpg
│  │      dict.txt
│  │
│  ├─kmodel
│  │      cropped_test127.kmodel
│  │      eye_gaze.kmodel
│  │      face_alignment.kmodel
│  │      face_alignment_post.kmodel
│  │      face_detection_320.kmodel
│  │      face_landmark.kmodel
│  │      face_parse.kmodel
│  │      face_pose.kmodel
│  │      face_recognition.kmodel
│  │      gesture.kmodel
│  │      handkp_det.kmodel
│  │      hand_det.kmodel
│  │      hand_reco.kmodel
│  │      hifigan.kmodel
│  │      kws.kmodel
│  │      licence_reco.kmodel
│  │      LPD_640.kmodel
│  │      nanotracker_head_calib_k230.kmodel
│  │      nanotrack_backbone_sim.kmodel
│  │      ocr_det_int16.kmodel
│  │      ocr_rec_int16.kmodel
│  │      person_detect_yolov5n.kmodel
│  │      recognition.kmodel
│  │      yolov5n-falldown.kmodel
│  │      yolov8n-pose.kmodel
│  │      yolov8n_320.kmodel
│  │      yolov8n_seg_320.kmodel
│  │      zh_fastspeech_1_f32.kmodel
│  │      zh_fastspeech_2.kmodel
│  │
│  └─utils
│      │  dict.txt
│      │  fist.bin
│      │  five.bin
│      │  phone_map.txt
│      │  pinyin.txt
│      │  prior_data_320.bin
│      │  shang.bin
│      │  shear.bin
│      │  small_pinyin.txt
│      │  wozai.wav
│      │  xia.bin
│      │  you.bin
│      │  zuo.bin
│      │
│      ├─db
│      │      readme.txt
│      │
│      └─db_img
│              id_1.jpg
│              id_2.png
│
├─libs
│      AI2D.py
│      AIBase.py
│      PipeLine.py
│      RtspSever.py
│
└─res└─fontLICENSE.txtreadme.txtSourceHanSansSC-Normal-Min.ttf

打开CanMV IDE K230,找到你感兴趣的例程,复制粘贴去就好了(亦可以点击IDE左上角的文件->打开文件来加载需要用到的例程),比如我这里打开examples->05-AI-Demo->object_detect_yolov8n.py,复制进IDE里面,然后连接开发板后点击左下角的绿色运行小三角就可以使用了,如下动图所示:

图 13

相关文章:

庐山派K230学习日记1 从点灯到吃灰

1 简介​ 庐山派以K230为主控芯片,支持三路摄像头同时输入,典型网络下的推理能力可达K210的13.7倍(算力约为6TOPS)。支持CanMV,可作为AI与边缘计算平台 K230简介 K230芯片集成了两颗RISC-V处理器核心,双核…...

在Swagger(现称为OpenAPI)中各类@api之间的区别

在Swagger(现称为OpenAPI)中,ApiOperation 是用来描述单个API操作的注解。除此之外,Swagger还提供了其他一些类似的注解,它们用于不同层次或目的来增强API文档的详细程度和可读性。以下是这些注解及其之间的区别&#…...

【网络协议】开放式最短路径优先协议OSPF详解(二)

前言 第一部分:【网络协议】开放式最短路径优先协议OSPF详解(一) 在第一部分中,我们了解了链路状态路由协议并讨论了 OSPF 的工作原理,同时学习了如何配置 OSPF。在本章的第二部分中,我们将进一步探讨 OS…...

windows文件夹自定义右键调用powershell完成7zip加密打包

准备powershell脚本 2. regedit的路径是:计算机\HKEY_CLASSES_ROOT\Directory\shell\,在此项目下新增子项目diy_command\command,command的数据值为powershell D:\windowsProjects\directory_diy.ps1 %1 效果,点击后进入和power…...

MySQL 入门教程

MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。 什么…...

BOOST 库在机器视觉中的应用及示例代码分析

一、引言 机器视觉是一门让计算机模拟人类视觉功能,对图像或视频数据进行理解、分析和决策的学科领域。在机器视觉的开发过程中,常常需要高效处理各种数据结构、进行数值计算、实现多线程并行处理以及运用优秀的算法框架等。BOOST 库作为一个功能强大、…...

第二十六天 自然语言处理(NLP)词嵌入(Word2Vec、GloVe)

自然语言处理(NLP)中的词嵌入(Word2Vec、GloVe)技术,是NLP领域的重要组成部分,它们为词汇提供了高维空间到低维向量的映射,使得语义相似的词汇在向量空间中的距离更近。以下是对这些技术的详细解…...

Log4j2 详解(异步日志打印及CSV格式日志输出)

Log4j2 详解 Apache Log4j2 是一个功能强大的 Java 日志记录框架,提供高性能和灵活的配置。本文档涵盖了 Log4j2 的核心功能及其详细使用方式,包括基础配置、异步日志、CSV 格式日志的输出以及使用注意事项。 一 Log4j2 基础概念与配置 1.1 Log4j2 介绍…...

[网络安全] DVWA之Content Security Policy (CSP) Bypass 攻击姿势及解题详析合集

CSP概念 CSP 是 Content Security Policy(内容安全策略)的缩写,是一种用于增强 Web 应用程序安全性的安全机制。它通过允许网站管理员控制页面中加载内容的来源来减少跨站脚本攻击(XSS)等常见的安全风险。 CSP 的工作…...

linux shell脚本 【分支结构case...in 、循环结构、函数】内附练习

1.思维导图 2.练习 1.定义一个find函数&#xff0c;查找ubuntu和root的gid 2.定义一个数组&#xff0c;写一个函数完成对数组的冒泡排序 bubble() {n${#arr[*]}for((i0;i<n-1;i));dofor((j0;j<n-1-i;j));doif ((arr[j]>arr[j1]));thentemp${arr[j]}arr[j]${arr[j1]}a…...

C# 设计模式(结构型模式):桥接模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;桥接模式 在软件设计中&#xff0c;我们经常会遇到系统的变化频繁&#xff0c;或者需要灵活扩展功能的场景。这时&#xff0c;桥接模式&#xff08;Bridge Pattern&#xff09;便显得尤为重要。桥接模式是一个结构型…...

RC充电电路仿真与分析

RC充电原理 下图是一个常见的RC充电电路&#xff1a;&#xff08;假设R10K&#xff0c;C100nF&#xff09; SW断开时&#xff0c;这个电路处于断路状态&#xff0c;C既没有充电也没有放电&#xff1b;SW闭合时&#xff0c;直流电源5V为电容C充电&#xff1b; 充电时电容两端…...

在 SQL 中获取第m个开始的n条记录方法汇总

在 SQL 中&#xff0c;要获取第m个开始的n条记录&#xff0c;主要取决于你使用的数据库系统和支持的功能。以要获取第10个开始的20条记录为例说明几种常见的方法&#xff1a; 1. 使用 LIMIT 和 OFFSET 适用于 MySQL、PostgreSQL 等支持 LIMIT 的数据库。 SELECT * FROM table…...

Linux 35.6 + JetPack v5.1.4之编译 pytorch

Linux 35.6 JetPack v5.1.4之编译 pytorch 1. 源由2. 折腾3. 构建步骤3.1 下载代码3.2 编译选项3.3 CUDA选项3.4 CUDA路径3.5 版本控制3.6 编译whl 4. 总结5. 参考资料 1. 源由 目前&#xff0c;有很多科研性质的自动导航的开源代码&#xff0c;例如&#xff1a; Linux 35.5…...

docker 部署nginx

1、拉取阿里的nginx镜像&#xff1a; docker pull crpi-k5k93ldwfc7o75ip.cn-hangzhou.personal.cr.aliyuncs.com/list_su/nginx:stable-perl 2、官方nginx镜像&#xff1a; docker pull nginx:stable-perl 3、创建挂载文件目录 mkdir nginx && cd nginx mkdir c…...

深入刨析数据结构之排序(上)

目录 1.内部排序 1.1概述 1.2插入排序 1.2.1其他插入排序 1.2.1.1 折半插入排序 1.2.1.2 2-路插入排序 1.3希尔排序 1.4快速排序 1.4.1起泡排序 1.4.2快速排序 1.4.2.1hoare版本 1.4.2.2挖坑版本 1.4.2.3前后指针版本 1.4.2.4优化版本 1.4.2.4.1小区间插入排序优…...

Java - 日志体系_Apache Commons Logging(JCL)日志接口库_桥接Logback 及 源码分析

文章目录 PreApache CommonsApache Commons ProperLogging &#xff08;Apache Commons Logging &#xff09; JCL 集成logbackPOM依赖配置文件 logback.xml使用 源码分析jcl-over-slf4j 的工作原理1. LogFactory 的实现2. SLF4JLogFactory 和 Log 的实例化过程3. SLF4JLog 和 …...

力扣刷题:栈和队列OJ篇(下)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 1.括号匹配问题&#xff08;1&#xff09;题目…...

QT:控件属性及常用控件(1)------核心控件及属性

一个图形化界面上的内容&#xff0c;不需要我们直接从零去实现 QT中已经提供了很多的内置控件&#xff1a; 按钮&#xff0c;文本框&#xff0c;单选按钮&#xff0c;复选按钮&#xff0c;下拉框等等。。。。。 文章目录 1.常用控件属性1.1 enabled1.2 geometry1.2.1 geometry…...

【juc】Lock锁和AQS的继承关系

目录 1. 说明2. Lock接口与AQS的关系2.1 Lock接口2.2 AQS&#xff08;AbstractQueuedSynchronizer&#xff09; 3. ReentrantLock与AQS的具体联系3.1 ReentrantLock的实现3.2 AQS在ReentrantLock中的作用 1. 说明 1.Lock锁和AQS&#xff08;AbstractQueuedSynchronizer&#x…...

自学记录鸿蒙API 13:实现多目标识别Object Detection

起步&#xff1a;什么叫多目标识别&#xff1f; 无论是生活中的动物识别、智能相册中的场景分类&#xff0c;还是工业领域的检测任务&#xff0c;都能看到多目标识别的身影。这次&#xff0c;我决定通过学习HarmonyOS最新的Object Detection API&#xff08;API 13&#xff09…...

BOC调制信号matlab性能仿真分析,对比功率谱,自相关性以及抗干扰性

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…...

C# 事件机制

C# 事件机制详解&#xff1a;从概念到实践 在 C# 中&#xff0c;事件机制是处理对象间通信的重要方式&#xff0c;尤其是在 GUI 应用程序&#xff08;如 WPF、WinForms&#xff09;中&#xff0c;事件用于响应用户交互&#xff08;如按钮点击、鼠标移动等&#xff09;。本文将…...

使用 Python 实现随机中点位移法生成逼真的裂隙面

使用 Python 实现随机中点位移法生成逼真的裂隙面 一、随机中点位移法简介 1. 什么是随机中点位移法&#xff1f;2. 应用领域 二、 Python 代码实现 1. 导入必要的库2. 函数定义&#xff1a;随机中点位移法核心逻辑3. 设置随机数种子4. 初始化二维裂隙面5. 初始化网格的四个顶点…...

GPT分区 使用parted标准分区划分,以及相邻分区扩容

parted 是一个功能强大的命令行工具&#xff0c;用于创建和管理磁盘分区表和分区。它支持多种分区表类型&#xff0c;如 MBR&#xff08;msdos&#xff09;、GPT&#xff08;GUID Partition Table&#xff09;等&#xff0c;并且可以处理大容量磁盘。parted 提供了一个交互式界…...

【Triton-ONNX】如何使用 ONNX 模型服务与 Triton 通信执行推理任务上-Triton快速开始

模型部署系列文章 前置-docker 理解:【 0 基础 Docker 极速入门】镜像、容器、常用命令总结前置-http/gRPC 的理解: 【HTTP和gRPC的区别】协议类型/传输效率 /性能等对比【保姆级教程附代码】Pytorch (.pth) 到 TensorRT (.plan) 模型转化全流程【保姆级教程附代码(二)】Pytor…...

问题记录:[FATAL] [1735822984.951119148]: Group ‘manipulator‘ was not found.

前言&#xff1a;最近仿照UR5手眼标定的例程&#xff0c;在新的机械臂上进行手眼标定&#xff0c;还准备用easy_hand手眼标定包。将机器人功能包导入到工作空间后进行编译运行&#xff0c;启动launch文件&#xff1a; roslaunch easy_handeye eye_to_hand_CR7_calibration.lau…...

SpringCloudAlibaba实战入门之Sentinel服务降级和服务熔断(十五)

一、Sentinel概述 1、Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 一句话概括:sentinel即Hystrix的替代品,官网: https://sentinelguard.io/zh…...

Scrum中敏捷项目经理(Scrum Master)扮演什么角色?

敏捷开发模式已经逐渐被主流的软件研发团队所接受&#xff0c;其中Scrum是最具代表性的敏捷方法之一。Scrum框架中有三个核心角色&#xff1a;Product Owner&#xff08;PO&#xff09;、Scrum Master&#xff08;SM&#xff09;和Development Team&#xff08;DT&#xff09;。…...

SpringMVC(四)响应

目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…...

操作系统之文件系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

Android SPRD 工模测试修改

设备有两颗led灯&#xff0c;工模测试需全亮 vendor/sprd/proprietories-source/factorytest/testitem/led.cpp -13,6 13,10 typedef enum{#define LED_BLUE "/sys/class/leds/blue/brightness"#define LED_RED …...

C语言与操作系统

学习C语言有助于理解计算机底层原理和操作系统的工作方式 C语言自诞生以来&#xff0c;就与计算机底层操作紧密相连。作为一门高级编程语言&#xff0c;C语言提供了对硬件直接控制的能力&#xff0c;同时保留了结构化编程的特性&#xff0c;这使得它成为编写操作系统、编译器和…...

信息安全管理:网络安全

1 网络的定义和特征 1.1 网络的定义 &#xff08;根本懒得说。。你们自己wiki吧&#xff09; 网络的用处 What is a network…Devices in a network…LAN, WAN and InternetworksWhat do networks do for you… Sharing resourcesUse/share applications 1.2 网络的特征 Ch…...

python-leetcode-轮转数组

189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""n len(nums)k % n # 如果 k 大于 n&#xff0c;…...

Windows上安装Go并配置环境变量(图文步骤)

前言 1. 本文主要讲解的是在windows上安装Go语言的环境和配置环境变量&#xff1b; Go语言版本&#xff1a;1.23.2 Windows版本&#xff1a;win11&#xff08;win10通用&#xff09; 下载Go环境 下载go环境&#xff1a;Go下载官网链接(https://golang.google.cn/dl/) 等待…...

【JS】期约的Promise.all()和 Promise.race()区别

概述 Promise.all() 和 Promise.race() 都是 JavaScript 中处理多个异步操作的 Promise 方法&#xff0c;但它们的行为和返回结果有所不同。 Promise.all()和Promise.race() 1. Promise.all() Promise.all() 接受一个由多个 Promise 实例组成的可迭代对象&#xff08;例如数…...

【Linux】信号处理

一、Linux系统信号 1、常见的系统信号 常见的Linux系统信号 信号值描述1SIGHUP挂起&#xff08;hang up&#xff09;进程2SIGINT中断进&#xff08;interrupt&#xff09;程3SIGQUIT停止&#xff08;stop&#xff09;进程9SIGKILL无条件终止&#xff08;terminate&#xff09;…...

Diffusion Transformer(DiT)——将扩散过程中的U-Net换成ViT:近频繁用于视频生成与机器人动作预测(含清华PAD详解)

前言 本文最开始属于此文《视频生成Sora的全面解析&#xff1a;从AI绘画、ViT到ViViT、TECO、DiT、VDT、NaViT等》 但考虑到DiT除了广泛应用于视频生成领域中&#xff0c;在机器人动作预测也被运用的越来越多&#xff0c;加之DiT确实是一个比较大的创新&#xff0c;影响力大&…...

144:vue+leaflet 使用canvas绘制不同方向、不同颜色的模仿船只三角形

作者: 还是大剑师兰特 ,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。 查看本专栏目录 - 本文是第 144个示例 文章目录…...

c# 快捷键模块

文章目录 命名空间和类类成员静态成员 静态方法GenerateHotkeyIdWndProcGetWindowHandleAndSourceRegisterUnregister 静态方法&#xff08;外部调用&#xff09;RegisterHotKey 和 UnRegisterHotKey 委托HotKeyCallbackHandler 枚举HotkeyModifiers 应用示例 using System; us…...

npm install 安装选项 -d -s -g

在使用 npm install 时&#xff0c;-d、-g 和 -s 是不同的选项&#xff0c;它们分别代表不同的安装模式或行为。以下是它们的详细解释&#xff1a; 1. -d&#xff1a;--save-dev 含义&#xff1a;将包安装为开发依赖&#xff08;devDependencies&#xff09;。使用场景&#…...

【每日学点鸿蒙知识】worker线程数量、判断用户是否进行权限决定、图片上传类型错误、request锁释放时机、H5问题

1、HarmonyOS 怎么判断worker线程创建了几个&#xff1f; 因为有数量限制&#xff0c;所以想查询当前的worker数量&#xff0c;避免创建失败&#xff0c;还有&#xff0c;是同时运行的worker数量有限制&#xff0c;还是同一个应用能创建的worker线程有限制 1、查询当前的work…...

0xc0000020错误代码怎么处理,Windows11、10坏图像错误0xc0000020的修复办法

“0xc0000020”是一种 Windows 应用程序错误代码&#xff0c;通常表明某些文件缺失或损坏。这可能是由于系统文件损坏、应用程序安装或卸载问题、恶意软件感染、有问题的 Windows 更新等原因导致的。 比如&#xff0c;当运行软件时&#xff0c;可能会出现类似“C:\xx\xxx.dll …...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之7 附件(文档)

为AI聊天工具添加一个知识系统 Part1 人性化&去中心化 前情提要 这一次我们暂时抛开前面对“智能工厂的软件设计”的考虑--其软件智能 产品就是 应用程序。直接将这些思维方式和方法论 运用在其具体应用场景中。本文是其中的一个应用场景。 今天用了 一个新的AI助手工具…...

智能化人才招聘系统是怎样的?

随着企业规模的扩大和业务范围的拓展&#xff0c;人才招聘成为了企业发展的关键环节。然而&#xff0c;市面上的人才招聘系统琳琅满目&#xff0c;质量参差不齐&#xff0c;许多企业发现&#xff0c;并非所有系统都能满足他们的需求&#xff0c;特别是智能化的需求。今天&#…...

memcached的基本使用

memcached是一种基于键值对的内存数据库&#xff0c;一般应用于缓存数据&#xff0c;提高数据访问速度&#xff0c;减轻后端数据库压力。 安装 这里以Ubuntu为例&#xff0c;其他系统安装方法请看官方文档。 sudo apt-get update sudo apt-get install memcached启动 memca…...

【Unity3d】C#浮点数丢失精度问题

一、float、double浮点数丢失精度问题 Unity3D研究院之被坑了的浮点数的精度&#xff08;一百零三&#xff09; | 雨松MOMO程序研究院 https://segmentfault.com/a/1190000041768195?sortnewest 浮点数丢失精度问题是由于大部分浮点数在IEEE754规范下就是无法准确以二进制…...

机器学习中回归预测模型中常用四个评价指标MBE、MAE、RMSE、R2解释

在机器学习中&#xff0c;评估模型性能时常用的四个指标包括平均绝对误差&#xff08;Mean Absolute Error, MAE&#xff09;、均方误差&#xff08;Mean Squared Error, MSE&#xff09;、均方根误差&#xff08;Root Mean Squared Error, RMSE&#xff09;和决定系数&#xf…...

2412d,d语言中写汇编

原文 嗨,我只是想共享该要点,它展示了如何在ASM中用D编写你好. D中写汇编非常方便!这是我写的: extern(C) int main() {auto hip "hello D\n".ptr;size_t len 8;//write(1,消息,长度)asm {mov RDX, len;//缓冲长度mov RSI, hip;//消息缓冲mov EDI, 1;//Stdout文描…...