当前位置: 首页 > news >正文

开源项目实战学习之YOLO11:ultralytics-cfg-datasets-Objects365、open-images-v7.yaml文件(六)

👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路


  • medical - pills.yaml
    • 通常用于配置与医学药丸检测任务相关的参数和信息
  • Objects365.yaml
    • 用于配置与 Objects365 数据集相关信息的文件。Objects365 数据集包含 365 个不同的物体类别,该文件会定义这些类别的名称和对应的索引。
  • open-images-v7.yaml
    • 是针对 Open Images V7 数据集的配置文件,在相关的计算机视觉任务(如目标检测、图像分类等)中具有重要作用。

文章大纲

    • Objects365.yaml
    • open-images-v7.yaml

在 YOLO 框架中, medical-pills.yaml、Objects365.yaml、open-images-v7.yaml 均为 数据集配置文件,用于告诉模型如何读取和处理特定数据集,核心作用如下:

    1. 数据集路径配置
    1. 类别定义: 类别名称与编号映射
    1. 数据划分与格式适配
      1. 训练 / 验证 / 测试集划分:
      1. 特殊格式处理(部分文件):
      • 部分文件可能包含数据转换逻辑(如 open-images-v7.yaml 涉及通过 fiftyone 库将原始数据集转换为 YOLO 可识别的格式)。
  • 总结

    • 这些文件是 YOLO 模型与具体数据集之间的 “桥梁”,核心功能是 告知模型 “数据在哪里” 和 “目标有哪些类别”,确保模型能正确加载数据、训练并输出符合预期的检测结果
    • 用户训练自定义数据集时,需按此格式编写自己的 dataset.yaml,定义路径和类别即可快速适配 YOLO 框架。
  • Open Images V7

    • 由 Google 发布的大规模计算机视觉数据集,专为目标检测、图像分类、语义分割等任务设计
    • 图像总量: 约 900 万张,覆盖自然场景、日常生活、工业环境等多样化场景
      • 190 万张密集标注图像:包含边界框、实例分割、视觉关系、本地化叙述(语音 + 文本 + 鼠标轨迹)和点标签。
      • 710 万张图像级标注:仅包含图像级分类标签(如 “动物”“交通工具”)。
    • 标注类型:
      • 边界框:1600 万个,覆盖 600 个物体类别(如汽车、行人、家具),由专业标注员手工绘制,平均每张图像 8.3 个物体。
      • 实例分割:280 万个,覆盖 350 个类别(如猫、桌子、树),提供像素级轮廓。
      • 视觉关系:330 万条,描述物体间关系(如 “人骑自行车”“书在桌子上”)。
      • 本地化叙述:67.5 万条,结合语音、文本和鼠标轨迹,描述图像中的复杂场景(如 “左侧有一个红色背包,右侧是打开的笔记本电脑”)。
      • 点标签(V7 新增):6640 万个,覆盖 5827 个类别(如 “草”“花岗岩”“砾石”),通过稀疏像素点标注实现零样本 / 少样本语义分割
      • 图像级标签:6140 万个,覆盖 20,638 个类别(如 “晴天”“室内场景”)。
    • 核心优势
      • 多任务统一标注: 同一数据集支持图像分类、目标检测、分割、视觉关系理解等任务,便于多模态模型训练
      • 长尾类别覆盖: 包含大量罕见物体(如 “犰狳”“旱獭”)和细粒度类别(如 “红熊猫” vs “大熊猫”),提升模型泛化能力
      • 标注质量高: 边界框和分割掩码由专业人员标注,点标签通过 “模型建议 + 人工验证” 方式生成,准确率达 90% 以上。
      • 规模庞大: 190 万密集标注图像是当前最大的目标检测 / 分割数据集之一,适合训练高性能模型。
  • medical-pills.yaml、Objects365.yaml、open-images-v7.yaml数据集配置文件作用简要流程图
    在这里插入图片描述

