训练一个基于 ResNet 的回归模型来预测街景图片_旨在研究人们如何通过视觉感知来评估城市的街道环境。可用于训练街景感知评分模型_街景数据集
MIT Place Pulse 2.0 是一个大型的城市街景感知数据集旨在研究人们如何通过视觉感知来评估城市的街道环境。该数据集收集了全球50多个地区的11万张街景图片并通过众包平台让参与者对这些图片在六个不同的感知维度上进行评分。这些感知维度包括美丽Beauty这条街看起来有多美安全Safety在这条街上走动感觉有多安全繁华Liveliness这条街看起来有多繁华富裕Wealth这条街看起来有多富裕独特性Unique这条街看起来有多独特无聊Boring这条街看起来有多无聊数据集结构图片数量11万张街景图片。来源全球50多个地区。格式JPEG。标签感知评分每个图片在上述六个感知维度上的评分。格式CSV文件包含图片路径和对应的感知评分。数据集下载你可以从 MIT Place Pulse 2.0 的官方网站或 GitHub 仓库下载数据集。以下是下载链接官方网站MIT Place Pulse 2.0GitHub 仓库PlacePulse数据集文件结构下载后的数据集通常会有一个类似如下的目录结构深色版本PlacePulse2.0/├── images/│ ├── 000001.jpg│ ├── 000002.jpg│ └── …├── labels/│ ├── beauty.csv│ ├── safety.csv│ ├── liveliness.csv│ ├── wealth.csv│ ├── unique.csv│ └── boring.csv└── README.mdCSV 文件格式每个感知维度的标签文件如 beauty.csv通常包含以下列image_path图片的相对路径。score该图片在特定感知维度上的评分。例如beauty.csv 可能如下所示深色版本image_path,scoreimages/000001.jpg,4.5images/000002.jpg,3.2…数据预处理在使用数据集之前通常需要进行一些预处理步骤以便于后续的模型训练和评估。以下是一个简单的预处理示例python深色版本import pandas as pdimport osfrom PIL import Imageimport torchfrom torch.utils.data import Dataset, DataLoaderfrom torchvision import transforms读取标签文件def load_labels(file_path):return pd.read_csv(file_path)自定义数据集类class StreetViewDataset(Dataset):definit(self, csv_file, root_dir, transformNone):self.labels load_labels(csv_file)self.root_dir root_dirself.transform transformdef __len__(self): return len(self.labels) def __getitem__(self, idx): img_name os.path.join(self.root_dir, self.labels.iloc[idx, 0]) image Image.open(img_name).convert(RGB) score self.labels.iloc[idx, 1] if self.transform: image self.transform(image) return image, score数据变换transform transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225])])创建数据集实例root_dir ‘PlacePulse2.0/images/’csv_file ‘PlacePulse2.0/labels/beauty.csv’dataset StreetViewDataset(csv_file, root_dir, transformtransform)创建数据加载器dataloader DataLoader(dataset, batch_size32, shuffleTrue, num_workers4)检查数据for images, scores in dataloader:print(images.shape, scores.shape)break训练模型你可以使用上述数据集和数据加载器来训练一个深度学习模型例如使用ResNet进行回归任务。以下是一个简单的训练示例python深色版本import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision.models import resnet50定义模型model resnet50(pretrainedTrue)model.fc nn.Linear(model.fc.in_features, 1) # 修改最后一层为回归输出将模型移到GPUdevice torch.device(“cuda” if torch.cuda.is_available() else “cpu”)model.to(device)定义损失函数和优化器criterion nn.MSELoss()optimizer optim.Adam(model.parameters(), lr0.001)训练模型num_epochs 10for epoch in range(num_epochs):model.train()running_loss 0.0for images, scores in dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)optimizer.zero_grad() outputs model(images) loss criterion(outputs, scores) loss.backward() optimizer.step() running_loss loss.item() * images.size(0) epoch_loss running_loss / len(dataset) print(fEpoch [{epoch1}/{num_epochs}], Loss: {epoch_loss:.4f})保存模型torch.save(model.state_dict(), ‘street_view_perception_model.pth’)评估模型训练完成后你可以使用测试集来评估模型的性能python深色版本加载测试数据集test_dataset StreetViewDataset(‘PlacePulse2.0/labels/beauty_test.csv’, root_dir, transformtransform)test_dataloader DataLoader(test_dataset, batch_size32, shuffleFalse, num_workers4)评估模型model.eval()with torch.no_grad():total_mse 0.0for images, scores in test_dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)outputs model(images)mse criterion(outputs, scores)total_mse mse.item() * images.size(0)test_mse total_mse / len(test_dataset) print(fTest MSE: {test_mse:.4f})总结通过以上步骤你可以使用 MIT Place Pulse 2.0 数据集来训练和评估一个街景感知评分模型。这个数据集提供了丰富的街景图片和多维度的感知评分非常适合用于研究城市环境的视觉感知下面是一个详细的步骤指南以使用 MIT Place Pulse 2.0 数据集为例训练一个基于 ResNet 的回归模型来预测街景图片的感知评分。一、数据准备下载数据集首先确保你已经从 MIT Place Pulse 2.0 的官方网站或 GitHub 仓库下载了数据集。解压数据集将下载的数据集解压到指定的目录中例如 PlacePulse2.0。读取标签文件每个感知维度的标签文件如 beauty.csv包含图片路径和对应的评分。二、数据预处理自定义数据集类创建一个自定义的 PyTorch 数据集类来加载和预处理数据。python深色版本import pandas as pdimport osfrom PIL import Imageimport torchfrom torch.utils.data import Dataset, DataLoaderfrom torchvision import transforms读取标签文件def load_labels(file_path):return pd.read_csv(file_path)自定义数据集类class StreetViewDataset(Dataset):definit(self, csv_file, root_dir, transformNone):self.labels load_labels(csv_file)self.root_dir root_dirself.transform transformdef __len__(self): return len(self.labels) def __getitem__(self, idx): img_name os.path.join(self.root_dir, self.labels.iloc[idx, 0]) image Image.open(img_name).convert(RGB) score self.labels.iloc[idx, 1] if self.transform: image self.transform(image) return image, score数据变换transform transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225])])创建数据集实例root_dir ‘PlacePulse2.0/images/’csv_file ‘PlacePulse2.0/labels/beauty.csv’dataset StreetViewDataset(csv_file, root_dir, transformtransform)创建数据加载器dataloader DataLoader(dataset, batch_size32, shuffleTrue, num_workers4)检查数据for images, scores in dataloader:print(images.shape, scores.shape)break三、模型选择选择一个预训练的 ResNet 模型并修改其最后一层以适应回归任务。python深色版本import torchimport torch.nn as nnfrom torchvision.models import resnet50定义模型model resnet50(pretrainedTrue)model.fc nn.Linear(model.fc.in_features, 1) # 修改最后一层为回归输出将模型移到GPUdevice torch.device(“cuda” if torch.cuda.is_available() else “cpu”)model.to(device)四、训练模型定义损失函数、优化器并进行模型训练。python深色版本定义损失函数和优化器criterion nn.MSELoss()optimizer optim.Adam(model.parameters(), lr0.001)训练模型num_epochs 10for epoch in range(num_epochs):model.train()running_loss 0.0for images, scores in dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)optimizer.zero_grad() outputs model(images) loss criterion(outputs, scores) loss.backward() optimizer.step() running_loss loss.item() * images.size(0) epoch_loss running_loss / len(dataset) print(fEpoch [{epoch1}/{num_epochs}], Loss: {epoch_loss:.4f})五、评估模型使用测试集来评估模型的性能。python深色版本加载测试数据集test_dataset StreetViewDataset(‘PlacePulse2.0/labels/beauty_test.csv’, root_dir, transformtransform)test_dataloader DataLoader(test_dataset, batch_size32, shuffleFalse, num_workers4)评估模型model.eval()with torch.no_grad():total_mse 0.0for images, scores in test_dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)outputs model(images)mse criterion(outputs, scores)total_mse mse.item() * images.size(0)test_mse total_mse / len(test_dataset) print(fTest MSE: {test_mse:.4f})六、保存模型训练完成后保存模型以供后续使用。python深色版本保存模型torch.save(model.state_dict(), ‘street_view_perception_model.pth’)七、完整代码将上述所有步骤整合成一个完整的脚本python深色版本import pandas as pdimport osfrom PIL import Imageimport torchfrom torch.utils.data import Dataset, DataLoaderfrom torchvision import transformsimport torch.nn as nnimport torch.optim as optimfrom torchvision.models import resnet50读取标签文件def load_labels(file_path):return pd.read_csv(file_path)自定义数据集类class StreetViewDataset(Dataset):definit(self, csv_file, root_dir, transformNone):self.labels load_labels(csv_file)self.root_dir root_dirself.transform transformdef __len__(self): return len(self.labels) def __getitem__(self, idx): img_name os.path.join(self.root_dir, self.labels.iloc[idx, 0]) image Image.open(img_name).convert(RGB) score self.labels.iloc[idx, 1] if self.transform: image self.transform(image) return image, score数据变换transform transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225])])创建数据集实例root_dir ‘PlacePulse2.0/images/’csv_file ‘PlacePulse2.0/labels/beauty.csv’dataset StreetViewDataset(csv_file, root_dir, transformtransform)创建数据加载器dataloader DataLoader(dataset, batch_size32, shuffleTrue, num_workers4)定义模型model resnet50(pretrainedTrue)model.fc nn.Linear(model.fc.in_features, 1) # 修改最后一层为回归输出将模型移到GPUdevice torch.device(“cuda” if torch.cuda.is_available() else “cpu”)model.to(device)定义损失函数和优化器criterion nn.MSELoss()optimizer optim.Adam(model.parameters(), lr0.001)训练模型num_epochs 10for epoch in range(num_epochs):model.train()running_loss 0.0for images, scores in dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)optimizer.zero_grad() outputs model(images) loss criterion(outputs, scores) loss.backward() optimizer.step() running_loss loss.item() * images.size(0) epoch_loss running_loss / len(dataset) print(fEpoch [{epoch1}/{num_epochs}], Loss: {epoch_loss:.4f})加载测试数据集test_dataset StreetViewDataset(‘PlacePulse2.0/labels/beauty_test.csv’, root_dir, transformtransform)test_dataloader DataLoader(test_dataset, batch_size32, shuffleFalse, num_workers4)评估模型model.eval()with torch.no_grad():total_mse 0.0for images, scores in test_dataloader:images, scores images.to(device), scores.to(device).float().unsqueeze(1)outputs model(images)mse criterion(outputs, scores)total_mse mse.item() * images.size(0)test_mse total_mse / len(test_dataset) print(fTest MSE: {test_mse:.4f})保存模型torch.save(model.state_dict(), ‘street_view_perception_model.pth’)八、运行脚本将上述代码保存为一个 Python 脚本文件例如 train_street_view_perception.py然后在命令行中运行bash深色版本python train_street_view_perception.py九、注意事项数据集路径确保数据集路径正确特别是图片和标签文件的路径。硬件资源训练大型模型可能需要较多的计算资源建议使用 GPU。超参数调整根据实际情况调整学习率、批量大小等超参数以获得更好的训练效果。希望这些步骤能帮助你成功训练一个街景感知评分模型

