尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
pictures_12的相关工作
处理过程1.补全00061数据集原有的00061数据集缺少朝向类别表orientation.txt和排除朝向类别表no_orientation.txt两个文件需要补全。sofa沙发有正面其余归类为不判断正面2.完善pictures_12代码以适配00061数据集。复制pictures_12并重命名为pictures_zj_1进行修改修改情况如下1.文件顶部注释修改修改成00061的实际结构2.默认输入输出目录修改输入输出3.深度图读取方式4.深度图、位姿、深度内参路径深度图位姿深度内参原本每帧是去camera_poses/0.info.txt找现在新增也就是使用 data/00061/intrinsic/intrinsic_depth.txt5.三维反投影函数的参数名称原本color_intrinsic现在intrinsic实际传入的是intrinsic_depth.txt6.run_point3d_projection()的内参来源和深度单位原流程读 0.info.txt→ 解析 m_calibrationDepthIntrinsic→ 解析 m_depthShift现在读 intrinsic/intrinsic_depth.txt→ 直接读 4×4 矩阵→ 固定 depth_shift 1000.0同时删掉了原本的info_cache用于缓存.info.txt00061用不到7.点云输出 JSON 的说明文字原本相机信息来自每帧 .info.txt深度比例来自 m_depthShift现在相机信息来源intrinsic/intrinsic_depth.txt深度比例来源ScanNet PNG 深度1000 单位等于 1 米8. OBB 朝向阶段读取 RGB 内参和位姿位姿路径RGB内参现在直接读取intrinsic/intrinsic_color.txt在物体朝向阶段会调用9. QA 阶段读取深度图这部分用于空间关系中的深度遮挡、物体前后关系、可见表面距离等判断。这里直接除以1000.0因此 QA 使用的深度值已经是米10. QA 阶段读取 RGB 内参原来load_color_intrinsic()会解析.info.txt中的m_calibrationColorIntrinsic现在直接读取intrinsic/intrinsic_color.txt并取左上角3x3相机内参11. QA 阶段读取位姿和内参路径原本:pose_dir resolve_scan_data_dir(data_root, camera_poses) pose_path pose_dir / f{frame_id}.pose.txt info_path pose_dir / f{frame_id}.info.txt camera_intrinsic load_color_intrinsic(info_path)现在pose_dir data_root / pose color_intrinsic_path ( data_root / intrinsic / intrinsic_color.txt ) pose_path pose_dir / f{frame_id}.txt camera_intrinsic load_color_intrinsic(color_intrinsic_path)QA 阶段不再依赖任何.info.txt3.分割主代码在修整后的pictures_zj_1的基础上将代码分割成两部分第一部分是pictures_zj_1_1负责空间关系生成前的全部工作,余下部分是pictures_zj_2_1。后续修改时重命名会对末尾数字进行改动思路pictures_zj_1_1.py负责的流程类别标签→ VLM 实例识别→ SAM 2 二维分割→ 2D mask 导出与预览→ 三维点云反投影→ 点云清洗→ OBB→ VLM 物体朝向会生成并更新outputs/00061/├─ label.json├─ 2D_segment/├─ 3D_point/├─ 3D_point_clean/├─ 3D_OBB/└─ pipeline_timing.txtpictures_zj_2_1.py负责流程读取第一部分已有结果//需要第一部分提供:outputs/00061/├─ 2D_segment/instances_2d.json├─ 2D_segment/merged_masks/├─ 3D_point_clean/object_3d_points_clean/└─ 3D_OBB/→ 生成空间关系→ 生成 QA→ 输出 QA 汇总和计时最后输出outputs/00061/qa/├─ 帧名_spatial_relationships.json├─ 帧名_qa.json└─ generation_summary.json实现过程按“功能边界”分割pictures_zj_1.py │ ├─ 前半部分 │ 输入、VLM、SAM 2、点云、清洗、OBB、朝向 │ └─ 后半部分 空间关系规则、QA 生成规则具体做法找到空间关系代码的开始位置# Integrated spatial-QA policy for pictures_12 (self-contained)这段之后就是空间关系、拓扑判断、距离题、排序题和 QA 生成代码。创建pictures_zj_1_1.py它保留从文件开头到run_obb_pipeline(...)为止的所有代码。并删除了run_obb_pipeline()末尾原本的generate_inline_spatial_qa(...)所以第一部分完成 OBB 朝向后就结束。修改第一部分的main()原来--qa_only → 直接生成空间关系与 QA现在改为提示空间关系与 QA 已拆到 pictures_zj_2_1.py避免第一部分再去调用已被移走的函数。创建pictures_zj_2_1.py它保留原文件的空间关系和 QA 代码包括evaluate_topology_geometry(...) _generate_wy_zj_spatial_qa(...) apply_cxm2_qa_rules(...) generate_inline_spatial_qa(...)这些函数仍然完整保留在第二部分。第二部分导入第一部分在pictures_zj_2_1.py开头import pictures_zj_1_1 as upstream然后复用第一部分已有的公共内容路径配置 00061 的深度和内参适配 点云与 OBB 数据结构 JSON 工具函数 计时器 相机和几何工具函数给第二部分写了独立main()第二部分启动时只检查data/00061 是否存在 outputs/00061/3D_OBB 是否存在 outputs/00061/2D_segment/instances_2d.json 是否存在检查通过后只执行generate_inline_spatial_qa(...)因此它不会加载 SAM 2、不请求 VLM、不重新生成点云或 OBB。补充关于计时文件第一部分pipeline_timing.txt第二部分pipeline_timing_qa.txt上一步补全代码时遗漏了 处理读取info_path的问题现做修改两处第一部分info_path: str(info_path) if info_path.exists() else ,改为info_path: ,第二部分source_camera_info: str(info_path)改为source_camera_info: 4.在服务器上的操作记录1.上传项目文件夹2.搭建环境1.创建虚拟环境conda create --name SAM2_zj python3.102.激活虚拟环境conda activate SAM2_zjShell 终端没有自动加载 Conda 初始化脚本重新激活source /opt/conda/etc/profile.d/conda.sh conda activate SAM2_zj3.查看支持的cuda版本conda search cudatoolkit --infourl : https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda4.下载 cudatoolkit​ wget https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda ​5.安装cudatoolkitconda install ./cudatoolkit-11.8.0-h4ba93d1_13.conda检查是否安装成功conda list cudatoolkit6.安装cudnn查看支持版本conda search cudnn --info下载wget https://conda.anaconda.org/conda-forge/linux-64/cudnn-9.3.0.75-hc149ed2_0.conda安装conda install ./cudnn-9.3.0.75-hc149ed2_0.conda检查安装成功conda list cudnn7.torch安装pip install --isolated --retries 5 --timeout 120 torch2.5.1 torchvision0.20.1 --index-url https://download.pytorch.org/whl/cu118检查conda list | grep -E torch|torchvision|torchmetrics8.其他依赖env -u PIP_EXTRA_INDEX_URL PIP_CONFIG_FILE/dev/null pip install -r requirements.txt -i https://pypi.org/simple ​3.确认SAM2源码正确导入PYTHONPATH./models python -c from sam2.build_sam import build_sam2; from sam2.sam2_image_predictor import SAM2ImagePredictor; print(SAM2 导入成功)至此环境、PyTorch、CUDA、SAM2 依赖全部正常4.pictures_zj_1_1的运行加载并初始化 Conda 环境source /opt/conda/etc/profile.d/conda.sh激活名为SAM2_zj的虚拟环境:conda activate SAM2_zj切换当前工作目录:cd /djtu48/SAM2_zj/SAM2_zj打印当前工作目录pwd应显示/djtu48/SAM2_zj/SAM2_zj在当前目录下创建一个名为outputs的文件夹并在里面再创建一个名为00061的子文件夹:记录输出mkdir -p outputs/00061启动当前任务指定使用第一块显卡在后台静默运行一个 Python 脚本处理图像并将结果输出到指定的文件夹中CUDA_VISIBLE_DEVICES0 nohup python -u tools/pictures/pictures_zj_1_1.py --scan_root data/00061 --output_dir outputs/00061 --skip_label_generation --label_file outputs/00061/label.json --device cuda:0 --log_level INFO outputs/00061/server_stage.log 21 查看日志tail -f outputs/00061/server_stage.log下一次重新进入shell查看进度source /opt/conda/etc/profile.d/conda.shconda activate SAM2_zjcd /djtu48/SAM2_zj/SAM2_zjtail -f outputs/00061/server_stage.log如果想确认任务是否还在运行ps -p 22075 -o pid,stat,cmd结果输出outputs/00061/├─ label.json├─ 2D_segment/│ └─ instances_2d.json├─ 3D_point/├─ 3D_point_clean/│ └─ object_3d_points_clean.json├─ 3D_OBB/├─ pipeline_timing.txt└─ server_stage.log5.本机操作记录空间关系问答对E:\project\3D\sam2-main_2 - 副本测试环境.\.venv\Scripts\python.exe tools\pictures\pictures_zj_2_1.py --help执行命令.\.venv\Scripts\python.exe tools\pictures\pictures_zj_2_1.py --scan_root data\00061 --output_dir outputs\00061 --log_level INFO读取outputs/00061/2D_segment/outputs/00061/3D_point_clean/outputs/00061/3D_OBB/输出outputs/00061/qa/outputs/00061/pipeline_timing_qa.txt筛选人工每类抽取20条考虑到不是每类都是100这里取最小数题型当前数量multi_between80multi_single_anchor_positional_topological20order_object_center_distance67order_object_visible_surface_distance67为适配数据集这部分做了一些小调整具体如下shaixuan_qa_zj_1.py原内容改为说明为pictures_12、每类 100 条00061、每类 20 条outputs/pictures_14outputs/00061输入outputs/pictures_14/qa/qa_pairs.jsonoutputs/00061/qa/qa_pairs.json输出outputs/pictures_14/evaluation/evaluation_qa.jsonoutputs/00061/evaluation/evaluation_qa.jsonRGB 路径data/pictures/colordata/00061/coloroverlay 路径outputs/pictures_14/2D_segment/overlayoutputs/00061/2D_segment/overlaySAMPLES_PER_TYPE 100SAMPLES_PER_TYPE 2020x18条题目抽取.\.venv\Scripts\python.exe tools\qa\shaixuan_qa_zj_1.py人工审核原位置/内容新内容data/picturesdata/00061outputs/pictures_12outputs/00061默认评测目录outputs/00061/evaluation默认 RGB 图目录data/00061/color默认 overlay 目录outputs/00061/2D_segment/overlay默认评测文件说明中的“全部子类、分组文件”改为“00061 的全部待审核题目”左右关系辅助文件的查找目录outputs/pictures_12/qaoutputs/00061/qa重绘审核叠加图时读取的2D_segment目录outputs/00061/2D_segment文件选择框标题、命令行帮助、路径解析说明中pictures_12全部改为00061manifest 的旧数据集说明改为 00061 不使用 manifest.\.venv\Scripts\python.exe tools\view\manual_answer_3.py --input outputs\00061\evaluation\evaluation_qa.json
RELATED

