Amazon Rekognition自定义标签服务多标签图像文件夹组织方案问询
Amazon Rekognition自定义标签服务多标签图像文件夹组织方案问询
嘿,这个场景我太熟悉了——很多做计算机视觉训练的朋友都会遇到多标签图像的文件夹组织难题,尤其是像你这样有十几万张图的体量,手动标注肯定不现实。结合Amazon Rekognition自定义标签服务的特性,我给你推荐两个实用的方案:
方案一:用带分隔符的文件夹名承载多标签
这是最适合大数量图像的方案,核心思路是把单张图的所有标签整合到文件夹名称里,再通过简单脚本生成Rekognition认可的标注清单:
- 给每个存放多标签图像的文件夹起一个用无冲突分隔符(比如下划线
_、竖线|,避开标签本身会用到的字符)连接所有标签的名字,比如cat_black_indoor、dog_brown_outdoor。 - 写一个轻量脚本(比如Python)遍历所有文件夹:读取文件夹名,用分隔符拆分出多个标签,然后生成Rekognition训练需要的JSONL格式清单文件(Manifest File)。举个例子,生成的每条记录大概是这样:
{"source-ref": "s3://your-bucket/images/cat_black_indoor/photo1.jpg", "labels": ["cat", "black", "indoor"]} - 把生成好的清单文件上传到S3,在Rekognition自定义标签训练时指定这个清单,服务就会自动给对应图像打上多个标签了。
方案二:用软链接/快捷方式实现多标签关联
如果不想折腾脚本,这个方案更直观,但要注意存储场景的限制:
- 给同一张图创建多个软链接(Linux/macOS)或快捷方式(Windows),分别放到对应单个标签的文件夹里。比如一张同时属于“cat”和“black”的图,既在
cat文件夹里有一个链接,又在black文件夹里有一个链接。 - Rekognition在遍历文件夹时,会把每个文件夹名作为一个标签关联到里面的图像(包括软链接指向的原图)。但要注意:如果你的图像存在S3里,这个方案不适用——因为S3不支持软链接,只能复制图像到多个文件夹,会额外占用存储空间;本地存储或AWS EFS这类支持软链接的存储更适合这个方案。
额外注意事项
- 不管用哪种方案,图像最终都要上传到S3桶(Rekognition自定义标签训练依赖S3资源),批量上传可以用AWS CLI的
s3 sync命令,高效又省心。 - 处理12万张图时,脚本要注意分批遍历,避免内存溢出,比如用生成器模式处理文件列表。
- 清单文件生成后,可以用Rekognition的内置工具校验格式,避免训练时出错。
备注:内容来源于stack exchange,提问作者Acuervov
相关产品推荐
相关产品推荐