Objects365.yaml

  • # 数据集根目录,相对于当前配置文件的路径
    path: ../datasets/Objects365# 训练集图像所在的相对路径,相对于数据集根目录
    train: images/train# 验证集图像所在的相对路径,相对于数据集根目录
    val: images/val# 测试集图像所在的相对路径,这里为空,表示未指定
    test:# 数据集中所有类别的名称,键为类别编号,值为类别名称
    names: # 定义数据集中各类别的名称映射0: Person # 编号0代表“人”这个类别1: Sneakers # 编号1代表“运动鞋”2: Chair # 编号2代表“椅子”3: Other Shoes # 编号3代表“其他鞋子”4: Hat # 编号4代表“帽子”5: Car # 编号5代表“汽车”6: Lamp # 编号6代表“灯”7: Glasses # 编号7代表“眼镜”8: Bottle # 编号8代表“瓶子”9: Desk # 编号9代表“书桌”10: Cup # 编号10代表“杯子”11: Street Lights # 编号11代表“路灯”12: Cabinet/shelf # 编号12代表“橱柜/架子”13: Handbag/Satchel # 编号13代表“手提包/挎包”14: Bracelet # 编号14代表“手镯”15: Plate # 编号15代表“盘子”16: Picture/Frame # 编号16代表“图片/相框”17: Helmet # 编号17代表“头盔”18: Book # 编号18代表“书”19: Gloves # 编号19代表“手套”20: Storage box # 编号20代表“储物箱”21: Boat # 编号21代表“船”22: Leather Shoes # 编号22代表“皮鞋”23: Flower # 编号23代表“花”24: Bench # 编号24代表“长凳”25: Potted Plant # 编号25代表“盆栽植物”26: Bowl/Basin # 编号26代表“碗/盆”27: Flag # 编号27代表“旗帜”28: Pillow # 编号28代表“枕头”29: Boots # 编号29代表“靴子”30: Vase # 编号30代表“花瓶”31: Microphone # 编号31代表“麦克风”32: Necklace # 编号32代表“项链”33: Ring # 编号33代表“戒指”34: SUV # 编号34代表“运动型多用途汽车(SUV)”35: Wine Glass # 编号35代表“葡萄酒杯”36: Belt # 编号36代表“皮带”37: Monitor/TV # 编号37代表“显示器/电视”38: Backpack # 编号38代表“背包”39: Umbrella # 编号39代表“雨伞”40: Traffic Light # 编号40代表“交通信号灯”41: Speaker # 编号41代表“扬声器”42: Watch # 编号42代表“手表”43: Tie # 编号43代表“领带”44: Trash bin Can # 编号44代表“垃圾桶”45: Slippers # 编号45代表“拖鞋”46: Bicycle # 编号46代表“自行车”47: Stool # 编号47代表“凳子”48: Barrel/bucket # 编号48代表“桶”49: Van # 编号49代表“厢式货车”50: Couch # 编号50代表“沙发”51: Sandals # 编号51代表“凉鞋”52: Basket # 编号52代表“篮子”53: Drum # 编号53代表“鼓”54: Pen/Pencil # 编号54代表“钢笔/铅笔”55: Bus # 编号55代表“公交车”56: Wild Bird # 编号56代表“野生鸟类”57: High Heels # 编号57代表“高跟鞋”58: Motorcycle # 编号58代表“摩托车”59: Guitar # 编号59代表“吉他”60: Carpet # 编号60代表“地毯”61: Cell Phone # 编号61代表“手机”62: Bread # 编号62代表“面包”63: Camera # 编号63代表“相机”64: Canned # 编号64代表“罐头”65: Truck # 编号65代表“卡车”66: Traffic cone # 编号66代表“交通锥”67: Cymbal # 编号67代表“钹”68: Lifesaver # 编号68代表“救生圈”69: Towel # 编号69代表“毛巾”70: Stuffed Toy # 编号70代表“毛绒玩具”71: Candle # 编号71代表“蜡烛”72: Sailboat # 编号72代表“帆船”73: Laptop # 编号73代表“笔记本电脑”74: Awning # 编号74代表“遮阳篷”75: Bed # 编号75代表“床”76: Faucet # 编号76代表“水龙头”77: Tent # 编号77代表“帐篷”78: Horse # 编号78代表“马”79: Mirror # 编号79代表“镜子”80: Power outlet # 编号80代表“电源插座”81: Sink # 编号81代表“水槽”82: Apple # 编号82代表“苹果”83: Air Conditioner # 编号83代表“空调”84: Knife # 编号84代表“刀”85: Hockey Stick # 编号85代表“曲棍球棒”86: Paddle # 编号86代表“桨”87: Pickup Truck # 编号87代表“皮卡”88: Fork # 编号88代表“叉子”89: Traffic Sign # 编号89代表“交通标志”90: Balloon # 编号90代表“气球”91: Tripod # 编号91代表“三脚架”92: Dog # 编号92代表“狗”93: Spoon # 编号93代表“勺子”94: Clock # 编号94代表“时钟”95: Pot # 编号95代表“锅”96: Cow # 编号96代表“奶牛”97: Cake # 编号97代表“蛋糕”98: Dining Table # 编号98代表“餐桌”99: Sheep # 编号99代表“羊”100: Hanger # 编号100代表“衣架”101: Blackboard/Whiteboard # 编号101代表“黑板/白板”102: Napkin # 编号102代表“餐巾”103: Other Fish # 编号103代表“其他鱼类”104: Orange/Tangerine # 编号104代表“橙子/橘子”105: Toiletry # 编号105代表“洗漱用品”106: Keyboard # 编号106代表“键盘”107: Tomato # 编号107代表“番茄”108: Lantern # 编号108代表“灯笼”109: Machinery Vehicle # 编号109代表“机动车辆”110: Fan # 编号110代表“风扇”111: Green Vegetables # 编号111代表“绿色蔬菜”112: Banana # 编号112代表“香蕉”113: Baseball Glove # 编号113代表“棒球手套”114: Airplane # 编号114代表“飞机”115: Mouse # 编号115代表“鼠标”116: Train # 编号116代表“火车”117: Pumpkin # 编号117代表“南瓜”118: Soccer # 编号118代表“足球”119: Skiboard # 编号119代表“滑雪板”120: Luggage # 编号120代表“行李”121: Nightstand # 编号121代表“床头柜”122: Tea pot # 编号122代表“茶壶”123: Telephone # 编号123代表“电话”124: Trolley # 编号124代表“手推车”125: Head Phone # 编号125代表“耳机”126: Sports Car # 编号126代表“跑车”127: Stop Sign # 编号127代表“停车标志”128: Dessert # 编号128代表“甜点”129: Scooter # 编号129代表“滑板车”130: Stroller # 编号130代表“婴儿车”131: Crane # 编号131代表“起重机”132: Remote # 编号132代表“遥控器”133: Refrigerator # 编号133代表“冰箱”134: Oven # 编号134代表“烤箱”135: Lemon # 编号135代表“柠檬”136: Duck # 编号136代表“鸭子”137: Baseball Bat # 编号137代表“棒球棒”138: Surveillance Camera # 编号138代表“监控摄像头”139: Cat # 编号139代表“猫”140: Jug # 编号140代表“罐子”141: Broccoli # 编号141代表“西兰花”142: Piano # 编号142代表“钢琴”143: Pizza # 编号143代表“披萨”144: Elephant # 编号144代表“大象”145: Skateboard # 编号145代表“滑板”146: Surfboard # 编号146代表“冲浪板”147: Gun # 编号147代表“枪”148: Skating and Skiing shoes # 编号148代表“滑冰和滑雪鞋”149: Gas stove # 编号149代表“煤气灶”150: Donut # 编号150代表“甜甜圈”151: Bow Tie # 编号151代表“领结”152: Carrot # 编号152代表“胡萝卜”153: Toilet # 编号153代表“马桶”154: Kite # 编号154代表“风筝”155: Strawberry # 编号155代表“草莓”156: Other Balls # 编号156代表“其他球类”157: Shovel # 编号157代表“铲子”158: Pepper # 编号158代表“胡椒”159: Computer Box # 编号159代表“电脑机箱”160: Toilet Paper # 编号160代表“卫生纸”161: Cleaning Products # 编号161代表“清洁用品”162: Chopsticks # 编号162代表“筷子”163: Microwave # 编号163代表“微波炉”164: Pigeon # 编号164代表“鸽子”165: Baseball # 编号165代表“棒球”166: Cutting/chopping Board # 编号166代表“切菜板”167: Coffee Table # 编号167代表“咖啡桌”168: Side Table # 编号168代表“边桌”169: Scissors # 编号169代表“剪刀”170: Marker # 编号170代表“记号笔”171: Pie # 编号171代表“派”172: Ladder # 编号172代表“梯子”173: Snowboard # 编号173代表“滑雪板”174: Cookies # 编号174代表“饼干”175: Radiator # 编号175代表“散热器”176: Fire Hydrant # 编号176代表“消防栓”177: Baseball <-- 此处疑似数据重复或有误,与编号165重复,若文件无误,编号177代表“棒球”178: Zebra # 编号178代表“斑马”179: Grape # 编号179代表“葡萄”180: Giraffe # 编号180代表“长颈鹿”181: Potato # 编号181代表“土豆”182: Sausage # 编号182代表“香肠”183: Tricycle # 编号183代表“三轮车”184: Violin # 编号184代表“小提琴”185: Egg # 编号185代表“鸡蛋”186: Fire Extinguisher # 编号186代表“灭火器”187: Candy # 编号187代表“糖果”188: Fire Truck # 编号188代表“消防车”189: Billiards # 编号189代表“台球”190: Converter # 编号190代表“转换器”191: Bathtub # 编号191代表“浴缸”192: Wheelchair # 编号192代表“轮椅”193: Golf Club # 编号193代表“高尔夫球杆”194: Briefcase # 编号194代表“公文包”195: Cucumber # 编号195代表“黄瓜”196: Cigar/Cigarette # 编号196代表“雪茄/香烟”197: Paint Brush # 编号197代表“画笔”198: Pear # 编号198代表“梨”199: Heavy Truck # 编号199对应的类别是重型卡车,在相关数据集中,当检测到或涉及到重型卡车相关的实例时,会用199这个编号来标记。200: Hamburger # 编号200代表汉堡包,在图像识别等任务里,若识别出汉堡包,会以200作为其类别标识。201: Extractor # 编号201表示提取器,可能是各种用于提取物质或信息的设备,在数据集中属于这一类别的物体将以此编号区分。202: Extension Cord # 编号202指延长线,在对相关场景进行分析时,延长线的实例会被归类到编号202对应的类别。203: Tong # 编号203代表钳子,通常用于夹持物品的工具,在数据集中用这个编号标识钳子类物体。204: Tennis Racket # 编号204是网球拍,在涉及网球拍的图像或数据样本中,该物体的类别编号为204 205: Folder # 编号205表示文件夹,用于存放文件纸张等的容器,数据集中文件夹类别的实例会用此编号标记。206: American Football # 编号206代表美式橄榄球,在相关数据标注中,美式橄榄球的实例将被赋予编号206207: earphone # 编号207指耳机,无论是头戴式、入耳式等各种类型耳机,在数据集中都属于这个编号对应的类别。208: Mask # 编号208表示口罩或面具,在识别任务里,口罩或面具的实例会以208作为类别编号。209: Kettle # 编号209代表水壶,通常用于烧水或盛装液体的容器,在数据集中用这个编号标识水壶类物体。210: Tennis # 编号210是网球,在网球相关的图像或数据样本中,网球这一物体的类别编号为210 211: Ship # 编号211表示船,涵盖各种类型的船只,在涉及船的图像或数据中,该物体的类别编号为211212: Swing # 编号212代表秋千,在场景分析或图像识别中,秋千的实例会被归类到编号212对应的类别。213: Coffee Machine # 编号213指咖啡机,用于制作咖啡的设备,数据集中咖啡机类别的实例会用此编号标记。214: Slide # 编号214表示滑梯,在相关场景进行分析时,滑梯的实例会被赋予编号214215: Carriage # 编号215代表马车或车厢,在数据标注中,马车或车厢的实例将被赋予编号215216: Onion # 编号216指洋葱,在涉及洋葱的图像或数据样本中,洋葱这一物体的类别编号为216 217: Green beans # 编号217代表青豆,在数据集中,青豆类别的实例会用编号217来标记。218: Projector # 编号218表示投影仪,在图像识别等任务里,投影仪的实例会以218作为其类别标识。219: Frisbee # 编号219指飞盘,在相关数据标注中,飞盘的实例将被赋予编号219220: Washing Machine/Drying Machine # 编号220代表洗衣机/烘干机,在数据集中,洗衣机或烘干机的实例会用此编号标记。221: Chicken # 编号221表示鸡(活鸡或作为食物的鸡肉),在识别任务里,鸡的实例会以221作为类别编号。222: Printer # 编号222指打印机,用于打印文件等的设备,数据集中打印机类别的实例会用此编号标记。223: Watermelon # 编号223代表西瓜,在涉及西瓜的图像或数据样本中,西瓜这一物体的类别编号为223 224: Saxophone # 编号224表示萨克斯管,在场景分析或图像识别中,萨克斯管的实例会被归类到编号224对应的类别。225: Tissue # 编号225指纸巾,在相关场景进行分析时,纸巾的实例会被赋予编号225226: Toothbrush # 编号226代表牙刷,在数据标注中,牙刷的实例将被赋予编号226227: Ice cream # 编号227表示冰淇淋,在涉及冰淇淋的图像或数据样本中,冰淇淋这一物体的类别编号为227 228: Hot-air balloon # 编号228代表热气球,在图像识别等任务里,热气球的实例会以228作为其类别标识。229: Cello # 编号229表示大提琴,在相关数据标注中,大提琴的实例将被赋予编号229230: French Fries # 编号230代表炸薯条,在数据集中,炸薯条类别的实例会用此编号标记。231: Scale # 编号231表示秤,用于测量物体重量的工具,数据集中秤类别的实例会用此编号标记。232: Trophy # 编号232代表奖杯,在识别任务里,奖杯的实例会以232作为类别编号。233: Cabbage # 编号233指卷心菜,在涉及卷心菜的图像或数据样本中,卷心菜这一物体的类别编号为233 234: Hot dog # 编号234代表热狗,在相关场景进行分析时,热狗的实例会被赋予编号234235: Blender # 编号235表示搅拌机,用于搅拌食物等的设备,数据集中搅拌机类别的实例会用此编号标记。236: Peach # 编号236代表桃子,在涉及桃子的图像或数据样本中,桃子这一物体的类别编号为236 237: Rice # 编号237表示大米或米饭,在数据集中,大米或米饭类别的实例会用编号237来标记。238: Wallet/Purse # 编号238代表钱包,在图像识别等任务里,钱包的实例会以238作为其类别标识。239: Volleyball # 编号239代表排球,在相关数据标注中,排球的实例将被赋予编号239240: Deer # 编号240表示鹿,在识别任务里,鹿的实例会以240作为类别编号。241: Goose # 编号241代表鹅,在涉及鹅的图像或数据样本中,鹅这一物体的类别编号为241 242: Tape # 编号242指胶带或磁带,在相关场景进行分析时,胶带或磁带的实例会被赋予编号242243: Tablet # 编号243表示平板电脑,在数据标注中,平板电脑的实例将被赋予编号243244: Cosmetics # 编号244代表化妆品,在数据集中,化妆品类别的实例会用此编号标记。245: Trumpet # 编号245表示小号,在场景分析或图像识别中,小号的实例会被归类到编号245对应的类别。246: Pineapple # 编号246代表菠萝,在涉及菠萝的图像或数据样本中,菠萝这一物体的类别编号为246 247: Golf Ball # 编号247代表高尔夫球,在相关数据标注中,高尔夫球的实例将被赋予编号247248: Ambulance # 编号248表示救护车,在图像识别等任务里,救护车的实例会以248作为其类别标识。249: Parking meter # 编号249代表停车计时器,在相关场景进行分析时,停车计时器的实例会被赋予编号249250: Mango # 编号250代表芒果,在涉及芒果的图像或数据样本中,芒果这一物体的类别编号为250 251: Key # 编号251表示钥匙,在数据标注中,钥匙的实例将被赋予编号251252: Hurdle # 编号252代表跨栏,在场景分析或图像识别中,跨栏的实例会被归类到编号252对应的类别。253: Fishing Rod # 编号253代表钓鱼竿,在相关场景进行分析时,钓鱼竿的实例会被赋予编号253254: Medal # 编号254代表奖章,在数据标注中,奖章的实例将被赋予编号254255: Flute # 编号255表示长笛,在场景分析或图像识别中,长笛的实例会被归类到编号255对应的类别。256: Brush # 编号256代表刷子,涵盖各种类型的刷子,在数据集中刷子类别的实例会用此编号标记。257: Penguin # 编号257代表企鹅,在识别任务里,企鹅的实例会以257作为类别编号。258: Megaphone # 编号258代表扩音器,在相关数据标注中,扩音器的实例将被赋予编号258259: Corn # 编号259代表玉米,在涉及玉米的图像或数据样本中,玉米这一物体的类别编号为259 260: Lettuce # 编号260代表生菜,在数据集中,生菜类别的实例会用编号260来标记。261: Garlic # 编号261代表大蒜,在涉及大蒜的图像或数据样本中,大蒜这一物体的类别编号为261 262: Swan # 编号262代表天鹅,在识别任务里,天鹅的实例会以262作为类别编号。263: Helicopter # 编号263表示直升机,在相关场景进行分析时,直升机的实例会被赋予编号263264: Green Onion # 编号264代表葱,在数据标注中,葱的实例将被赋予编号264265: Sandwich # 编号265代表三明治,在数据集中,三明治类别的实例会用此编号标记。266: Nuts # 编号266代表坚果,在涉及坚果的图像或数据样本中,坚果这一物体的类别编号为266 267: Speed Limit Sign # 编号267代表限速标志,在场景分析或图像识别中,限速标志的实例会被归类到编号267对应的类别。268: Induction Cooker # 编号268代表电磁炉,在相关场景进行分析时,电磁炉的实例会被赋予编号268269: Broom # 编号269代表扫帚,在数据标注中,扫帚的实例将被赋予编号269270: Trombone # 编号270表示长号,在场景分析或图像识别中,长号的实例会被归类到编号270对应的类别。271: Plum # 编号271代表李子,在涉及李子的图像或数据样本中,李子这一物体的类别编号为271 272: Rickshaw # 编号272代表人力车,在相关数据标注中,人力车的实例将被赋予编号272273: Goldfish # 编号273代表金鱼,在识别任务里,金鱼的实例会以273作为类别编号。274: Kiwi fruit # 编号274代表猕猴桃,在涉及猕猴桃的图像或数据样本中,猕猴桃这一物体的类别编号为274 275: Router/modem # 编号275代表路由器/调制解调器,在数据集中,路由器或调制解调器类别的实例会用此编号标记。276: Poker Card # 编号276代表扑克牌,在相关场景进行分析时,扑克牌的实例会被赋予编号276277: Toaster # 编号277代表烤面包机,在数据标注中,烤面包机的实例将被赋予编号277278: Shrimp # 编号278代表虾,在涉及虾的图像或数据样本中,虾这一物体的类别编号为278 279: Sushi # 编号279代表寿司,在数据集中,寿司类别的实例会用编号279来标记。280: Cheese # 编号280代表奶酪,在涉及奶酪的图像或数据样本中,奶酪这一物体的类别编号为280 281: Notepaper # 编号281代表便签纸,在相关场景进行分析时,便签纸的实例会被赋予编号281282: Cherry # 编号282代表樱桃,在涉及樱桃的图像或数据样本中,樱桃这一物体的类别编号为282 283: Pliers # 编号283代表钳子(与编号203的“Tong”类似,可能存在不同表述或细分差异 ),在数据标注中,此类钳子的实例将被赋予编号283284: CD # 编号284代表光盘,在场景分析或图像识别中,光盘的实例会被归类到编号284对应的类别。285: Pasta # 编号285代表意大利面,在数据集中,意大利面类别的实例会用此编号标记。286: Hammer # 编号286代表锤子,在相关场景进行分析时,锤子的实例会被赋予编号286287: Cue # 编号287代表球杆(通常指台球杆等 ),在数据标注中,球杆的实例将被赋予编号287288: Avocado # 编号288代表牛油果,在涉及牛油果的图像或数据样本中,牛油果这一物体的类别编号为288 289: Hami melon # 编号289代表哈密瓜,在数据集中,哈密瓜类别的实例会用编号289来标记。290: Flask # 编号290代表烧瓶或保温瓶,在相关场景进行分析时,烧瓶或保温瓶的实例会被赋予编号290291: Mushroom # 编号291代表蘑菇,在涉及蘑菇的图像或数据样本中,蘑菇这一物体的类别编号为291 292: Screwdriver # 编号292代表螺丝刀,在数据标注中,螺丝刀的实例将被赋予编号292293: Soap # 编号293代表肥皂,在场景分析或图像识别中,肥皂的实例会被归类到编号293对应的类别。294: Recurrent <-- 此处疑似有误,推测可能是“Recorder”(录音机 ),若按推测,编号294代表录音机,在相关场景进行分析时,录音机的实例会被赋予编号294(若原词无误,需根据实际情况确定含义 )。295: Bear # 编号295代表熊,在识别任务里,熊的实例会以295作为类别编号。296: Eggplant # 编号296代表茄子,在涉及茄子的图像或数据样本中,茄子这一物体的类别编号为296 297: Board Eraser # 编号297代表黑板擦,在数据标注中,黑板擦的实例将被赋予编号297298: Coconut # 编号298代表椰子,在涉及椰子的图像或数据样本中,椰子这一物体的类别编号为298 299: Tape Measure/Ruler # 编号299代表卷尺/尺子,在数据集中,卷尺或尺子类别的实例会用此编号标记。300: Pig # 编号300代表猪,在识别任务里,猪的实例会以300作为类别编号。301: Showerhead # 编号301代表淋浴喷头,在相关场景进行分析时,淋浴喷头的实例会被赋予编号301302: Globe # 编号302代表地球仪,在数据标注中,地球仪的实例将被赋予编号302303: Chips # 编号303代表薯片或芯片(具体含义需结合数据集实际情况确定 ),在场景分析或图像识别中,此类物体的实例会被归类到编号303对应的类别。304: Steak # 编号304代表牛排,在涉及牛排的图像或数据样本中,牛排这一物体的类别编号为304 305: Crosswalk Sign # 编号305代表人行横道标志,在相关场景进行分析时,人行横道标志的实例会被赋予编号305306: Stapler # 编号306代表订书机,在数据标注中,订书机的实例将被赋予编号306307: Camel # 编号307代表骆驼,在识别任务里,骆驼的实例会以307作为类别编号。308: Formula 1 # 编号308代表一级方程式赛车,在相关数据标注中,一级方程式赛车的实例将被赋予编号308309: Pomegranate # 编号309对应的类别是石榴,在相关的目标检测或分类任务中,若识别出石榴这个物体,其类别编号即为309310: Dishwasher # 编号310代表洗碗机,当数据集中出现洗碗机相关的实例时,会用310作为该物体的类别标识。311: Crab # 编号311表示螃蟹,在处理涉及螃蟹的图像或数据样本时,螃蟹这一物体的类别编号为311 312: Hoverboard # 编号312指悬浮滑板,在相关场景分析或图像识别中,悬浮滑板的实例会被归类到编号312对应的类别。313: Meatball # 编号313代表肉丸,在数据标注里,肉丸的实例将被赋予编号313314: Rice Cooker # 编号314表示电饭煲,在涉及电饭煲的图像或数据中,该物体的类别编号为314315: Tuba # 编号315代表大号(一种乐器),在相关数据标注中,大号的实例将被赋予编号315316: Calculator # 编号316指计算器,在数据集中,计算器类别的实例会用编号316来标记。317: Papaya # 编号317代表木瓜,在涉及木瓜的图像或数据样本中,木瓜这一物体的类别编号为317 318: Antelope # 编号318表示羚羊,在识别任务里,羚羊的实例会以318作为类别编号。319: Parrot # 编号319代表鹦鹉,在相关场景进行分析时,鹦鹉的实例会被赋予编号319320: Seal # 编号320代表海豹,在数据标注中,海豹的实例将被赋予编号320321: Butterfly # 编号321表示蝴蝶,在场景分析或图像识别中,蝴蝶的实例会被归类到编号321对应的类别。322: Dumbbell # 编号322代表哑铃,在相关场景进行分析时,哑铃的实例会被赋予编号322323: Donkey # 编号323代表驴,在数据标注中,驴的实例将被赋予编号323324: Lion # 编号324代表狮子,在识别任务里,狮子的实例会以324作为类别编号。325: Urinal # 编号325代表小便池,在相关数据标注中,小便池的实例将被赋予编号325326: Dolphin # 编号326代表海豚,在涉及海豚的图像或数据样本中,海豚这一物体的类别编号为326 327: Electric Drill # 编号327表示电钻,在数据集中,电钻类别的实例会用编号327来标记。328: Hair Dryer # 编号328代表吹风机,在相关场景进行分析时,吹风机的实例会被赋予编号328329: Egg tart # 编号329代表蛋挞,在数据标注中,蛋挞的实例将被赋予编号329330: Jellyfish # 编号330代表水母,在场景分析或图像识别中,水母的实例会被归类到编号330对应的类别。331: Treadmill # 编号331代表跑步机,在相关场景进行分析时,跑步机的实例会被赋予编号331332: Lighter # 编号332代表打火机,在数据标注中,打火机的实例将被赋予编号332333: Grapefruit # 编号333代表葡萄柚,在涉及葡萄柚的图像或数据样本中,葡萄柚这一物体的类别编号为333 334: Game board # 编号334代表游戏板,在数据集中,游戏板类别的实例会用编号334来标记。335: Mop # 编号335代表拖把,在相关场景进行分析时,拖把的实例会被赋予编号335336: Radish # 编号336代表萝卜,在涉及萝卜的图像或数据样本中,萝卜这一物体的类别编号为336 337: Baozi # 编号337代表包子,在数据标注中,包子的实例将被赋予编号337338: Target # 编号338代表靶子,在场景分析或图像识别中,靶子的实例会被归类到编号338对应的类别。339: French # 此处“French”单独作为类别不太明确,如果结合数据集可能表示法国相关事物,如法国面包(法棍)、法式菜肴等;也可能是录入错误,需结合实际数据集确定。340: Spring Rolls # 编号340代表春卷,在涉及春卷的图像或数据样本中,春卷这一物体的类别编号为340 341: Monkey # 编号341代表猴子,在识别任务里,猴子的实例会以341作为类别编号。342: Rabbit # 编号342代表兔子,在相关场景进行分析时,兔子的实例会被赋予编号342343: Pencil Case # 编号343代表铅笔盒,在数据标注中,铅笔盒的实例将被赋予编号343344: Yak # 编号344代表牦牛,在涉及牦牛的图像或数据样本中,牦牛这一物体的类别编号为344 345: Red Cabbage # 编号345代表紫甘蓝,在数据集中,紫甘蓝类别的实例会用编号345来标记。346: Binoculars # 编号346代表双筒望远镜,在相关场景进行分析时,双筒望远镜的实例会被赋予编号346347: Asparagus # 编号347代表芦笋,在涉及芦笋的图像或数据样本中,芦笋这一物体的类别编号为347 348: Barbell # 编号348代表杠铃,在数据标注中,杠铃的实例将被赋予编号348349: Scallop # 编号349代表扇贝,在场景分析或图像识别中,扇贝的实例会被归类到编号349对应的类别。350: Noddles # 疑似拼写错误,应为“Noodles”,编号350代表面条,在数据集中,面条类别的实例会用编号350来标记(若原词无误,需根据实际情况确定含义 )。351: Comb # 编号351代表梳子,在相关场景进行分析时,梳子的实例会被赋予编号351352: Dumpling # 编号352代表饺子,在数据标注中,饺子的实例将被赋予编号352353: Oyster # 编号353代表牡蛎,在场景分析或图像识别中,牡蛎的实例会被归类到编号353对应的类别。354: Table Tennis paddle # 编号354代表乒乓球拍,在涉及乒乓球拍的图像或数据样本中,乒乓球拍这一物体的类别编号为354 355: Cosmetics Brush/Eyeliner Pencil # 编号355代表化妆刷/眼线笔,在数据集中,化妆刷或眼线笔类别的实例会用编号355来标记。356: Chainsaw # 编号356代表电锯,在相关场景进行分析时,电锯的实例会被赋予编号356357: Eraser # 编号357代表橡皮擦,在数据标注中,橡皮擦的实例将被赋予编号357358: Lobster # 编号358代表龙虾,在场景分析或图像识别中,龙虾的实例会被归类到编号358对应的类别。359: Durian # 编号359代表榴莲,在涉及榴莲的图像或数据样本中,榴莲这一物体的类别编号为359 360: Okra # 编号360代表秋葵,在数据集中,秋葵类别的实例会用编号360来标记。361: Lipstick # 编号361代表口红,在相关场景进行分析时,口红的实例会被赋予编号361362: Cosmetics Mirror # 编号362代表化妆镜,在数据标注中,化妆镜的实例将被赋予编号362363: Curling # 编号363代表冰壶(运动)或卷发(造型行为),在相关数据标注中,根据数据集的具体指向,冰壶或与卷发相关物品的实例将被赋予编号363(需结合实际确定 )。364: Table Tennis # 编号364代表乒乓球(运动或乒乓球物体 ),在涉及乒乓球运动场景或乒乓球物体的图像数据中,该实例的类别编号为364# 从pathlib模块导入Path类,用于处理文件路径,提供了更方便、面向对象的文件路径操作方式
    from pathlib import Path# 导入numpy库并简写成np,用于数值计算
    import numpy as np# 从tqdm库导入tqdm,用于显示进度条,直观展示任务的进度
    from tqdm import tqdm# 从ultralytics.utils.checks模块导入check_requirements函数,用于检查所需的Python库是否安装
    from ultralytics.utils.checks import check_requirements# 从ultralytics.utils.downloads模块导入download函数,用于下载文件
    from ultralytics.utils.downloads import download# 从ultralytics.utils.ops模块导入xyxy2xywhn函数,用于将边界框坐标格式从xyxy转换为xywhn(归一化的xywh格式)
    from ultralytics.utils.ops import xyxy2xywhn# 检查是否安装了pycocotools库,并且版本是否大于等于2.0,若未安装或版本不满足要求,会提示安装
    check_requirements(("pycocotools>=2.0",))# 从pycocotools.coco模块导入COCO类,用于处理COCO数据集格式的标注文件
    from pycocotools.coco import COCO# Make Directories
    # 获取数据集根目录路径,从yaml配置文件中读取"path"字段的值,创建Path对象
    dir = Path(yaml["path"])  # 遍历"images""labels",为每个目录创建对应的文件夹
    for p in "images", "labels":# 创建目录,如果父目录不存在则创建,exist_ok=True表示如果目录已存在则不报错(dir / p).mkdir(parents=True, exist_ok=True)  # 对于每个"images""labels"目录,再分别创建"train""val"子目录for q in "train", "val":(dir / p / q).mkdir(parents=True, exist_ok=True)  # Train, Val Splits
    # 遍历训练集和验证集的相关参数,split为数据集的划分("train""val"),patches为相应划分的文件块数量
    for split, patches in [("train", 50 + 1), ("val", 43 + 1)]:# 打印当前正在处理的数据集划分和文件块数量信息print(f"Processing {split} in {patches} patches ...")  # 构建当前数据集划分的图像和标签目录路径images, labels = dir / "images" / split, dir / "labels" / split  # Download# 构建下载数据集文件的基础URLurl = f"https://dorc.ks3-cn-beijing.ksyun.com/data-set/2020Objects365%E6%95%B0%E6%8D%AE%E9%9B%86/{split}/"  if split == "train":# 下载训练集的标注文件(压缩格式)到数据集根目录download([f"{url}zhiyuan_objv2_{split}.tar.gz"], dir=dir)  # 并行下载训练集的图像文件块到图像目录,curl=True表示使用curl进行下载,threads=8表示使用8个线程加速下载download([f"{url}patch{i}.tar.gz" for i in range(patches)], dir=images, curl=True, threads=8)  elif split == "val":# 下载验证集的标注文件(JSON格式)到数据集根目录download([f"{url}zhiyuan_objv2_{split}.json"], dir=dir)  # 分两部分下载验证集的图像文件块到图像目录,先下载v1部分,再下载v2部分,都使用curl和8个线程download([f"{url}images/v1/patch{i}.tar.gz" for i in range(15 + 1)], dir=images, curl=True, threads=8)  download([f"{url}images/v2/patch{i}.tar.gz" for i in range(16, patches)], dir=images, curl=True, threads=8)  # Move# 遍历当前图像目录下所有的.jpg文件,tqdm用于显示进度条for f in tqdm(images.rglob("*.jpg"), desc=f"Moving {split} images"):# 将图像文件移动到当前数据集划分的图像目录下,文件名不变f.rename(images / f.name)  # Labels# 加载当前数据集划分的标注文件,创建COCO对象coco = COCO(dir / f"zhiyuan_objv2_{split}.json")  # 获取数据集中所有类别的名称names = [x["name"] for x in coco.loadCats(coco.getCatIds())]  # 遍历每个类别for cid, cat in enumerate(names):# 获取当前类别的类别IDcatIds = coco.getCatIds(catNms=[cat])  # 获取包含当前类别的所有图像的IDimgIds = coco.getImgIds(catIds=catIds)  # 遍历包含当前类别的每一幅图像for im in tqdm(coco.loadImgs(imgIds), desc=f"Class {cid + 1}/{len(names)} {cat}"):# 获取图像的宽度和高度width, height = im["width"], im["height"]  # 获取图像的文件名path = Path(im["file_name"])  try:# 打开对应的标签文件,以追加模式写入,编码为utf-8with open(labels / path.with_suffix(".txt").name, "a", encoding="utf-8") as file:# 获取当前图像中当前类别的所有标注IDannIds = coco.getAnnIds(imgIds=im["id"], catIds=catIds, iscrowd=None)  # 遍历每个标注for a in coco.loadAnns(annIds):# 获取标注的边界框坐标(xywh格式,左上角坐标和宽高)x, y, w, h = a["bbox"]  # 将xywh格式转换为xyxy格式(左上角和右下角坐标),并转换为numpy数组xyxy = np.array([x, y, x + w, y + h])[None]  # 将xyxy格式的边界框坐标转换为归一化的xywhn格式,clip=True表示裁剪超出图像边界的坐标x, y, w, h = xyxy2xywhn(xyxy, w=width, h=height, clip=True)[0]  # 将类别ID和归一化后的边界框坐标写入标签文件file.write(f"{cid} {x:.5f} {y:.5f} {w:.5f} {h:.5f}\n")  except Exception as e:# 如果在处理过程中出现异常,打印异常信息print(e)  
    