相关推荐

(论文速读)IterativePFN:让点云去噪真正学会迭代

(论文速读)IterativePFN:让点云去噪真正学会迭代

论文题目: IterativePFN: True Iterative Point Cloud Filtering(IterativePFN:真正的迭代式点云滤波) 会议: CVPR 2023 摘要: 点云质量常受到采集噪声影响,因此去噪是三维视觉中的基础任务。现…

📅 2026/11/6 6:33:34
项目资金闭环如何用大模型分析

项目资金闭环如何用大模型分析

项目资金闭环分析的核心是把资金来源、拨付、合同、发票、付款、保证金、决算、审计之间的勾稽链条组织起来,让每一笔资金的来路与去向都能追溯,让链条上的断点能被自动发现。多数企业的资金问题不是账不平,而是"不知道哪里不平"—…

📅 2026/11/6 6:33:34
国产长芯微LP7415完全pin-pin替代TPS7A4700,40V、1A快速动态响应超低噪声LDO

国产长芯微LP7415完全pin-pin替代TPS7A4700,40V、1A快速动态响应超低噪声LDO

产品描述LP7415 是一款低压差稳压器,专为低噪声和快速瞬态响应而优化。该器件能够提供 1A 的输出电流, 典型压降为 276mV。工作静态电流为 1mA,关机时降至 1μA,同时压差模式下静态电流控制良好。除了快速瞬态响应外,L…

📅 2026/11/6 6:33:34
MORE NEWS

更多资讯

📰

GD32H759+RT-Thread SPI驱动实战:时序、设备框架与Cache一致性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

LLC谐振变换器设计实战:原理、公式与参数计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

嵌入式内存管理实战:从地址映射到malloc与泄漏排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

国产MCU替换STM32F103在GPS平台的四层重构实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

ESP32物联网参考设计优先级排序:从esp-idf到社区项目的筛选逻辑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

从源码到真机:LineageOS编译刷入与增量构建实践

1. 从零跑通一套自己编的系统镜像,到底值不值把LineageOS 的代码下载、编译及真机运行这条链路完整走一遍,我前后折腾过七八次,最早那次是在一台只有 8G 内存的旧笔记本上,编译到一半被 OOM 杀掉,第二天起床看到终端里…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