从0到1:AWS CodeCommit创建与管理代码仓库完全教程
2026/7/22 20:55:50
每次旅行回来,手机里都堆满了成百上千张照片——风景、美食、人像、街拍混杂在一起。手动整理不仅耗时费力,还经常漏掉精彩瞬间。传统相册应用只能按时间排序,而智能相册能通过AI自动识别照片内容,实现:
我曾尝试用开源项目搭建,结果在CUDA驱动、Python依赖等问题上浪费了三天。直到发现CSDN算力平台的预置镜像,5分钟就搭好了能用的系统,GPU成本每小时不到0.5元。
登录CSDN算力平台,搜索"图像分类"镜像。推荐选择包含以下组件的镜像:
复制以下启动命令(镜像不同可能略有差异):
# 拉取镜像(通常平台会自动完成) docker pull csdn/ai-image-classifier:clip-v1.2 # 启动容器并挂载照片目录 docker run -it --gpus all -v /本地照片路径:/data csdn/ai-image-classifier:clip-v1.2💡 提示
如果照片在手机里,建议先用数据线导入电脑的某个文件夹(如
~/VacationPhotos),然后将该路径替换上面的/本地照片路径
在容器内创建categories.txt文件,每行写一个分类标签(支持中文):
海滩日落 城市建筑 美食特写 朋友合影 宠物照片 交通工具使用预置的CLIP分类脚本(镜像中通常位于/app目录):
import clip import torch from PIL import Image import os # 加载模型 device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load("ViT-B/32", device=device) # 读取分类标签 with open("categories.txt", "r") as f: categories = [line.strip() for line in f.readlines()] # 处理照片 for filename in os.listdir("/data"): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): image = preprocess(Image.open(f"/data/{filename}")).unsqueeze(0).to(device) text_inputs = torch.cat([clip.tokenize(f"a photo of {c}") for c in categories]).to(device) # 计算相似度 with torch.no_grad(): image_features = model.encode_image(image) text_features = model.encode_text(text_inputs) similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1) # 获取最佳匹配 _, indices = similarity.topk(1) best_match = categories[indices[0].item()] # 创建分类文件夹并移动照片 os.makedirs(f"/data/{best_match}", exist_ok=True) os.rename(f"/data/{filename}", f"/data/{best_match}/{filename}")脚本运行完成后,你的照片文件夹会变成这样:
VacationPhotos/ ├── 海滩日落/ │ ├── IMG_20230101_1801.jpg │ └── IMG_20230102_1703.jpg ├── 美食特写/ │ ├── IMG_20230101_1230.jpg │ └── IMG_20230103_1905.jpg └── 朋友合影/ ├── IMG_20230102_1102.jpg └── IMG_20230104_1507.jpg修改脚本中的关键参数:
# 调整相似度阈值(默认0.2) threshold = 0.3 # 值越大分类越严格 # 修改为只处理最近30天的照片 from datetime import datetime, timedelta date_limit = datetime.now() - timedelta(days=30)对于超过1000张照片的情况:
# 使用nohup后台运行(关闭SSH也不中断) nohup python classify.py > log.txt & # 查看进度 tail -f log.txt# 修改脚本减少批次大小 batch_size = 4 # 原为8需要额外加载人脸识别模型(镜像已预装):
from facenet_pytorch import MTCNN mtcnn = MTCNN(keep_all=True).to(device)现在就可以试试这个方案,下次旅行回来再也不用熬夜整理照片了!
💡获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。