open-images-v7.yaml

  • # 导入warnings模块,用于处理警告信息
    import warnings# 从ultralytics.utils模块中导入LOGGER(用于记录日志)、SETTINGS(包含一些设置信息)、Path(用于处理文件路径)、get_ubuntu_version(获取Ubuntu系统版本号)、is_ubuntu(判断是否为Ubuntu系统)
    from ultralytics.utils import LOGGER, SETTINGS, Path, get_ubuntu_version, is_ubuntu# 从ultralytics.utils.checks模块中导入check_requirements(检查所需的Python库是否安装)和check_version(检查库的版本号)
    from ultralytics.utils.checks import check_requirements, check_version# 检查是否安装了fiftyone库,如果未安装则提示安装
    check_requirements("fiftyone")# 判断当前系统是否为Ubuntu且版本号大于等于22.04,如果是则检查是否安装了fiftyone-db-ubuntu2204库
    if is_ubuntu() and check_version(get_ubuntu_version(), ">=22.04"):check_requirements("fiftyone-db-ubuntu2204")# 导入fiftyone库并简写成fo,fiftyone是一个用于计算机视觉数据集管理和分析的库
    import fiftyone as fo# 导入fiftyone.zoo模块并简写成foz,用于加载预定义的数据集
    import fiftyone.zoo as foz# 定义数据集名称为open-images-v7
    name = "open-images-v7"# 设置fiftyone库中数据集的存储目录,将其设置为ultralytics的数据集目录下的fiftyone/open-images-v7路径
    fo.config.dataset_zoo_dir = Path(SETTINGS["datasets_dir"]) / "fiftyone" / name# 设置加载数据集样本的比例,这里设置为1.0表示加载全部样本
    fraction = 1.0# 记录一条警告日志,提示Open Images V7数据集至少需要561GB的可用空间,并开始下载
    LOGGER.warning("WARNING ⚠️ Open Images V7 dataset requires at least **561 GB of free space. Starting download...")# 遍历'train''validation',分别处理训练集和验证集
    for split in "train", "validation":# 判断当前处理的是否为训练集train = split == "train"# 从fiftyone的数据集库中加载open-images-v7数据集dataset = foz.load_zoo_dataset(name,  # 数据集名称split=split,  # 数据集划分,'train''validation'label_types=["detections"],  # 标签类型,这里是检测任务的标签# 根据训练集或验证集的样本数量以及设定的比例,计算要加载的最大样本数max_samples=round((1743042 if train else 41620) * fraction)  )# 如果当前处理的是训练集,获取训练集的所有类别if train:classes = dataset.default_classes# 捕获警告信息,忽略fiftyone.utils.yolo模块中UserWarning类型的警告with warnings.catch_warnings():warnings.filterwarnings("ignore", category=UserWarning, module="fiftyone.utils.yolo")# 将加载的数据集导出为YOLOv5数据集格式dataset.export(export_dir=str(Path(SETTINGS["datasets_dir"]) / name),  # 导出目录,为ultralytics数据集目录下的open-images-v7dataset_type=fo.types.YOLOv5Dataset,  # 导出的数据集类型为YOLOv5数据集label_field="ground_truth",  # 标签字段名split="val" if split == "validation" else split,  # 如果是验证集则导出为val划分,否则使用原划分名称classes=classes,  # 数据集的类别列表(仅在训练集时有效)overwrite=train  # 如果是训练集则覆盖已存在的文件,否则不覆盖)
    
  • 飞机、航空器;飞机;闹钟;羊驼;救护车;动物;蚂蚁;羚羊;苹果;犰狳;洋蓟;汽车零部件;
    斧头;背包;百吉饼;烘焙食品;平衡木;球;气球;香蕉;创可贴;班卓琴;驳船;桶;棒球棒;
  • 棒球手套;蝙蝠(动物);浴室配件;浴室柜;浴缸;烧杯;熊;床;蜜蜂;蜂巢;啤酒;甲虫;
    甜椒;皮带;长椅;自行车;自行车头盔;自行车轮;坐浴盆;广告牌;台球桌;双筒望远镜;鸟;搅拌机
  • 冠蓝鸦;船;炸弹;书;书架;靴子;瓶子;开瓶器;弓和箭;碗;保龄球设备;盒子;男孩;胸罩;
  • 面包;公文包;西兰花;青铜雕塑;棕熊;建筑物;公牛;墨西哥卷饼;公共汽车;半身像;蝴蝶;卷心菜;橱柜;蛋糕;
  • 蛋糕架;计算器;骆驼;相机;开罐器;金丝雀;蜡烛;糖果;大炮;独木舟;哈密瓜;汽车;食肉动物;胡萝卜;手推车;
  • 卡带机;城堡;猫;猫用家具;毛毛虫;牛;吊扇;大提琴;蜈蚣;电锯;椅子;奶酪;猎豹;
  • 五斗柜;鸡;编钟;凿子;筷子;圣诞树;时钟;壁橱;衣物;外套;鸡尾酒;鸡尾酒摇壶;
  • 椰子;咖啡;咖啡杯;咖啡桌;咖啡机;硬币;无花果;向日葵;计算机键盘;计算机显示器;
  • 计算机鼠标;容器;便利店;饼干;烹饪喷雾;有线电话;化妆品;沙发;台面;牛仔帽;螃蟹;
  • 奶油;板球;鳄鱼;羊角面包;皇冠;拐杖;黄瓜;碗柜;窗帘;切菜板;匕首;乳制品;鹿;
  • 书桌;甜点;尿布;骰子;数字时钟;恐龙;洗碗机;狗;狗床;玩偶;海豚;门;门把手;甜甜圈;蜻蜓;
  • 抽屉;连衣裙;电钻(工具);饮料;吸管;鼓;鸭子;哑铃;鹰;耳环;鸡蛋(食物);大象;信封;橡皮擦;
  • 粉饼;面巾纸盒;猎鹰;时尚配饰;快餐;传真机;软毡帽;文件柜;消防栓;壁炉;鱼;
  • 旗帜;手电筒;花;花盆;长笛;飞盘;食物;食品加工机;橄榄球;橄榄球头盔;鞋类;叉子;喷泉;狐狸;
  • 炸薯条;法国号;青蛙;水果;煎锅;家具;芦笋;煤气炉;长颈鹿;女孩;眼镜;手套;山羊;
  • 护目镜;金鱼;高尔夫球;高尔夫球车;贡多拉;鹅;葡萄;葡萄柚;研磨机;鳄梨酱;吉他;吹风机;发胶;
  • 汉堡包;锤子;仓鼠;干手器;手提包;手枪;港海豹;口琴;竖琴;羽管键琴;帽子;耳机;加热器;刺猬;
  • 直升机;头盔;高跟鞋;徒步装备;河马;家用电器;蜂巢;单杠;马;热狗;房子;
  • 室内植物;人的手臂;人的胡须;人体;人的耳朵;人的眼睛;人的脸;人的脚;人的头发;人的手;人的头;
  • 人的腿;人的嘴;人的鼻子;加湿器;冰淇淋;室内划船机;婴儿床;昆虫;无脊椎动物;iPod(苹果公司音乐播放器);等足目动物;夹克;
  • 按摩浴缸;美洲豹(动物);牛仔裤;水母;喷气式滑艇;罐子;果汁;袋鼠;水壶;厨房和餐厅桌子;厨房电器;
  • 菜刀;厨房用具;厨房 ware;风筝;刀;考拉;梯子;长柄勺;瓢虫;灯;陆地车辆;灯笼;笔记本电脑;
  • 薰衣草(植物);柠檬;豹;电灯泡;电灯开关;灯塔;百合;豪华轿车;狮子;口红;蜥蜴;龙虾;
  • 双人沙发;行李和包;猞猁;喜鹊;哺乳动物;男人;芒果;枫树;沙球;海洋无脊椎动物;海洋哺乳动物;量杯;
  • 机械风扇;医疗设备;麦克风;微波炉;牛奶;迷你裙;镜子;导弹;搅拌器;搅拌碗;移动电话;
  • 猴子;蛾和蝴蝶;摩托车;老鼠;松饼;马克杯;骡子;蘑菇;乐器;音乐键盘
  • 钉子(建筑用)、项链、床头柜、双簧管、办公楼、办公用品、橙子、管风琴(乐器)、鸵鸟、
  • 水獭、烤箱、猫头鹰、牡蛎、桨、棕榈树、煎饼、熊猫、裁纸刀、纸巾、降落伞、停车计时器、鹦鹉、意大利面、
  • 糕点、桃子、梨、钢笔、铅笔盒、卷笔刀、企鹅、香水、人、个人护理用品
  • 个人漂浮装置、钢琴、野餐篮、相框、猪、枕头、菠萝、水罐(容器)、披萨、披萨刀、
  • 植物、塑料袋、盘子、大浅盘、管道装置、北极熊、石榴、爆米花、门廊、豪猪、海报、土豆、
  • 电源插头和插座、高压锅、椒盐卷饼、打印机、南瓜、沙袋、兔子、浣熊、球拍、萝卜、棘轮(装置)、
  • 渡鸦、魟鱼和鳐鱼、小熊猫、冰箱、遥控器、爬行动物、犀牛、步枪、活页夹、火箭、旱冰鞋、玫瑰、
  • 橄榄球、尺子、沙拉、盐和胡椒瓶、凉鞋、三明治、茶碟、萨克斯管、秤、围巾、剪刀、记分牌、蝎子、
  • 螺丝刀、雕塑、海狮、海龟、海鲜、海马、安全带、平衡车、托盘、缝纫机、鲨鱼、羊、架子、
  • 贝类、衬衫、短裤、猎枪、淋浴器、虾、水槽、滑板、滑雪板、裙子、头骨、臭鼬、摩天大楼、慢炖锅、小吃、蜗牛、
  • 蛇、滑雪板、雪人、雪地摩托、扫雪机、肥皂分配器、袜子、沙发床、宽边帽、麻雀、锅铲、调味架、蜘蛛、
  • 勺子、体育器材、运动制服、南瓜(植物)、鱿鱼、松鼠、楼梯、订书机、海星、健身自行车、听诊器、
  • 凳子、停车标志、草莓、路灯、担架、摄影棚长沙发、潜艇、潜艇三明治(长潜艇形三明治)、套装、手提箱、太阳帽、太阳镜、
  • 冲浪板、寿司、天鹅、游泳帽、游泳池、泳衣、剑、注射器、桌子、乒乓球拍、平板电脑、餐具、
  • 墨西哥玉米卷、坦克、水龙头、果馅饼、出租车、茶、茶壶、泰迪熊、电话、电视、网球、网球拍、帐篷、冠状头饰、蜱虫、领带、
  • 老虎、罐头、轮胎、烤面包机、马桶、卫生纸、番茄、工具、牙刷、手电筒、乌龟、毛巾、塔、玩具、交通信号灯
  • 交通标志、火车、训练长椅、跑步机、树、树屋、三脚架、长号、裤子、卡车、小号、火鸡、海龟、
  • 雨伞、独轮车、厢式货车、花瓶、蔬菜、车辆、车牌、小提琴、排球(球)、华夫饼、华夫饼烤盘、
  • 挂钟、衣柜、洗衣机、垃圾桶、手表、船只、西瓜、武器、鲸鱼、轮子、轮椅、打蛋器、白板、柳树、窗户、百叶窗、葡萄酒、葡萄酒杯、酒架、冬瓜、炒锅、女人、烧木柴的炉子、
  • 啄木鸟、虫子、扳手、斑马、西葫芦