相关新闻

Ubuntu 22.04 LTS 全新安装指南:清除磁盘安装与自动化分区详解

Ubuntu 22.04 LTS 全新安装指南:清除磁盘安装与自动化分区详解

1. 项目概述:为什么需要“清除磁盘并安装”? 如果你正准备在一台电脑上安装Ubuntu 22.04 LTS,并且这台电脑的硬盘里已经没有任何你需要保留的数据,那么“清除磁盘并安装”就是你最应该选择的安装方式。这听起来像是一句废话&#…

2026/8/11 5:55:59 阅读更多 →
SAP Login Manager上下文菜单:场景化登录提升SAP工作效率

SAP Login Manager上下文菜单:场景化登录提升SAP工作效率

你有没有过这样的体验?每天上班,第一件事就是打开一堆SAP客户端,输入不同的系统地址、客户端号、用户名、密码,然后重复登录、切换、再登录?对于SAP顾问、开发或高频用户来说,这几乎是每天的“开机仪式”&a…

2026/8/11 5:55:59 阅读更多 →
C++物理引擎构建:从DOP架构到GJK碰撞检测的实战指南

C++物理引擎构建:从DOP架构到GJK碰撞检测的实战指南

1. 项目概述:为什么选择C构建物理引擎?如果你正在读这篇文章,大概率和我一样,对游戏、动画或者机器人仿真背后的“魔法”感到着迷。屏幕上那些布料随风飘动、刚体碰撞翻滚、流体奔腾流淌的画面,其核心驱动力就是一个高…

