You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yolov8实例分割在Colab正常运行,Windows本地提示图片损坏求助

解决方案
  • 检查图片文件的隐藏属性或权限:右键图片→属性,取消「隐藏」勾选,同时在「安全」选项卡确认当前运行Yolov8的用户拥有读取权限。部分从Roboflow导出的文件可能在Windows系统中被标记为隐藏,导致框架无法正常读取。
  • 用PIL批量重新编码图片:Yolov8默认依赖OpenCV加载图片,Windows下OpenCV对部分非标准JPEG编码兼容性较差。运行以下脚本批量重新保存图片:
from PIL import Image
import os

input_dir = "你的数据集图片目录"
output_dir = "新图片保存目录"
os.makedirs(output_dir, exist_ok=True)

for filename in os.listdir(input_dir):
    if filename.lower().endswith((".jpg", ".jpeg")):
        try:
            img = Image.open(os.path.join(input_dir, filename))
            img.save(os.path.join(output_dir, filename), "JPEG", quality=95)
        except Exception as e:
            print(f"处理 {filename} 失败: {str(e)}")

用新生成的图片替换原数据集后重新测试。

  • 修改Yolov8图片加载逻辑:在ultralytics/data/datasets.py中,将默认的OpenCV加载替换为PIL加载,绕开系统解码差异:
# 替换原有cv2.imread相关代码
from PIL import Image
import numpy as np

img = Image.open(img_path).convert("RGB")
img = np.array(img)
  • 重新导出Roboflow数据集:导出时选择「无压缩」或调整JPEG压缩级别,部分Roboflow导出的压缩格式在Windows下存在兼容问题。
  • 验证文件完整性:对比本地与Colab中图片的哈希值,确认下载过程未损坏文件:
    Windows命令行:
    certutil -hashfile "目标图片路径" SHA256
    
    Colab中:
    import hashlib
    with open("目标图片路径", "rb") as f:
        print(hashlib.sha256(f.read()).hexdigest())
    
    若哈希值不一致,重新下载数据集。

内容的提问来源于stack exchange,提问作者yeong nam tan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 11:43:10