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

Lingbot-Depth-Pretrain-ViTL-14 实战:Python爬虫获取图像数据并生成深度图

Lingbot-Depth-Pretrain-ViTL-14 实战Python爬虫获取图像数据并生成深度图你是不是也遇到过这样的场景手头有一个很棒的深度估计模型比如 Lingbot-Depth-Pretrain-ViTL-14想用它来为自己的项目生成深度图却发现找不到合适的数据集公开数据集要么场景不匹配要么图片质量参差不齐自己一张张去网上找图、下载、整理又太费时费力。今天我们就来解决这个痛点。我将带你搭建一个完全自动化的流水线用 Python 爬虫从目标网站精准抓取你需要的场景图片然后调用 Lingbot-Depth 模型批量生成高质量的深度图。整个过程就像搭积木一样简单最终你能得到一个完全自定义、贴合你项目需求的深度估计数据集。1. 场景与痛点为什么需要自动化流水线在计算机视觉项目里数据往往是决定成败的关键。对于深度估计任务一个高质量、场景匹配的数据集更是可遇不可求。传统的做法通常是手动收集图片——打开浏览器搜索关键词一张张保存再整理命名。这个过程不仅枯燥效率极低而且难以保证数据的规模和一致性。更麻烦的是当你有了几百张原始图片后还需要一张张地喂给深度估计模型去处理。如果模型没有现成的批量处理接口或者你需要对生成结果进行后处理那又将是一个手动操作的噩梦。因此一个将数据采集爬虫与数据处理深度估计串联起来的自动化流水线就显得非常有必要。它能将你从重复劳动中解放出来让你更专注于模型调优和结果分析。我们这次要构建的正是这样一个“端到端”的解决方案。2. 方案设计从爬虫到深度图的完整流程我们的目标是构建一个稳定、高效且易于维护的自动化脚本。整个流程可以清晰地分为三个核心阶段2.1 第一阶段目标数据采集Python爬虫这是流水线的起点。我们将使用 Python 中强大且易用的requests和BeautifulSoup库来编写爬虫。核心任务包括模拟请求向目标图片网站发送网络请求获取网页HTML内容。解析内容从复杂的HTML代码中精准定位并提取出图片的URL链接。下载存储将图片下载到本地指定的文件夹中并按照规则命名如序列号、关键词等为后续处理做好准备。这一阶段的关键在于稳健性要能处理网络异常、反爬机制以及各种不同的网页结构。2.2 第二阶段深度图生成Lingbot-Depth模型这是流水线的核心处理环节。我们将部署并使用 Lingbot-Depth-Pretrain-ViTL-14 模型。这个基于 Vision Transformer 的模型在深度估计任务上表现出色。在这一阶段我们需要环境配置确保PyTorch、Transformers等深度学习库就绪。模型加载从Hugging Face等平台加载预训练好的 Lingbot-Depth 模型和处理器。批量推理读取第一阶段下载的图片批量送入模型进行预测得到对应的深度估计图。2.3 第三阶段结果整理与归档流水线的最后一步是“包装”。我们需要将原始图片和其生成的深度图一一对应地保存好通常会存储为易于后续使用的格式例如创建两个文件夹images/和depths/并确保文件名一致方便索引。你也可以选择生成一个记录了所有图片路径和元数据的CSV文件这对于大型数据集管理非常有用。整个方案的架构如下图所示三个环节环环相扣最终输出我们想要的数据集[目标网站] - [Python爬虫] - [原始图片库] - [Lingbot-Depth模型] - [深度图库] - [自定义数据集]3. 实战开始搭建你的自动化流水线接下来我们一步步实现上述设计。请确保你的Python环境已安装必要库pip install requests beautifulsoup4 pillow transformers torch。3.1 编写一个简单的图片爬虫我们以一个允许爬取且图片结构清晰的示例网站为例。请注意在实际应用中务必遵守目标网站的robots.txt协议并尊重版权。import os import requests from bs4 import BeautifulSoup from urllib.parse import urljoin import time def fetch_images_from_web(keyword, max_images50, save_dir./downloaded_images): 从示例图片网站爬取与关键词相关的图片。 注意此代码仅为示例实际使用时请替换URL并遵守网站规定。 # 创建保存目录 os.makedirs(save_dir, exist_okTrue) # 示例构建搜索URL这里需要替换为实际可用的图片网站API或搜索页面 # 假设我们有一个模拟的图片网站URL结构 base_url fhttps://example.com/search?q{keyword} headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 } try: response requests.get(base_url, headersheaders, timeout10) response.raise_for_status() except requests.RequestException as e: print(f请求网页失败: {e}) return [] soup BeautifulSoup(response.text, html.parser) # 假设图片链接在带有src属性的img标签中这里的选择器需要根据实际网站调整 img_tags soup.find_all(img, limitmax_images) downloaded_paths [] for i, img_tag in enumerate(img_tags): img_url img_tag.get(src) if not img_url: continue # 处理相对路径 img_url urljoin(base_url, img_url) # 下载图片 try: img_data requests.get(img_url, headersheaders, timeout10).content # 生成文件名 file_name f{keyword}_{i:04d}.jpg file_path os.path.join(save_dir, file_name) with open(file_path, wb) as f: f.write(img_data) downloaded_paths.append(file_path) print(f已下载: {file_name}) time.sleep(0.5) # 礼貌性延迟避免对服务器造成压力 except Exception as e: print(f下载 {img_url} 失败: {e}) print(f爬取完成共下载 {len(downloaded_paths)} 张图片到 {save_dir}。) return downloaded_paths # 使用示例爬取“室内设计”相关图片 image_paths fetch_images_from_web(interior_design, max_images30)关键点说明这个爬虫函数定义了目标关键词、下载数量和支持目录。它解析网页提取图片链接并下载保存。time.sleep是重要的道德爬虫实践避免请求过快。3.2 调用Lingbot-Depth模型批量生成深度图现在我们用下载好的图片来批量生成深度图。这里使用 Hugging Facetransformers库来调用模型。from PIL import Image import torch from transformers import AutoImageProcessor, AutoModelForDepthEstimation import numpy as np def generate_depth_maps(image_paths, output_dir./depth_maps): 使用 Lingbot-Depth-Pretrain-ViTL-14 模型为图片列表生成深度图。 os.makedirs(output_dir, exist_okTrue) # 1. 加载模型和处理器 print(正在加载 Lingbot-Depth 模型...) processor AutoImageProcessor.from_pretrained(lingbot/Depth-Pretrain-ViTL-14) model AutoModelForDepthEstimation.from_pretrained(lingbot/Depth-Pretrain-ViTL-14) device torch.device(cuda if torch.cuda.is_available() else cpu) model.to(device) model.eval() print(模型加载完毕。) depth_paths [] for img_path in image_paths: try: # 2. 准备图像 image Image.open(img_path).convert(RGB) inputs processor(imagesimage, return_tensorspt).to(device) # 3. 模型推理 with torch.no_grad(): outputs model(**inputs) predicted_depth outputs.predicted_depth # 4. 后处理调整深度图尺寸并保存 prediction torch.nn.functional.interpolate( predicted_depth.unsqueeze(1), sizeimage.size[::-1], # 调整到原图尺寸 (H, W) modebicubic, align_cornersFalse, ).squeeze() # 归一化并转换为PIL图像 output prediction.cpu().numpy() formatted (output * 255 / np.max(output)).astype(uint8) depth_image Image.fromarray(formatted) # 5. 保存深度图 base_name os.path.splitext(os.path.basename(img_path))[0] depth_file_name f{base_name}_depth.png depth_file_path os.path.join(output_dir, depth_file_name) depth_image.save(depth_file_path) depth_paths.append(depth_file_path) print(f已生成深度图: {depth_file_name}) except Exception as e: print(f处理图片 {img_path} 时出错: {e}) print(f深度图生成完成共处理 {len(depth_paths)} 张保存在 {output_dir}。) return depth_paths # 使用示例为爬取的图片生成深度图 depth_map_paths generate_depth_maps(image_paths)代码解读这段代码完成了深度估计的核心流程。它先加载模型然后遍历每张图片进行预处理、模型推理、后处理调整尺寸和归一化最后将深度图保存为灰度图像。深度图中越亮的区域代表距离越近越暗的区域代表距离越远。3.3 整合与自动化让流水线跑起来最后我们将两个部分串联起来形成一个完整的脚本。我们还可以增加一些简单的数据整理功能比如生成一个清单文件。import csv def build_depth_dataset(keyword, num_images30): 完整的自动化流水线爬取图片 - 生成深度图 - 创建数据集清单。 print( 开始构建深度估计数据集 ) # 步骤1爬取图片 print(f\n[阶段1] 正在爬取 {keyword} 相关图片...) raw_image_dir f./data/{keyword}_images image_list fetch_images_from_web(keyword, max_imagesnum_images, save_dirraw_image_dir) if not image_list: print(图片爬取失败流程终止。) return # 步骤2生成深度图 print(f\n[阶段2] 正在批量生成深度图...) depth_map_dir f./data/{keyword}_depth_maps depth_list generate_depth_maps(image_list, output_dirdepth_map_dir) # 步骤3创建数据集清单CSV print(f\n[阶段3] 创建数据集清单...) csv_path f./data/{keyword}_dataset.csv with open(csv_path, w, newline, encodingutf-8) as csvfile: writer csv.writer(csvfile) writer.writerow([image_id, image_path, depth_map_path]) for img_path, depth_path in zip(image_list, depth_list): img_id os.path.splitext(os.path.basename(img_path))[0] writer.writerow([img_id, os.path.abspath(img_path), os.path.abspath(depth_path)]) print(f数据集清单已保存至: {csv_path}) print( 数据集构建完成 ) print(f原始图片位置: {raw_image_dir}) print(f深度图位置: {depth_map_dir}) # 运行完整流程 if __name__ __main__: build_depth_dataset(mountain_landscape, num_images20)运行这个脚本它会自动创建data/文件夹里面包含原始图片、深度图和一个CSV清单文件。一个专属于你的“山地景观”深度估计数据集就诞生了。4. 应用场景与扩展思路这个自动化流水线不仅仅是一个技术演示它能直接应用于多个实际场景机器人导航与SLAM快速构建特定室内或室外环境如仓库、家庭的深度数据集用于训练或验证视觉导航算法。3D重建与AR/VR采集一批物体或场景的图片生成深度信息作为3D建模或增强现实应用的输入数据。自动驾驶模拟针对不同的天气、路况如雨天、雪天、城市、高速公路构建对应的深度估计测试集。学术研究当研究新的深度估计模型时需要特定领域的数据进行测试或微调这个流水线可以快速生成所需数据。你还可以对这个基础流水线进行扩展让它更强大爬虫增强处理更复杂的网站如需要登录、滚动加载使用Selenium等工具。数据清洗在生成深度图前加入图片质量过滤如去除模糊、分辨率过低的图片。后处理优化对生成的深度图进行滤波、平滑等处理提升质量。任务调度将脚本部署到服务器设置定时任务实现数据集的定期自动更新。5. 总结通过这次实战我们把看似独立的两个技术——Python爬虫和深度学习模型推理——巧妙地结合在了一起构建了一个实用的自动化数据生产工具。整个过程清晰展示了如何从实际需求出发设计流程编写代码最终解决“数据获取难”的问题。实际操作下来你会发现爬虫部分需要根据目标网站灵活调整这是最需要耐心和技巧的地方。而模型调用部分得益于transformers这样的高级库变得异常简单。这种“复杂问题简单化重复工作自动化”的思路正是提升开发效率的关键。你可以随意修改脚本中的关键词尝试构建不同主题的数据集比如“城市街景”、“办公桌面”或“宠物照片”。动手跑一遍感受一下从无到有创造数据的成就感吧。有了这套方法数据将不再是你项目创新的瓶颈。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

