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

Windows+Conda环境下FiftyOne导入图片目录后数据集为空求助

FiftyOne导入图片目录为空的解决办法

问题根源

  1. 路径转义错误:Windows路径中的\在Python字符串里是转义符,\s会被解析为空格,导致实际路径与预期不符。
  2. 相对路径指向错误:脚本执行时当前工作目录为C:\Windows,相对路径\sandbox\images无法定位到目标文件夹。

解决步骤

1. 修正路径写法

优先使用绝对路径,并通过原始字符串或双反斜杠避免转义问题:

# 原始字符串写法(推荐)
DATASET_PATH = r"C:\sandbox\images"

# 或者双反斜杠写法
DATASET_PATH = "C:\\sandbox\\images"

2. 验证目录与文件

在脚本中添加验证逻辑,确认路径有效性和目录内容:

import os

# 检查路径是否存在
print(os.path.exists(DATASET_PATH))
# 打印目录内的文件列表
print(os.listdir(DATASET_PATH))

如果返回False或空列表,说明路径错误或目标目录内无文件。

3. 显式指定图片扩展名(可选)

若目录内混有其他格式文件,可强制仅加载.jpg文件:

dataset = fo.Dataset.from_dir(
    path=DATASET_PATH,
    dataset_type=fo.types.ImageDirectory,
    extensions=[".jpg"]
)

修改后的完整脚本

import fiftyone as fo
import os

# 使用绝对原始路径
DATASET_PATH = r"C:\sandbox\images"

def load_dataset(path=DATASET_PATH, dataset_type=fo.types.ImageDirectory):
    # 先验证路径有效性
    if not os.path.exists(path):
        print(f"路径不存在: {path}")
        return None
    
    print(f"目录内文件: {os.listdir(path)}")
    
    dataset = fo.Dataset.from_dir(
        path=path,
        dataset_type=dataset_type,
        extensions=[".jpg"]
    )
    print(dataset)
    return dataset

def main():
    dataset = load_dataset()
    if dataset is not None:
        session = fo.launch_app(dataset, desktop=True)
        session.wait()

if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者Benoît Boidin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:35:55