介绍
Open Images是由谷歌发布的一个开源图片数据集,在2022年10月份发布了最新的V7版本。这个版本的数据集包含了900多万张图片,都有类别标记。其中190多万张图片有非常精细的标注。
包含的类别有:
Tortoise 乌龟
Container 容器
Magpie 喜鹊
Sea turtle 海龟
Football 足球
Ambulance 救护车
Ladder 梯
Toothbrush 牙刷
Syringe 注射器
Sink 水槽
Toy 玩具
Organ (Musical Instrument) 管风琴(乐器)
Cassette deck 磁带甲板
Apple 苹果
Human eye 人类的眼睛
Cosmetics 化妆品
Paddle 桨
Snowman 雪人
Beer 啤酒
Chopsticks 筷子
Human beard 人的胡子
Bird 鸟
Parking meter 停车费
Traffic light 红绿灯
Croissant 羊角面包
Cucumber 黄瓜
Radish 萝卜
Towel 毛巾
Doll 娃娃
Skull 头骨
Washing machine 洗衣机
Glove 手套
Tick 蜱虫
Belt 带
Sunglasses 太阳镜
Banjo 班卓琴
Cart 车
Ball 球
Backpack 背包
Bicycle 自行车
Home appliance 家电
Centipede 蜈蚣
Boat 船
Surfboard 冲浪板
Boot 引导
Headphones 耳机
Hot dog 热狗
Shorts 短裤
Fast food 快餐
Bus 公共汽车
Boy 男孩
Screwdriver 螺丝刀
Bicycle wheel 自行车车轮
Barge 驳船
Laptop 移动PC
Miniskirt 迷你裙
Drill (Tool) 钻(工具)
Dress 衣服
Bear 熊
Waffle 华夫格
Pancake 煎饼
Brown bear 棕熊
Woodpecker 啄木鸟
Blue jay 冠蓝鸦
Pretzel 椒盐卷饼
Bagel 百吉饼
Tower 塔
Teapot 茶壶
Person 人
Bow and arrow 弓箭
Swimwear 泳装
Beehive 蜂巢
Brassiere 胸罩
Bee 蜜蜂
Bat (Animal) 蝙蝠(动物)
Starfish 海星
Popcorn 爆米花
Burrito 玉米煎饼
Chainsaw 电锯
Balloon 气球
Wrench 扳手
Tent 帐篷
Vehicle registration plate 车辆号牌
Lantern 灯笼
Toaster 烤面包机
Flashlight 手电筒
Billboard 广告牌
Tiara 头饰
Limousine 豪华轿车
Necklace 项链
Carnivore 食肉动物
Scissors 剪刀
Stairs 楼梯
Computer keyboard 电脑键盘
Printer 打印机
Traffic sign 交通标志
Chair 椅子
Shirt 衬衫
Poster 海报
Cheese 奶酪
Sock 袜子
Fire hydrant 消防栓
Land vehicle 陆地车辆
Earrings 耳环
Tie 领带
Watercraft 船舶
Cabinetry 橱柜
Suitcase 手提箱
Muffin 松饼
Bidet 坐浴盆
Snack 零食
Snowmobile 雪地
Clock 时钟
Medical equipment 医疗设备
Cattle 牛
Cello 大提琴
Jet ski 喷气滑雪
Camel 骆驼
Coat 外套
Suit 西装
Desk 桌子上
Cat 猫
Bronze sculpture 青铜雕塑
Juice 汁
Gondola 贡多拉
Beetle 甲虫
Cannon 大炮
Computer mouse 电脑鼠标
Cookie 饼干
Office building 办公大楼
Fountain 喷泉
Coin 硬币
Calculator 计算器
Cocktail 鸡尾酒
Computer monitor 电脑显示器
Box 盒子
Stapler 订书机
Christmas tree 圣诞树
Cowboy hat 牛仔帽
Hiking equipment 登山设备
Studio couch 长沙发
Drum 鼓
Dessert 甜点
Wine rack 酒架
Drink 喝
Zucchini 西葫芦
Ladle 包
Human mouth 人类的嘴
Dairy Product 乳制品
Dice 骰子
Oven 烤箱
Dinosaur 恐龙
Ratchet (Device) 棘轮(设备)
Couch 沙发上
Cricket ball 板球
Winter melon 冬瓜
Spatula 抹刀
Whiteboard 白板
Pencil sharpener 卷笔刀
Door 门
Hat 帽子
Shower 淋浴
Eraser 橡皮擦
Fedora Fedora
Guacamole 鳄梨色拉酱
Dagger 匕首
Scarf 围巾
Dolphin 海豚
Sombrero 宽边帽
Tin can 锡罐
Mug 杯子
Tap 利用
Harbor seal 麻斑海豹
Stretcher 担架
Can opener 开罐器
Goggles 护目镜
Human body 人体
Roller skates 溜冰鞋
Coffee cup 咖啡杯
Cutting board 切肉板
Blender 搅拌机
Plumbing fixture 卫生洁具
Stop sign 停车标志
Office supplies 办公用品
Volleyball (Ball) 排球(球)
Vase 花瓶
Slow cooker 慢炖锅
Wardrobe 衣柜
Coffee 咖啡
Whisk 搅拌
Paper towel 纸巾
Personal care 个人护理
Food 食物
Sun hat 太阳帽子
Tree house 树屋
Flying disc 飞碟
Skirt 裙子
Gas stove 煤气炉
Salt and pepper shakers 盐和胡椒瓶
Mechanical fan 机械风扇
Face powder 脸粉
Fax 传真
Fruit 水果
French fries 炸薯条
Nightstand 床头柜上
Barrel 桶
Kite 风筝
Tart 蛋挞
Treadmill 跑步机
Fox 狐狸
Flag 国旗
French horn 法国号
Window blind 遮光帘
Human foot 人类的脚
Golf cart 高尔夫球车
Jacket 夹克
Egg (Food) 鸡蛋(食物)
Street light 路灯
Guitar 吉他
Pillow 枕头
Human leg 人类的腿
Isopod 等足类动物
Grape 葡萄
Human ear 人耳
Power plugs and sockets 电源插头及插座
Panda 熊猫
Giraffe 长颈鹿
Woman 女人
Door handle 门把手
Rhinoceros 犀牛
Bathtub 浴缸
Goldfish 金鱼
Houseplant 室内植物
Goat 山羊
Baseball bat 棒球棒
Baseball glove 棒球手套
Mixing bowl 碗里
Marine invertebrates 海洋无脊椎动物
Kitchen utensil 厨房用具
Light switch 灯的开关
House 房子
Horse 马
Stationary bicycle 静止的自行车
Hammer 锤
Ceiling fan 吊扇
Sofa bed 沙发床
Adhesive tape 胶带
Harp 竖琴
Sandal 凉鞋
Bicycle helmet 自行车头盔
Saucer 飞碟
Harpsichord 羽管键琴
Human hair 人的头发
Heater 加热器
Harmonica 口琴
Hamster 仓鼠
Curtain 窗帘
Bed 床上
Kettle 水壶
Fireplace 壁炉
Scale 规模
Drinking straw 饮料吸管
Insect 昆虫
Hair dryer 吹风机
Kitchenware 厨房用具
Indoor rower 室内桨手
Invertebrate 无脊椎动物
Food processor 食品加工机
Bookcase 书柜
Refrigerator 冰箱
Wood-burning stove 烧木柴的炉子
Punching bag 出气筒
Common fig 常见的图
Cocktail shaker 鸡尾酒调制器
Jaguar (Animal) 捷豹(动物)
Golf ball 高尔夫球
Fashion accessory 时尚配饰
Alarm clock 闹钟
Filing cabinet 文件柜
Artichoke 洋蓟
Table 表格
Tableware 餐具
Kangaroo 袋鼠
Koala 考拉
Knife 刀
Bottle 瓶
Bottle opener 开瓶器
Lynx 猞猁
Lavender (Plant) 薰衣草(植物)
Lighthouse 灯塔
Dumbbell 哑铃
Human head 人类头上的
Bowl 碗
Humidifier 增湿器
Porch 玄关
Lizard 蜥蜴
Billiard table 台球台
Mammal 哺乳动物
Mouse 老鼠
Motorcycle 摩托车
Musical instrument 乐器
Swim cap 泳帽
Frying pan 煎锅
Snowplow 扫雪机
Bathroom cabinet 浴室柜
Missile 导弹
Bust 破产
Man 男人。
Waffle iron 对开式铁心
Milk 牛奶
Ring binder 扣眼活页夹
Plate 板
Mobile phone 移动电话
Baked goods 焙烤食品
Mushroom 蘑菇
Crutch 拐杖
Pitcher (Container) 投手(容器)
Mirror 镜子
Personal flotation device 个人漂浮装置
Table tennis racket 乒乓球拍
Pencil case 文具盒
Musical keyboard 音乐键盘
Scoreboard 记分板
Briefcase 公文包
Kitchen knife 菜刀
Nail (Construction) 钉(建设)
Tennis ball 网球
Plastic bag 塑料袋
Oboe 双簧管
Chest of drawers 五斗橱
Ostrich 鸵鸟
Piano 钢琴
Girl 女孩
Plant 植物
Potato 土豆
Hair spray 发胶
Sports equipment 运动器材
Pasta 意大利面
Penguin 企鹅
Pumpkin 南瓜
Pear 梨
Infant bed 婴儿床
Polar bear 北极熊
Mixer 混合机
Cupboard 橱柜
Jacuzzi 极可意水流按摩浴缸
Pizza 披萨
Digital clock 数字时钟
Pig 猪
Reptile 爬行动物
Rifle 步枪
Lipstick 口红
Skateboard 滑板
Raven 乌鸦
High heels 高跟鞋
Red panda 红熊猫
Rose 玫瑰
Rabbit 兔子
Sculpture 雕塑
Saxophone 萨克斯风
Shotgun 散弹枪
Seafood 海鲜
Submarine sandwich 潜艇三明治
Snowboard 滑雪板
Sword 剑
Picture frame 相框
Sushi 寿司
Loveseat 双人小沙发
Ski 滑雪
Squirrel 松鼠
Tripod 三脚架
Stethoscope 听诊器
Submarine 潜艇
Scorpion 蝎子
Segway 赛格威
Training bench 训练的长椅上
Snake 蛇
Coffee table 咖啡桌
Skyscraper 摩天大楼
Sheep 羊
Television 电视
Trombone 长号
Tea 茶
Tank 坦克
Taco 墨西哥煎玉米卷
Telephone 电话
Torch 火炬
Tiger 老虎
Strawberry 草莓
Trumpet 小号
Tree 树
Tomato 番茄
Train 火车
Tool 工具
Picnic basket 野餐篮
Cooking spray 烹饪喷雾
Trousers 裤子
Bowling equipment 保龄球设备
Football helmet 橄榄球头盔
Truck 卡车
Measuring cup 量杯
Coffeemaker 咖啡壶
Violin 小提琴
Vehicle 车辆
Handbag 手提包
Paper cutter 切纸机
Wine 酒
Weapon 武器
Wheel 轮
Worm 蠕虫
Wok 锅
Whale 鲸鱼
Zebra 斑马
Auto part 汽车零部件
Jug 壶
Pizza cutter 披萨刀
Cream 奶油
Monkey 猴子
Lion 狮子
Bread 面包
Platter 盘
Chicken 鸡
Eagle 鹰
Helicopter 直升机
Owl 猫头鹰
Duck 鸭
Turtle 乌龟
Hippopotamus 河马
Crocodile 鳄鱼
Toilet 厕所
Toilet paper 厕纸
Squid 鱿鱼
Clothing 服装
Footwear 鞋子
Lemon 柠檬
Spider 蜘蛛
Deer 鹿
Frog 青蛙
Banana 香蕉
Rocket 火箭
Wine glass 酒杯
Countertop 工作台面
Tablet computer 平板电脑
Waste container 废物容器
Swimming pool 游泳池
Dog 狗
Book 书
Elephant 大象
Shark 鲨鱼
Candle 蜡烛
Leopard 豹
Axe 斧
Hand dryer 手干燥机
Soap dispenser 给皂器
Porcupine 豪猪
Flower 花
Canary 金丝雀
Cheetah 猎豹
Palm tree 棕榈树
Hamburger 汉堡
Maple 枫木
Building 建筑
Fish 鱼
Lobster 龙虾
Garden Asparagus 花园芦笋
Furniture 家具
Hedgehog 刺猬
Airplane 飞机
Spoon 勺子
Otter 水獭
Bull 牛
Oyster 牡蛎
Horizontal bar 单杠
Convenience store 便利店
Bomb 炸弹
Bench 板凳上
Ice cream 冰淇淋
Caterpillar 毛毛虫
Butterfly 蝴蝶
Parachute 降落伞
Orange 橙色
Antelope 羚羊
Beaker 烧杯
Moths and butterflies 飞蛾和蝴蝶
Window 窗口
Closet 衣橱
Castle 城堡
Jellyfish 水母
Goose 鹅
Mule 骡子
Swan 天鹅
Peach 桃子
Coconut 椰子
Seat belt 安全带
Raccoon 浣熊
Chisel 凿
Fork 叉
Lamp 灯
Camera 相机
Squash (Plant) 南瓜(植物)
Racket 球拍
Human face 人类的脸
Human arm 人类的手臂
Vegetable 蔬菜
Diaper 尿布
Unicycle 独轮脚踏车
Falcon 猎鹰
Chime 敲出和谐的声音
Snail 蜗牛
Shellfish 贝类
Cabbage 卷心菜
Carrot 胡萝卜
Mango 芒果
Jeans 牛仔裤
Flowerpot 花盆
Pineapple 菠萝
Drawer 抽屉里
Stool 凳子
Envelope 信封
Cake 蛋糕
Dragonfly 蜻蜓
Common sunflower 常见的向日葵
Microwave oven 微波炉
Honeycomb 蜂窝
Marine mammal 海洋哺乳动物
Sea lion 海狮
Ladybug 瓢虫
Shelf 架子上
Watch 看
Candy 糖果
Salad 沙拉
Parrot 鹦鹉
Handgun 手枪
Sparrow 麻雀
Van 范
Grinder 磨床
Spice rack 香料架
Light bulb 灯泡
Corded phone 绳电话
Sports uniform 体育制服
Tennis racket 网球拍
Wall clock 挂钟
Serving tray 托盘
Kitchen & dining room table 厨房和餐桌
Dog bed 狗床
Cake stand 蛋糕站
Cat furniture 猫家具
Bathroom accessory 浴室配件
Facial tissue holder 面巾纸架
Pressure cooker 高压锅
Kitchen appliance 厨房电器
Tire 轮胎
Ruler 统治者
Luggage and bags 行李和包
Microphone 麦克风
Broccoli 西兰花
Umbrella 伞
Pastry 糕点
Grapefruit 葡萄柚
Band-aid 邦迪牌创可贴
Animal 动物
Bell pepper 甜椒
Turkey 火鸡
Lily 莉莉
Pomegranate 石榴
Doughnut 甜甜圈
Glasses 眼镜
Human nose 人类的鼻子
Pen 笔
Ant 蚂蚁
Car 车
Aircraft 飞机
Human hand 人类的手
Skunk 臭鼬
Teddy bear 泰迪熊
Watermelon 西瓜
Cantaloupe 哈密瓜
Dishwasher 洗碗机
Flute 长笛
Balance beam 平衡木
Sandwich 三明治
Shrimp 虾
Sewing machine 缝纫机
Binoculars 双筒望远镜
Rays and skates 鳐鱼和溜冰鞋
Ipod Ipod
Accordion 手风琴
Willow 柳树
Crab 蟹
Crown 皇冠
Seahorse 海马
Perfume 香水
Alpaca 羊驼
Taxi 出租车
Canoe 独木舟
Remote control 远程控制
Wheelchair 轮椅
Rugby ball 橄榄球
Armadillo 犰狳
Maracas 沙球
Helmet 头盔
下载脚本
利用 fiftyone 工具进行远程下载,classes罗列了项目上需要用到的21个类别
import os
import fiftyone as fo
import fiftyone.zoo as foz
classes = [
'Person', # 人 - 0
'Car', # 轿车 - 1
'Taxi', # 出租车 - 2
'Ambulance', # 救护车 - 3
'Bus', # 公共汽车 - 4
'Bicycle', # 自行车 - 5
'Motorcycle', # 摩托车 - 6
'Dog', # 狗 - 7
'Cat', # 猫 - 8
'Mouse', # 老鼠 - 9
'Backpack', # 背包 - 10
'Glasses', # 眼镜 - 11
'Hat', # 帽子 - 12
'Helmet', # 头盔 - 13
'Traffic light', # 交通信号灯 - 14
'Knife', # 刀 - 15
'Mobile phone', # 移动电话 - 16
'Umbrella', # 伞 - 17
'Hand-held objects', # 手持物 - 18
'smoke', # 烟雾 - 19
'fire' # 火焰 - 20
]
# 构建类别索引映射
class_to_index = {cls: idx for idx, cls in enumerate(classes)}
def update_txt_file_class_indices(class_name):
labels_dir = os.path.join("/yolov5/open-images-v7", class_name, 'labels/val')
dataset_yaml = os.path.join("/yolov5/open-images-v7", class_name, 'dataset.yaml')
os.remove(dataset_yaml)
if os.path.exists(labels_dir):
for filename in os.listdir(labels_dir):
if filename.endswith('.txt'):
filepath = os.path.join(labels_dir, filename)
# 读取并处理.txt文件
with open(filepath, 'r') as file:
lines = file.readlines()
# 更新类别索引
updated_lines = []
for line in lines:
parts = line.strip().split()
if len(parts) >= 5: # 假设每行至少有5个元素(class index在第0个位置)
class_idx_str = parts[0] # 原类别索引(可能是名称也可能是数字)
try:
updated_class_idx = str(class_to_index[class_name])
except ValueError:
# 如果转换失败,则按类别名称补全
updated_class_idx = class_name
parts[0] = updated_class_idx
updated_lines.append(' '.join(parts) + '\n')
# 写回更新后的行
with open(filepath, 'w') as file:
file.writelines(updated_lines)
print(f"{class_name}类别的所有.txt文件的索引已更新。")
for class_name in classes:
try:
fo.delete_dataset('open-images-v7-train-2000')
except:
pass
print(f"正在处理{class_name}类别...")
dataset = foz.load_zoo_dataset(
"open-images-v7",
split="train", # train validation test
label_types=["detections"], # "detections", "segmentations", "points"
classes=[class_name],
max_samples=2000, # 筛选前2000个样本
shuffle=True,
only_matching=True, # 指定仅下载符合条件的图片
num_workers=4, # 指定进程数为4
seed=42, # 指定随机种子
dataset_dir=f"/open-images-v7/{class_name}/"
)
# 创建一个新数据集来保存筛选后的样本
filtered_dataset = fo.Dataset()
# 遍历原数据集
for sample in dataset:
# 匹配的检测框
filtered_detections = [d for d in sample.ground_truth.detections if d.label == class_name]
# 如果样本中还有匹配的检测框,创建样本副本并添加到新数据集中
if filtered_detections:
new_sample = sample.copy()
new_sample.ground_truth.detections = filtered_detections
filtered_dataset.add_sample(new_sample)
if filtered_dataset.count() == 0:
print(f"No samples found for class: {class_name}")
continue
print(f"{class_name}类别的样本数量为:{filtered_dataset.count()}")
# 导出这个筛选后的数据集
result = filtered_dataset.export(
export_dir=f"/yolov5/open-images-v7/{class_name}/",
dataset_type=fo.types.YOLOv5Dataset,
label_field="ground_truth",
)
update_txt_file_class_indices(class_name)
下载10万张样本 ( 如果测试可以将max_samples值调小)
下载后生成的文件目录结构如下:
数据转换后按类别划分为多个文件 如下:
有些类别 open-images-v7 数据集里面没有
比如 火焰 (fire) 和 烟雾(smoke),这里已经整理了,请自行下载