Lingbot-Depth-Pretrain-ViTL-14 实战:Python爬虫获取图像数据并生成深度图

Lingbot-Depth-Pretrain-ViTL-14 实战:Python爬虫获取图像数据并生成深度图 你是不是也遇到过这样的场景:手头有一个很棒的深度估计模型,比如 Lingbot-Depth-Pretrain-ViTL-14,想用它来为自己的项目生成深度图,却发现…...

Qwen3-VL-WEBUI效果实测:对比其他模型,看看优势在哪里

Qwen3-VL-WEBUI效果实测:对比其他模型,看看优势在哪里 1. 引言:当AI不仅能“看”,还能“做” 想象一下,你给AI看一张软件界面的截图,它不仅能告诉你界面上有什么,还能一步步指导你如何操作&am…...

OpenClaw+nanobot镜像:个人社交媒体监控系统搭建

OpenClawnanobot镜像:个人社交媒体监控系统搭建 1. 为什么需要个人社交媒体监控系统 作为一个长期关注技术趋势的博主,我经常需要追踪社交媒体上的热点话题和关键词变化。过去我都是手动刷新各个平台,不仅效率低下,还容易错过关…...

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图 1. 引言:视频抠图的挑战与机遇 视频抠图技术一直是影视后期和直播领域的核心需求。传统方法在处理动态场景时常常面临边缘闪烁、细节丢失和时间不一致等问题。想象一下,当你在视频会议…...