2026/8/11 5:55:59 阅读更多 →

最新新闻

Rudder:构建人机协作操作系统,实现AI Agent团队化协同

Rudder:构建人机协作操作系统,实现AI Agent团队化协同

1. 项目概述:Rudder 是什么,以及它想解决什么问题 最近在 AI 领域,一个叫 Rudder 的项目开始引起不少开发者和团队的注意。简单来说,Rudder 的愿景是构建一个能让人类与多个 AI Agent(智能体)像真正的团队一…

2026/8/11 8:32:00 阅读更多 →
Python音频识别库acrclient使用指南

Python音频识别库acrclient使用指南

1. 认识acrclient:Python中的音频内容识别利器 acrclient是一个专门用于音频内容识别的Python第三方库,它封装了与ACRCloud(全球领先的音频指纹识别服务)API交互的核心功能。这个包让开发者能够轻松实现音乐识别、广播监测、版权保…

2026/8/11 8:32:00 阅读更多 →
XGBoost核心原理与实战应用全解析

XGBoost核心原理与实战应用全解析

1. XGBoost为何成为机器学习领域的"大杀器"? 在机器学习竞赛平台Kaggle上,有一个算法几乎成了冠军选手的标配武器。从2015年开始,超过一半的冠军解决方案中都使用了这个算法。它不是什么神秘的"黑科技",而是一…

