foundationpose位姿检测环境搭建与数据集制作

article/2025/6/17 23:49:16

foundationpose环境搭建数据集制作

注:本教程为在未知明确方法的探索步骤记录,由于时间原因未做整理,可能有不必要步骤,建议先看完整篇文章理清思路在动手制作

创建数据集

  1. 保存RGB和Depth图像: 使用data_collect.py脚本来保存RGB和深度图像。在 (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ 目录下运行 python /home/robot/Foundationpose_ws/src/FoundationPose-main/data_collect.py
  2. 生成Mask: 使用rgb_get_mask.py脚本通过Deepseek生成图像mask。在 (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ 目录下运行 python /home/robot/Foundationpose_ws/src/FoundationPose-main/rgb_get_mask.py

参考与配置

参考CSDN博客: https://blog.csdn.net/qq_53186375/article/details/146321017

  • 启动RealSense相机节点:
    (base) robot@robot-System-Product-Name:~/elfin_embodied_grasping$ roslaunch '/home/robot/elfin_embodied_grasping/src/realsense2_control/realsense2_camera/launch/rs_camera.launch'
    
  • 查看图像:
    (base) robot@robot-System-Product-Name:~/elfin_embodied_grasping$ rqt_image_view
    
  • 下载权重: 从教程链接下载5个权重文件,并放置到项目根目录(与grounded_sem_demo.py同级目录下)。
  • 修改程序: 将博主的程序修改为通过ROS输入’r’保存图像,输入’q’退出,每次保存的图片名字从0000001开始递增。这将会在执行文件目录下生成对应的图像:
    (base) robot@robot-System-Product-Name:~/elfin_embodied_grasping$ conda deactivate
    robot@robot-System-Product-Name:~/elfin_embodied_grasping$ python '/home/robot/elfin_embodied_grasping/src/realsense2_control/realsense2_camera/scripts/fd_data_collect_手动采集.py'
    

Grounded-Segment-Anything 配置与运行

  1. 安装依赖:

    (foundationpose) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 报错处理: 如果遇到OSError: We couldn't connect to 'https://huggingface.co',请检查网络连接或配置离线模式。
  2. 重新配置环境:

    • 创建并激活新的conda环境:
      conda create -n env_grounded_segment_anything python==3.8.10
      conda activate env_grounded_segment_anything
      
    • 安装PyTorch:
      pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
      
    • 安装其他依赖:
      pip install -r requirements.txt
      
  3. 运行 grounded_sam_demo.py:

    (foundationpose) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python grounded_sam_demo.py --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py  \
    --grounded_checkpoint groundingdino_swint_ogc.pth  \
    --sam_checkpoint sam_vit_h_4b8939.pth  \
    --input_image assets/demo1.jpg  \
    --output_dir "outputs"  \
    --box_threshold 0.3  \
    --text_threshold 0.25  \
    --text_prompt "bear"
    
    • 报错处理: 如果遇到RuntimeError: Failed to import transformers.models.bert.modeling_bert,请执行 pip install protobuf==3.20.3
    • 结果: 成功运行后,结果图片将保存在outputs文件夹中。此过程需全程翻墙连接日本节点.
  4. 运行 grounded_sam_inpainting_demo.py:

    python grounded_sam_inpainting_demo.py --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \
    --grounded_checkpoint groundingdino_swint_ogc.pth \
    --sam_checkpoint sam_vit_h_4b8939.pth \
    --input_image assets/inpaint_demo.jpg \
    --output_dir "outputs" \
    --box_threshold 0.3 \
    --text_threshold 0.25 \
    --det_prompt "bench" \
    --inpaint_prompt "A sofa, high quality, detailed"
    
    • 报错处理: 如果遇到ModuleNotFoundError: No module named 'groundingdino',需要修改相关文件的导入路径,例如在groundingdino/datasets/transforms.py中将from groundingdino.util.box_ops import box_xyxy_to_cxcywh改为from ..util.box_ops import box_xyxy_to_cxcywh. 类似地,groundingdino/models/GroundingDINO/groundingdino.pygroundingdino/util/utils.pygroundingdino/models/GroundingDINO/backbone/backbone.pygroundingdino/models/GroundingDINO/backbone/position_encoding.pygroundingdino/models/GroundingDINO/backbone/swin_transformer.pygroundingdino/models/GroundingDINO/transformer.py等文件中的groundingdino模块导入路径都需要进行类似修改,在其前面加上GroundingDINO..
    • 如果遇到ModuleNotFoundError: No module named 'GroundingDINO.segment_anything',请运行 pip install git+https://github.com/facebookresearch/segment-anything.git.
    • 如果遇到RuntimeError: Failed to import diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion_inpaintmodule 'torch' has no attribute 'float8_e4m3fn',请执行 pip uninstall -y diffusers && pip install diffusers==0.11.1.
    • 如果遇到ImportError: cannot import name 'cached_download' from 'huggingface_hub',请执行 pip uninstall -y huggingface-hub && pip install huggingface-hub==0.23.2.
    • 成功运行后,会下载大量模型文件(可能达一二十GB),并生成修复后的图片.
  5. 运行 automatic_label_ram_demo.pyautomatic_label_demo.py:

    python automatic_label_ram_demo.py --ram_checkpoint ram_swin_large_14m.pth \
    --grounded_checkpoint groundingdino_swint_ogc.pth \
    --sam_checkpoint sam_vit_h_4b8939.pth \
    --input_image assets/demo9.jpg \
    --output_dir "outputs" \
    --box_threshold 0.25 \
    --text_threshold 0.2 \
    --iou_threshold 0.5
    

    python automatic_label_demo.py --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \
    --grounded_checkpoint groundingdino_swint_ogc.pth \
    --sam_checkpoint sam_vit_h_4b8939.pth \
    --input_image assets/demo9.jpg \
    --output_dir "outputs" \
    --box_threshold 0.25 \
    --text_threshold 0.2 \
    --iou_threshold 0.5
    
    • 报错处理: 如果遇到ValueError: Unknown scheme for proxy URL URL('socks://127.0.0.1:7981/'),说明代理配置存在问题.
  6. foundationpose_grounded_sam_csdn.py 报错处理:

    • 如果遇到RuntimeError: "sigmoid_cpu" not implemented for 'Half',需要修改代码,确保所有相关操作都在文件中用todo标记.
    • 运行脚本:
      (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python foundationpose_grounded_sam_csdn.py
      (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python foundationpose_sam_mask_gray.py
      

使用步骤

  1. 采集图像: 参考本文件前面的说明.
  2. 图像分割Mask: 使用sem进行图像分割:
    (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python /home/robot/Grounded-Segment-Anything/foundationpose_grounded_sam_my.py
    
  3. Mask标准化: 对上一步生成的mask进行标准化:
    (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python /home/robot/Grounded-Segment-Anything/foundationpose_sam_mask_gray.py
    
    • 会保存调整后的PNG图片,例如outputs/mask_out.png.
    • 将生成的1742097201894254684.png复制到/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/masks/0000001.png.
    • 另一种获取Mask的方法:
      (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/rgb_get_mask.py
      
      输入图像路径,例如/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/rgb/0000001.png,Mask将保存为object_mask.png.
  4. 使用数据集进行检测: 对前面拍摄的RGB图片文件夹进行检测.
    (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/run_demo_csdn.py
    
    • 修改文件中的debug2可以保存检测结果图片.

模型验证与OBJ可视化

  • 验证模型: 导出选定对象,确保物体和空间坐标对齐,Unix导出,目标材质为PNG。路径改为./。导出obj后相关文件名不能改变,因为存在路径关联.

    • 相关文件示例:
      • /home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/lvlian.mtl
      • /home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/lvlian.obj
      • /home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/pm-ps2.png
    • 使用MeshLab打开lvlian.obj:
      (base) robot@robot-System-Product-Name:~/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh$ meshlab lvlian.obj
      
  • Open3D 点云加载与可视化:

    • 加载OBJ文件并可视化,但可能出现可视化为空(0个点)的情况.
      import open3d as o3d
      mesh = o3d.io.read_triangle_mesh("./src/FoundationPose-main/demo_data/lvlian_box/mesh/lvlian.obj",enable_post_processing=False)
      print("顶点数:", len(mesh.vertices))
      print("面片数:", len(mesh.triangles))
      o3d.visualization.draw_geometries([mesh])
      
    • MeshLab打开lvlian.obj需要.mtl.png文件.
    • 从3ds Max制作后用MeshLab加载并导出OBJ,Open3D可以加载OBJ但没有颜色.
    • 加载PLY文件:
      mesh = o3d.io.read_triangle_mesh("/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/lvlian.ply")
      
  • Open3D 加载OBJ和纹理:

    • 代码示例:
      import open3d as o3d
      import os# 定义文件路径
      obj_path = "/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/lvlian.obj"
      texture_path = "/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/pm-ps2.png"# 检查文件是否存在
      if not os.path.exists(obj_path):print(f"错误:OBJ文件 {obj_path} 不存在。")exit()
      if not os.path.exists(texture_path):print(f"错误:纹理文件 {texture_path} 不存在。")exit()# 加载三角网格
      mesh = o3d.io.read_triangle_mesh(obj_path, enable_post_processing=True)
      if mesh.is_empty():print("错误:无法加载OBJ文件。")exit()
      else:print("成功加载OBJ文件。")# 检查纹理坐标
      if not mesh.has_triangle_uvs():print("警告:网格缺少纹理坐标。")
      else:print("纹理坐标存在。")# 加载纹理图像
      try:texture_image = o3d.io.read_image(texture_path)print("成功加载纹理图像。")
      except Exception as e:print(f"错误:无法加载纹理图像 - {e}")texture_image = None# 应用纹理
      if texture_image is not None and mesh.has_triangle_uvs():mesh.textures = [texture_image]print("纹理已应用。")
      else:print("无法应用纹理。")# 可视化模型
      o3d.visualization.draw_geometries([mesh], mesh_show_back_face=True)
      
    • 问题: Open3D默认以左下角为原点,可能需要垂直翻转纹理图像.
    • 成功贴图: 翻转后可以成功贴图:
      (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/mesh/o3d可视化obj.py
      
  • Trimesh 加载 Open3D 可视化:

    • 使用Trimesh加载OBJ并进行可视化,不需要翻转:
      import open3d as o3d
      import trimeshmesh = trimesh.load(mesh_file)  # 读取 3D 物体网格文件mesh_o3d = o3d.geometry.TriangleMesh()
      mesh_o3d.vertices = o3d.utility.Vector3dVector(mesh.vertices)
      mesh_o3d.triangles = o3d.utility.Vector3iVector(mesh.faces)# 如果有纹理,加载并应用
      if hasattr(mesh.visual, 'uv') and hasattr(mesh.visual, 'material'):texture_path = f'{code_dir}/demo_data/lvlian_box/mesh/pm-ps2.png'  # 假设纹理文件路径texture_image = o3d.io.read_image(texture_path)mesh_o3d.triangle_uvs = o3d.utility.Vector2dVector(mesh.visual.uv)mesh_o3d.textures = [texture_image]o3d.visualization.draw_geometries([mesh_o3d])  # 显示网格
      
    • 运行脚本:
      (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/run_demo_csdn_trimesh_test.py
      
  • 进行检测:

    (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/run_demo_csdn_copy.py
    
    • 日志显示成功加载OBJ文件,顶点数和面数正确.

寻求原因与模型调整

  • 机械臂轨迹采集:

    • 通过平板编写机械臂两点之间移动程序,速度和加速度均设置为10,保存为fd_data_collect.json.
    • 采集缓慢移动序列,以便更好地分析问题.
    robot@robot-System-Product-Name:~/elfin_embodied_grasping$ python '/home/robot/elfin_embodied_grasping/src/realsense2_control/realsense2_camera/scripts/fd_data_collect_csdn序列.py'
    
  • Seg提取Mask与检测:

    • Seg提取mask并进行检测时,发现模型移动存在规律,怀疑模型的初始旋转角度不对(结合trimesh打开后的模型角度).
    • 通过MeshLab查看坐标轴,可能需要绕X轴逆时针旋转90度.
    • 旋转后可视化效果改变,但检测结果方向仍不对.
    • MeshLab打开后发现初始姿态也不对,正面朝上应为Z轴,但实际是侧面.
  • MeshLab旋转操作:

    • 导入模型: 通过File > Import Mesh...导入模型文件.
    • 显示坐标轴: Render > Show Axis. (红色X轴,绿色Y轴,蓝色Z轴).
    • 访问旋转滤镜: Filters > Normals, Curvatures and Orientation > Transform: Rotate.
    • 绕X轴旋转90度,导出OBJ模型,发现检测会从正面缓慢转到反面.
    • 重新采集正面数据集:
      robot@robot-System-Product-Name:~/elfin_embodied_grasping$ python '/home/robot/elfin_embodied_grasping/src/realsense2_control/realsense2_camera/scripts/fd_data_collect_采集编号序列.py'
      
    • 使用Seg生成Mask: foundationpose_grounded_sam_my.pyfoundationpose_grounded_sam_csdn.py的区别在于my版本使用自己的图片路径.
      (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python /home/robot/Grounded-Segment-Anything/foundationpose_grounded_sam_my.py
      
    • 生成标准Mask:
      (env_grounded_segment_anything) robot@robot-System-Product-Name:~/Grounded-Segment-Anything$ python /home/robot/Grounded-Segment-Anything/foundationpose_sam_mask_gray.py
      
      输出已保存调整后的 PNG 图片: outputs/mask_out.png.
      1742097201894254684.png复制到/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/lvlian_box/masks/0000001.png.
  • MeshLab其他操作:

    • 加偏移: filters->normals->transform:translate 沿Z轴移动到原点到模型底部,但可能不可行.
    • 1024材质粗糙检测不出.
    • MeshLab参考资料:
      • https://www.bilibili.com/video/BV1Ur4y1N7VM
      • https://www.bilibili.com/video/BV13V4y1R731/
    • 包装平面图: 绿联.
    • B站搜索: 如何制作三维物体贴图.
  • Blender 相关:

    • 只有新建长方体时可以调整尺寸.
    • 中心与坐标系原点重合.
    • 新建/home/robot/Foundationpose_ws/src/FoundationPose-main/demo_data/cube并放入木块数据集,可以成功检测,效果较好. 该OBJ文件由Blender制作.
    • Ubuntu 20.04 应用商店安装Blender (约400多MB).
    • Blender是免费开源的3D创作套件,功能多且支持中文.
    • Blender导出后如果全部勾选,可以可视化.
    • MeshLab导出的模型虽然可以可视化,但程序可能提示WARNING - 网格似乎没有UV坐标,或者MeshLab和Blender底层贴图格式不同. (Blender中模型在纹理着色下有颜色,MeshLab打开的模型也有颜色).
  • Blender 教程参考:

    • 关键词: 贴图 导出 纹理坐标 渲染 烘培 camera视角.
    • 链接示例:
      • https://jingyan.baidu.com/article/6525d4b1347b1eed7d2e94ae.html
      • https://zhuanlan.zhihu.com/p/658676826
      • https://blog.csdn.net/qq_22328011/article/details/130051296
      • https://blog.csdn.net/qq_41835314/article/details/128649015
      • https://blog.csdn.net/qq_44695769/article/details/131616993
      • https://blog.csdn.net/qq_44324007/article/details/131499010
      • https://blog.csdn.net/qq_22328011/article/details/130051296
      • https://www.cnblogs.com/domefy/p/14878961.html
      • https://www.bilibili.com/video/BV1UGmAYEEmA/
      • Blender视频教程: https://www.bilibili.com/video/BV14u41147YH/
  • Blender 操作快捷键:

    1. Alt + Ctrl + E.
    2. A, U, 展开.

最终调试

  • 大尺寸模型在视频中可以检测,但物体旋转方向不变,在图片上偏大. 这是由于导出问题未能正确加载UV,可视化为黑色,贴图为1024k.

  • 小尺寸模型在图片上可以检测,但在视频中检测不出1024k.

  • 新差异: 贴图来源不同,有些是PS制作,有些是Blender不同阶段导出.

  • 数据集来源: D455 ROS控制,机械臂拖拽变为控制,Mask由Grounded-Segment-Anything提取,内参由data_collect.py提取.

  • 最终版流程:

    1. 在Blender的UV编辑页展开,导出UV布局图2048,勾选UV,得到Cube.png.
    2. 在PS中处理Cube.pngCube_new.png.
    3. 在Blender中,将UV编辑页、纹理绘制页、着色页(底部拖拽栏两个)、图片加载的地方的图片都替换为Cube_new.png.
    4. 选中右上角Collection中的Cube,导出OBJ(导出当前选中).
    5. 按截图图片中所有参数全部勾选,得到test.blender.
  • 检测:

    • 第一帧需要检测到物体,然后才能进行跟随.
    (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/run_demo_csdn_copy_copy.py
    (foundationpose) robot@robot-System-Product-Name:~/Foundationpose_ws$ python /home/robot/Foundationpose_ws/src/FoundationPose-main/run_demo_csdn_camera.py
    
    • 尺寸仿真和真实不一致与高度(物体和相机距离)有关.
    • 检测效果与背景、停留时间有关.
    • 操作系统: Ubuntu 20.04.

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

详细视频教程

  • 抖音
    https://v.douyin.com/g4UwgnxksSg/
  • B站
    https://www.bilibili.com/video/BV1mu7JzfEiw/

有幸能用内容陪伴您学习 / 进步,若觉得教程实用,不妨点击关注收藏吧~您的关注是我持续输出干货的动力引擎,期待成为您成长路上的长期伙伴!


http://www.hkcw.cn/article/nMNANsWJMl.shtml

相关文章

某乎x-zse-96 破解(补环境版本)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、总体概述二、请求分析分析请求流程三、逆向分析总结一、总体概述 本文主要实现某乎x-zse-96 破解(补环境版本),相关的链接: https://www.zhihu.com/search?type=content&q=%25E7%258…

智慧物流园区整体解决方案

该智慧物流园区整体解决方案借助云计算、物联网、ICT 等技术,从咨询规划阶段介入,整合供应链上下游资源,实现物流自动化、信息化与智能化。方案涵盖智慧仓储管理(如自动化立体仓储系统、温湿度监控)、智慧物流(运输管理系统 TMS、GPS 监控)、智慧车辆管理(定位、调度、…

车载诊断架构SOVD --- 车辆发现与建连

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

基于 OpenObserve 的轻量级分布式日志存储和追踪方案

一、OpenObserve 介绍 OpenObserve 是一个基于 Rust 开发的开源云原生可观察性平台,专为处理海量数据(如日志、指标和追踪数据)而设计,具有高性能、低成本和易用性等特点。 核心功能和特点: 低成本存储:…

python分配方案数 2023年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

python分配方案数 2023全国青少年信息素养大赛Python编程挑战赛复赛真题解析 博主推荐 所有考级比赛学习相关资料合集【推荐收藏】 1、Python比赛 信息素养大赛Python编程挑战赛 蓝桥杯python选拔赛真题详解 蓝桥杯python省赛真题详解 蓝桥杯python国赛真题详解 2、Py…

【后端高阶面经:架构篇】52、微服务架构:微服务是银弹吗?

一、单体架构的困境:微服务诞生的背景 (一)巨石应用的五大痛点 开发效率低下 单体应用WAR包体积可达数百MB,单次全量编译耗时超30分钟,即使修改一行代码也需重新构建整个项目。案例:某电商早期单体应用包含10万行代码,每次发布需协调15个团队,合并冲突处理耗时占比达4…

C57-断言函数assert

一 基本语法 1. 作用 调试工具&#xff1a;用于运行时检查条件是否成立&#xff0c;若失败则终止程序并报错&#xff08;文件名、行号、条件&#xff09;。 2. 语法 #include <assert.h> assert(condition); // condition为假时触发断言3. 行为 条件为真&#xff1…

免费文本转语音工具体验:祈风TTS使用

简介&#xff1a;语音生成的另一种方式 现在很多人通过视频记录生活&#xff0c;表达观点。拍摄剪辑不难&#xff0c;配音成了常见难题。部分人对自己的声音不够自信&#xff0c;也有人在特定场景下不便出声。文本转语音工具可以成为解决方案。 常见的TTS&#xff08;Text To…

Redis持久化机制详解

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Mistral 推出全新开发者平台Agents API

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

融智学三阶进化模型的全要素可视化解析

摘要&#xff1a;本文提出一种三阶进化模型&#xff0c;通过可视化图表与数学公式阐述人类智慧与人工智能的融合路径。研究构建Mermaid流程图展示"人类智力→形式化智慧→通用AI→超级AI→人机协同"的演进过程&#xff0c;并引入道函数$f_{\mathrm{Tao}}(\mathrm{Ob}…

颠覆传统!单样本熵最小化如何重塑大语言模型训练范式?

颠覆传统&#xff01;单样本熵最小化如何重塑大语言模型训练范式&#xff1f; 大语言模型&#xff08;LLM&#xff09;的训练往往依赖大量标注数据与复杂奖励设计&#xff0c;但最新研究发现&#xff0c;仅用1条无标注数据和10步优化的熵最小化&#xff08;EM&#xff09;方法…

simulink mask、sfunction和tlc的联动、接口

这里全部是讲的level2 sfunction&#xff08;用m语言编写&#xff09;&#xff0c;基于matlab 2020a。 1.mask的参数操作 1&#xff09;mask通过set_param和get_param这2个函数接口对mask里面定义的Parameters&Dialog的参数的大部分属性进行读写&#xff0c;一般是Value值…

【数据结构】图的存储(邻接矩阵与邻接表)

图的存储结构 因为图中既有节点&#xff0c;又有边(节点与节点之间的关系)&#xff0c;因此&#xff0c;在图的存储中&#xff0c;只需要保存&#xff1a;节点和边关系即可。 节点保存比较简单&#xff0c;只需要一段连续空间即可&#xff0c;那边关系该怎么保存呢&#xff1…

C++修炼:unordered_map和unordered_set的使用和封装

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》 欢迎点赞&#xff0c;关注&am…

Centos环境下安装/重装MySQL完整教程

目录 一、卸载残留的MySQL环境&#xff1a; 二、安装MySQL&#xff1a; 1、下载MySQL官方的yum源&#xff1a; 2、更新系统yum源&#xff1a; 3、确保系统中有了对应的MySQL安装包&#xff1a; 4、安装MySQL服务&#xff1a; 5、密钥问题安装失败解决方法&#xff1a; …

【机器学习基础】机器学习入门核心算法:决策树(Decision Tree)

机器学习入门核心算法&#xff1a;决策树&#xff08;Decision Tree&#xff09; 一、算法逻辑1.1 基本概念1.2 算法流程 二、算法原理与数学推导2.1 特征选择指标信息熵&#xff08;ID3算法&#xff09;信息增益&#xff08;Information Gain&#xff09;信息增益率&#xff0…

基于晶体塑性有限元(CPFEM)的钛合金圆棒拉伸过程模拟

作者&#xff1a;辞殇 关键词&#xff1a;CPFEM&#xff1b;钛合金&#xff1b;单轴拉伸&#xff1b;织构极图&#xff1b;孪晶 晶体塑性有限元是一种结合了晶体塑性理论和有限元方法的数值模拟技术‌。这种方法考虑了晶体材料的各向异性、滑移系统的开动和相互作用、以及变形…

开源是什么?我们为什么要开源?

本片为故事类文章推荐听音频哦 软件自由运动的背景 梦开始的地方 20世纪70年代&#xff0c;软件行业处于早期发展阶段&#xff0c;软件通常与硬件捆绑销售&#xff0c;用户对软件的使用、修改和分发权利非常有限。随着计算机技术的发展和互联网的普及&#xff0c;越来越多的开…

帕金森带来的生活困境

当这种健康状况出现&#xff0c;行动不再自如成为最明显的改变。日常行走时&#xff0c;步伐会逐渐变小、变慢&#xff0c;甚至会出现 “小碎步” 往前冲&#xff0c;难以停下&#xff0c;简单的起身、转身都可能变得艰难。手部也会不受控制地颤抖&#xff0c;拿水杯、系纽扣这…