Arduino库管理终极指南:在VS Code中如何优雅添加自定义头文件(避坑版)

Arduino库管理终极指南:在VS Code中优雅添加自定义头文件 第一次在VS Code里看到"fatal error: my_library.h: No such file or directory"的红色报错时,我盯着屏幕发了五分钟呆。作为从Arduino IDE转战VS Code的老玩家,本以为能无…...

除了CAN总线,UDS协议还能跑在哪些车上?手把手带你用Wireshark抓包分析

突破CAN总线限制:UDS协议在多种车载网络中的实战解析 当提到UDS(Unified Diagnostic Services)诊断协议时,大多数工程师的第一反应是它与CAN总线的紧密关联。确实,在传统汽车电子架构中,UDS over CAN是最常…...

基于Koopman算子的四旋翼无人机MPC控制开发:一种创新的数据驱动方法

318-一种基于Koopman算子的模型预测控制MPC控制四旋翼无人机开发 简介: 一种基于Koopman算子和扩展动态模式分解(EDMD)的四旋翼无人机学习和控制的新型数据驱动方法。 基于欧拉角(表示方向)等传统方法构建EDMD的观测器已知涉及奇异性。 为了解决这个问题&#xff0c…...

【自然语言处理】BERTopic:解决文本主题分析的5个创新方案

