Anaconda 是一个开源的 Python/R 数据科学开发环境与包管理工具,简单说就是帮你一站式搞定 Python 环境配置、第三方库安装和管理的 “工具箱”。
https://pytorch.org/get-started/previous-versions
conda是支持开辟一个新的空间,叫做虚拟环境,就是一个项目可以用一个专有的环境,不会和其他版本的包冲突了,当然会占用内存,嫌弃它占用内存的话,跑完当前的项目之后用命令conda remove -n 环境名 –all就可以腾出空间了
conda create -n 虚拟环境名称 python=3.10
# To activate this environment, use
#
# $ conda activate crack
#
# To deactivate an active environment, use
#
# $ conda deactivate
报错:
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
你的 当前工作目录不是 requirements.txt 所在目录。虽然你在 VSCode 左边看到文件,但 终端工作目录必须和文件路径一致。
空间不够:
续使用现有 Conda(只是把 envs 和 pkgs 移到 D 盘)
conda config --add envs_dirs D:\conda\envs
conda config --add pkgs_dirs D:\conda\pkgs
方案 A(最简单):不用 environment.yml,手动创建环境
在 Anaconda Prompt 或 VS Code 终端里执行下面几行就行(确保在任意目录都可以):
conda create -n crackseg python=3.10
conda activate crackseg
pip install torch torchvision numpy opencv-python pillow matplotlib tqdm
成功后用:
conda env list
能看到一行 crackseg,说明环境 OK,然后就可以在项目目录里跑:
python train.py
LabelMe 画多边形
在当前环境装一下 labelme(只装一次即可):pip install labelme
在终端里启动 LabelMe:labelme
在 LabelMe 里打开你的原图(比如 0001.jpg),用多边形工具沿着裂缝画一条带宽度的多边形,label 填写:crack。
一张图标完后保存,会得到 0001.json 文件(和图片同名)。
把这些 json 放到(可以分 train/val 两个子文件夹):
data/labelme_json/train/
data/labelme_json/val/
回到终端(确保还是在 D:\crack-segmentation,环境是 crackseg),生成 mask:
# 训练集
python labelme_to_mask.py ^
--json_dir data/labelme_json/train ^
--out_dir data/masks/train ^
--target_label crack
# 验证集
python labelme_to_mask.py ^
--json_dir data/labelme_json/val ^
--out_dir data/masks/val ^
--target_label crack
生成后你会在 data/masks/train 和 data/masks/val 里看到和图片同名的 *.png,黑底白裂缝。
运行自动标注脚本,一次性生成 4000+ masks
在终端里确保:
(crackseg) D:\crack-segmentation>
然后依次执行:
# 为训练集生成自动 mask
python auto_annotate.py ^
--input_dir data/images/train ^
--output_dir data/masks/train
# 为验证集生成自动 mask
python auto_annotate.py ^
--input_dir data/images/val ^
--output_dir data/masks/val
几条说明:
- 脚本会 自动遍历目录里的所有图片,生成与图片同名的
*.pngmask。 - 你可以根据效果适当调参数,比如:
python auto_annotate.py ^ --input_dir data/images/train ^ --output_dir data/masks/train ^ --min_area 80 ^ --clip_limit 3.0min_area大一点:过滤更多“小点点噪声”;clip_limit大一点:增强对比度,更容易把细裂缝凸显出来。
跑完之后,你的 data/masks/train / data/masks/val 里会有一堆 xxx.png,黑底白裂缝