相关文章:

  • 清理HiNas(海纳斯) Docker日志并限制日志大小
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
  • 【Linux学习笔记】进程的fork创建 exit终止 wait等待
  • Graph Database Self-Managed Neo4j 知识图谱存储实践2:通过官方新手例子入门(未完成)
  • WebGL2简单实例
  • VsCode如何使用默认程序打开word Excel pdf等文件
  • 珍爱网:从降本增效到绿色低碳,数字化新基建价值凸显
  • 浅析锁的应用与场景
  • Java大模型开发与应用 - 面试实战
  • SQL 函数进行左边自动补位fnPadLeft和FORMAT
  • 嵌入式开发:基础知识介绍
  • vue-lottie的使用和配置
  • Linux系统中命令设定临时IP
  • Linux:进程的等待
  • 装备制造企业选型:什么样的项目管理系统最合适?
  • java实现网格交易回测
  • MySQL 库的操作 -- 增删改查,备份和恢复,系统编码
  • SIEMENS PLC程序解读 -BLKMOV (指定长度数据批量传输)
  • 深度学习之卷积神经网络入门
  • 火山云的市场竞争
  • 世联行:2024年营业收入下降27%,核心目标为“全面消除亏损公司和亏损项目”
  • 福耀科技大学发布招生章程:专业培养语种为英语,综合改革省份选考需含物化
  • 王宝强谈《棋士》:饰演这个灰度人物有一种被割裂的痛苦
  • 国防部:菲挑衅滋事违背地区国家共同利益
  • 中国牵头制定,在线旅游机构和展览与活动领域ISO国际标准发布
  • 联手华为猛攻主流市场,上汽集团总裁:上汽不做生态孤岛