#【自然语言处理】BERTopic:解决文本主题分析的5个创新方案 【免费下载链接】BERTopic Leveraging BERT and c-TF-IDF to create easily interpretable topics. 项目地址: https://gitcode.com/gh_mirrors/be/BERTopic 在信息爆炸的时代,如何从海…...

STK 实战:多类型传感器(Sensor)协同探测与可见性分析

1. STK与多传感器协同探测基础 STK(Systems Tool Kit)是航天领域广泛使用的仿真分析软件,它能够对复杂系统中的传感器进行高精度建模。在实际应用中,单个传感器往往难以满足全方位监测需求,这时就需要多传感器协同工作…...

RPCS3终极指南:在电脑上完美运行PS3游戏的完整教程

RPCS3终极指南:在电脑上完美运行PS3游戏的完整教程 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 还在为无法重温经典PS3游戏而烦恼吗?RPCS3作为全球领先的免费开源PlayStation 3模拟器…...

Qwen3-ASR-0.6B实战:一键部署,轻松实现多语言语音转文字

Qwen3-ASR-0.6B实战:一键部署,轻松实现多语言语音转文字 最近在语音识别领域,阿里云通义千问团队推出的Qwen3-ASR-0.6B模型引起了我的注意。这个模型最大的亮点就是支持52种语言和方言,而且只有0.6B参数,在精度和效率…...

虚拟机异常断电后卡在initramfs阶段?手把手教你用xfs_repair修复系统分区

1. 虚拟机异常断电的常见后果 最近在调试一个基于KVM的虚拟机集群时,遇到了一个典型问题:机房突然断电后,几台虚拟机重启时卡在了initramfs阶段,屏幕上不断刷出"generating /run/initramfs/rdsosreport.txt"的提示。这种…...

ROCm零基础入门实战指南:从环境搭建到高性能计算

ROCm零基础入门实战指南:从环境搭建到高性能计算 【免费下载链接】ROCm AMD ROCm™ Software - GitHub Home 项目地址: https://gitcode.com/GitHub_Trending/ro/ROCm AMD ROCm(Radeon Open Compute)是一套开源GPU计算平台&#xff0c…...

不止于模拟器:在Windows10上用VS2019+QEMU调试EDK2 UEFI应用的完整流程

从零构建UEFI开发环境:VS2019与QEMU深度整合实战指南 在当今固件开发领域,UEFI已逐步取代传统BIOS成为主流标准。对于开发者而言,搭建一个高效的UEFI开发环境是进行底层系统开发的第一步。本文将带你深入探索如何在Windows10平台上&#xff0…...

Reset Windows Update Tool:开源工具解决Windows更新问题的3个高效方案

Reset Windows Update Tool:开源工具解决Windows更新问题的3个高效方案 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...

Kubernetes 与边缘计算集成最佳实践

Kubernetes 与边缘计算集成最佳实践 一、前言 哥们,别整那些花里胡哨的。边缘计算是现代云原生架构的重要组成部分,今天直接上硬货,教你如何在 Kubernetes 中集成边缘计算。 二、边缘计算架构模式 模式适用场景优势劣势集中式简单场景管理简单…...