2026/8/11 8:32:00 阅读更多 →
可量化的成果Nordic nRF54L15 SoC

可量化的成果Nordic nRF54L15 SoC

在其 Bluetooth LE PIR 传感器产品线上取得了显著提升,包括:在 100 节点的 Mesh 网络中保持稳定运行触发到点亮的延迟从约 200 ms 降至不足 80 ms,降低幅度达 60%为未来的电池版机型带来约 35% 的平均功耗下降通过标准 Mesh调光与占用模型更快…

2026/8/11 8:32:00 阅读更多 →
Headless浏览器自动化:如何捕获页面早期错误与JS异常

Headless浏览器自动化:如何捕获页面早期错误与JS异常

1. 项目概述:当AI“睁眼瞎”,问题出在哪? 最近在调试一个基于Headless Chrome的自动化爬虫时,遇到了一个让我排查了整整两天的诡异问题。我的脚本逻辑清晰,等待策略完备,但就是抓取不到目标页面上那些一闪而…

2026/8/11 8:32:00 阅读更多 →
C++贪吃蛇实战:从控制台到图形界面的游戏开发入门指南

C++贪吃蛇实战:从控制台到图形界面的游戏开发入门指南

1. 项目概述:为什么选择C小游戏作为入门实践? 很多刚学完C基础语法的新手朋友,都会面临一个共同的困惑:书本上的例题都懂了,但感觉离“做出一个东西”还很遥远。指针、类、继承这些概念,单独看都明白&#…

2026/8/11 8:31:00 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →