建筑年代与风格识别
传统的建筑年代和风格识别需要从业者拥有大量的专业知识和时间成本,而深度学习和计算机视觉的火热,通过训练模型,让机器分析并准确识别建筑的年代和风格成为可能。
项目介绍
本项目是对《通过深度学习了解建筑年代和风格》论文的复现与实践。该论文探索了如何利用深度学习技术 自动识别建筑物的年代和风格,这对于城市规划、建筑保护和历史研究具有重要意义。
研究背景
传统的建筑年代和风格识别需要专业人士进行实地考察和主观判断,效率低且难以大规模应用。 深度学习方法可以通过分析大量建筑图像,学习识别不同时期和风格的建筑特征,实现自动化识别。
技术方法
本项目使用了卷积神经网络(CNN)对建筑图像进行分类,主要采用了ResNet50架构,并通过迁移学习方法 在建筑数据集上进行了微调。同时使用Grad-CAM等可视化技术解释模型的决策过程。
数据集
主要使用了阿姆斯特丹和斯德哥尔摩的建筑数据,包含了从18世纪到21世纪的不同年代建筑, 以及从巴洛克到现代主义的多种建筑风格。数据来源包括:
- BAG 建筑足迹 — 用于获取建筑的几何数据以及建筑年代数据
- 剑桥大学建筑风格图集和相应数据
- 基于 PyTorch 的 MIT ADE 20 K 数据集语义分割
环境配置
- 直接安装 Python、或者使用 Anaconda、Pycharm、VScode 安装
- pytorch 推荐单独安装
- 其余依赖使用
pip install requirements.txt
文章目录
项目成果展示

阿姆斯特丹的建筑足迹

阿姆斯特丹的道路线数据

originl image 和 pred_color 的对比

模型预测可视化结果

CAM 去识别不同年代模型的关注点

阿姆斯特丹市中心建筑年代预测结果空间分布
代码结构
├── 1-论文阅读和解析 ├── 2-获取数据集 │ ├── notebook │ │ ├── 2.1-BAG建筑足迹数据预处理.ipynb │ │ ├── 2.2-osmnx获取道路数据.ipynb │ │ └── 2.3-通过streetview获取含有谷歌街景地图的网页url.ipynb │ └── script ├── 3-selenium获取街景并进一步筛选街景图像 │ ├── ckpt │ ├── notebook │ │ ├── 3.1-2-删除损坏的文件.ipynb │ │ ├── 3.1-selenium获取街景截图.ipynb │ │ └── 3.2-语义分割预筛选街景照片..ipynb │ ├── script ├── 4.1-对建筑年代进行深度学习训练和预测 │ ├── notebook │ │ ├── 4.1.1-建筑年代的模型选择和训练.ipynb │ │ ├── 4.1.2-对训练集进行预测并保存结果.ipynb │ │ ├── 4.1.3-建筑年代模型评价.ipynb │ ├── script ├── 4.2-对建筑风格进行深度学习训练和预测 │ ├── notebook ├── 5-ArcgisPro工程 ├── README.md ├── my_tools └── requirements.txt
更多文章推荐
暂无更多文章推荐