Z-Image Turbo与Vue3前端框架集成实战

Z-Image Turbo与Vue3前端框架集成实战 本文详细介绍了如何在Vue3项目中集成Z-Image Turbo图像生成API,通过WebSocket实现实时图像生成功能,并提供完整的组件封装方案。 1. 引言 前端开发者经常面临一个挑战:如何在Web应用中集成强大的AI图像…...

SolidWorks 与 CATIA 模型转换实战:从本地操作到云端解决方案

1. 为什么需要SolidWorks与CATIA模型转换 在机械设计领域,SolidWorks和CATIA就像两个说着不同语言的工程师。SolidWorks以其直观的操作界面和强大的参数化建模能力,成为中小企业和教育机构的首选工具。而CATIA则凭借在复杂曲面设计和高端制造领域的深厚积…...

Hive与MySQL集成配置全流程解析

1. Hive与MySQL集成的核心价值 在企业级大数据环境中,Hive作为数据仓库工具经常需要处理PB级数据。但默认的Derby元数据库存在单会话限制和性能瓶颈,这正是MySQL大显身手的地方。我经历过多次生产环境迁移,将元数据从Derby切换到MySQL后&…...

Kubernetes 与 AI 集成最佳实践

Kubernetes 与 AI 集成最佳实践 一、前言 哥们,别整那些花里胡哨的。Kubernetes 与 AI 集成是现代云原生架构的重要趋势,今天直接上硬货,教你如何在 Kubernetes 中部署和管理 AI 工作负载。 二、AI 工作负载类型 类型特点资源需求训练工作负载…...

解锁外语游戏新体验:XUnity自动翻译器完全指南 [特殊字符]

解锁外语游戏新体验:XUnity自动翻译器完全指南 🎮 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏中的生涩文本而苦恼吗?XUnity自动翻译器让你轻松打破语…...

Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署

Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署 1. 像素幻梦创意工坊概述 Pixel Dream Workshop(像素幻梦创意工坊)是一款专为像素艺术创作设计的AI生成工具,基于最新的FLUX.1-dev扩散模型构建。与传统AI绘…...

高效实用的Notepad2文本编辑器:从入门到精通的全方位指南

高效实用的Notepad2文本编辑器:从入门到精通的全方位指南 【免费下载链接】notepad2 Notepad2-zufuliu is a light-weight Scintilla based text editor for Windows with syntax highlighting, code folding, auto-completion and API list for many programming l…...

如何使用usearch进行水资源分配优化:用水数据的向量分析完整指南

如何使用usearch进行水资源分配优化:用水数据的向量分析完整指南 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & 🔜 Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, Go…...

Bypass Paywalls Clean:突破内容壁垒的智能解决方案

Bypass Paywalls Clean:突破内容壁垒的智能解决方案 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的今天,你是否曾因学术论文被付费墙阻挡而错失研…...

Fast-F1数据洞察:赛车数据分析实战的非传统路径

Fast-F1数据洞察:赛车数据分析实战的非传统路径 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fast-F1 你…...

别再手动发卡了!2025新版ZFAKA搭配宝塔面板,30分钟搞定你的专属自动售卡站

2025年ZFAKA自动售卡系统:零基础30分钟搭建全攻略 在数字商品交易日益火爆的今天,手动处理订单不仅效率低下,还容易出错。想象一下凌晨三点被订单提醒吵醒,手忙脚乱地复制卡密发给买家——这种场景对于个体创业者来说再熟悉不过了…...

LabelImg图像标注工具:3分钟掌握高效目标检测数据标注技巧

LabelImg图像标注工具:3分钟掌握高效目标检测数据标注技巧 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check ou…...

从MobileNet到FasterNet:一个ARM安卓开发者的轻量级模型选型与部署实战笔记

从MobileNet到FasterNet:ARM安卓开发者的轻量级模型选型与部署实战 在移动端AI应用开发中,模型选型往往是一场精度与速度的博弈。作为一名长期奋战在ARM平台部署一线的工程师,我经历过太多次这样的场景:产品经理要求"既要实时…...

智能求职工具GetJobs:让你的投递效率提升300%的全流程指南

智能求职工具GetJobs:让你的投递效率提升300%的全流程指南 【免费下载链接】get_jobs 💼【找工作最强助手】全平台自动投简历脚本:(boss、前程无忧、猎聘、拉勾、智联招聘) 项目地址: https://gitcode.com/gh_mirrors/ge/get_jobs 每天…...