開源項目實戰學習之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;風箏;刀;考拉;梯子;長柄勺;瓢蟲;燈;陸地車輛;燈籠;筆記本電腦;
  • 薰衣草(植物);檸檬;豹;電燈泡;電燈開關;燈塔;百合;豪華轎車;獅子;口紅;蜥蜴;龍蝦;
  • 雙人沙發;行李和包;猞猁;喜鵲;哺乳動物;男人;芒果;楓樹;沙球;海洋無脊椎動物;海洋哺乳動物;量杯;
  • 機械風扇;醫療設備;麥克風;微波爐;牛奶;迷你裙;鏡子;導彈;攪拌器;攪拌碗;移動電話;
  • 猴子;蛾和蝴蝶;摩托車;老鼠;松餅;馬克杯;騾子;蘑菇;樂器;音樂鍵盤
  • 釘子(建筑用)、項鏈、床頭柜、雙簧管、辦公樓、辦公用品、橙子、管風琴(樂器)、鴕鳥、
  • 水獺、烤箱、貓頭鷹、牡蠣、槳、棕櫚樹、煎餅、熊貓、裁紙刀、紙巾、降落傘、停車計時器、鸚鵡、意大利面、
  • 糕點、桃子、梨、鋼筆、鉛筆盒、卷筆刀、企鵝、香水、人、個人護理用品
  • 個人漂浮裝置、鋼琴、野餐籃、相框、豬、枕頭、菠蘿、水罐(容器)、披薩、披薩刀、
  • 植物、塑料袋、盤子、大淺盤、管道裝置、北極熊、石榴、爆米花、門廊、豪豬、海報、土豆、
  • 電源插頭和插座、高壓鍋、椒鹽卷餅、打印機、南瓜、沙袋、兔子、浣熊、球拍、蘿卜、棘輪(裝置)、
  • 渡鴉、魟魚和鰩魚、小熊貓、冰箱、遙控器、爬行動物、犀牛、步槍、活頁夾、火箭、旱冰鞋、玫瑰、
  • 橄欖球、尺子、沙拉、鹽和胡椒瓶、涼鞋、三明治、茶碟、薩克斯管、秤、圍巾、剪刀、記分牌、蝎子、
  • 螺絲刀、雕塑、海獅、海龜、海鮮、海馬、安全帶、平衡車、托盤、縫紉機、鯊魚、羊、架子、
  • 貝類、襯衫、短褲、獵槍、淋浴器、蝦、水槽、滑板、滑雪板、裙子、頭骨、臭鼬、摩天大樓、慢燉鍋、小吃、蝸牛、
  • 蛇、滑雪板、雪人、雪地摩托、掃雪機、肥皂分配器、襪子、沙發床、寬邊帽、麻雀、鍋鏟、調味架、蜘蛛、
  • 勺子、體育器材、運動制服、南瓜(植物)、魷魚、松鼠、樓梯、訂書機、海星、健身自行車、聽診器、
  • 凳子、停車標志、草莓、路燈、擔架、攝影棚長沙發、潛艇、潛艇三明治(長潛艇形三明治)、套裝、手提箱、太陽帽、太陽鏡、
  • 沖浪板、壽司、天鵝、游泳帽、游泳池、泳衣、劍、注射器、桌子、乒乓球拍、平板電腦、餐具、
  • 墨西哥玉米卷、坦克、水龍頭、果餡餅、出租車、茶、茶壺、泰迪熊、電話、電視、網球、網球拍、帳篷、冠狀頭飾、蜱蟲、領帶、
  • 老虎、罐頭、輪胎、烤面包機、馬桶、衛生紙、番茄、工具、牙刷、手電筒、烏龜、毛巾、塔、玩具、交通信號燈
  • 交通標志、火車、訓練長椅、跑步機、樹、樹屋、三腳架、長號、褲子、卡車、小號、火雞、海龜、
  • 雨傘、獨輪車、廂式貨車、花瓶、蔬菜、車輛、車牌、小提琴、排球(球)、華夫餅、華夫餅烤盤、
  • 掛鐘、衣柜、洗衣機、垃圾桶、手表、船只、西瓜、武器、鯨魚、輪子、輪椅、打蛋器、白板、柳樹、窗戶、百葉窗、葡萄酒、葡萄酒杯、酒架、冬瓜、炒鍋、女人、燒木柴的爐子、
  • 啄木鳥、蟲子、扳手、斑馬、西葫蘆

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78445.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78445.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78445.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

23種設計模式-行為型模式之策略模式(Java版本)

Java 策略模式&#xff08;Strategy Pattern&#xff09;詳解 &#x1f9e0; 什么是策略模式&#xff1f; 策略模式是一種行為型設計模式&#xff0c;它定義了一系列算法&#xff0c;把它們一個個封裝起來&#xff0c;并且使它們可以互相替換。策略模式讓算法獨立于使用它的客…

使用 AI Agent 改善師生互動的設計文檔

使用 AI Agent 改善師生互動的設計文檔 一、引言 1.1 研究背景 當前教育領域的師生互動存在諸多挑戰&#xff0c;如教師負擔過重、學生個體差異大導致難以滿足所有人的需求&#xff0c;以及信息傳遞延遲等問題。引入AI-Agent能夠有效緩解這些問題&#xff0c;通過自動化手段協…

2、Ubuntu 環境下安裝RabbitMQ

?. 安裝Erlang RabbitMqRabbitMq需要Erlang語?的?持&#xff0c;在安裝rabbitMq之前需要安裝erlang需要Erlang語?的?持&#xff0c;在安裝rabitMq之前需要安裝erlang。 安裝erlang # 更新軟件包 sudo apt-get update # 安裝 erlang sudo apt-get install erlang 查看er…

Node.js 操作 ElasticSearch 完整指南:從安裝到實戰

本文將手把手教你如何搭建 ElasticSearch 環境&#xff0c;并通過 Node.js 實現高效數據檢索。包含 10 個可直接復用的代碼片段&#xff0c;助你快速掌握搜索、聚合等核心功能&#xff01; 環境搭建篇 1. ElasticSearch 安裝要點 下載 es下載連接 下載下來后&#xff0c;進…

硬核科普丨2025年安全、高效網絡準入控制系統深度解析

陽途網絡準入控制系統&#xff08;Network Access Control&#xff0c;簡稱NAC&#xff09;是當代網絡安全領域的重要工具&#xff0c;有效防止未經授權的訪問和數據泄露&#xff0c;保障網絡資源的安全性和完整性。本文將深入探討陽途網絡準入控制系統的的重要性和作用。 一、…

搜索二叉樹-key的搜索模型

二叉搜索樹(Binary Search Tree, BST)是一種重要的數據結構&#xff0c;它有兩種基本模型&#xff1a;Key模型和Key/Value模型。 一、Key模型 1.基本概念 Key模型是二叉搜索樹中最簡單的形式&#xff0c;每個節點只存儲一個鍵值(key)&#xff0c;沒有額外的數據值(value)。這…

安卓四大組件之ContentProvider

目錄 實現步驟 代碼分析 onCreate insert query ContextHolder Cursor 作用與用法 基本步驟&#xff1a; 可能的面試題&#xff1a;為什么使用Cursor&#xff1f; 為什么使用Cursor 使用Cursor的好處 靜態內部類實現單例模式 AnndroidManifest.xml配置信息 注釋的…

【HTML】【Web開發】滑動條挑戰

最近在思考如何開發一些入門級的迷你游戲&#xff0c;于是抽空寫了個HTML的滑動條小游戲。 游戲規則如下&#xff1a; 在[0, 100]區間內隨機生成一個目標值&#xff0c;顯示為&#xff1a;X% 倒計時 3 秒過后&#xff0c;出現 10 秒的挑戰倒計時和【停止】按鈕 挑戰倒計時結…

面試踩過的坑

1、 “”和equals 的區別 “”是運算符&#xff0c;如果是基本數據類型&#xff0c;則比較存儲的值&#xff1b;如果是引用數據類型&#xff0c;則比較所指向對象的地址值。equals是Object的方法&#xff0c;比較的是所指向的對象的地址值&#xff0c;一般情況下&#xff0c;重…

專業軟件開發全流程實踐指南

作為一家擁有十余年行業積淀的專業軟件開發服務提供商&#xff0c;我們見證了太多項目從無到有的全過程。今天&#xff0c;我們就用最樸實的語言&#xff0c;跟大家聊聊一個軟件產品從構思到上線的完整歷程。這些經驗不僅適用于自建技術團隊的企業&#xff0c;對正在尋找軟件外…

聊透多線程編程-線程互斥與同步-12. C# Monitor類實現線程互斥

目錄 一、什么是臨界區&#xff1f; 二、Monitor類的用途 三、Monitor的基本用法 四、Monitor的工作原理 五、使用示例1-保護共享變量 解釋&#xff1a; 六、使用示例2-線程間信號傳遞 解釋&#xff1a; 七、注意事項 八、總結 在多線程編程中&#xff0c;線程之間的…

第R4周:LSTM-火災溫度預測

文章目錄 一、前期準備工作1.導入數據2. 數據集可視化 二、構建數據集1. 數據集預處理2. 設置X, y3. 劃分數據集 三、模型訓練1. 構建模型2. 定義訓練函數3. 定義測試函數4. 正式訓練模型 四、模型評估1. Loss圖片2. 調用模型進行預測3. R2值評估 總結&#xff1a; &#x1f36…

toCharArray作用

toCharArray() 是 Java 中 String 類的一個方法&#xff0c;其作用是將字符串對象轉換為一個字符數組。下面為你詳細介紹其用法、原理和示例。 方法定義 toCharArray() 方法在 java.lang.String 類里被定義&#xff0c;方法簽名如下 public char[] toCharArray() 此方法沒有…

STM32八股【6】-----CortexM3的雙堆棧(MSP、PSP)設計

STM32的線程模式&#xff08;Thread Mode&#xff09;和內核模式&#xff08;Handler Mode&#xff09;以及其對應的權級和堆棧指針 線程模式&#xff1a; 正常代碼執行時的模式&#xff08;如 main 函數、FreeRTOS任務&#xff09; 可以是特權級&#xff08;使用MSP&#xff…

驅動支持的最高CUDA版本與實際安裝的Runtime版本

查看電腦上安裝的CUDA版本的多種方法&#xff0c;適用于不同系統和場景。 方法一&#xff1a;通過命令行工具 1. 查看CUDA Driver API版本&#xff08;顯卡驅動支持的CUDA版本&#xff09; 命令&#xff1a;nvidia-smi操作&#xff1a; 打開終端&#xff08;Windows為CMD/Pow…

Python CT圖像預處理——基于ITK-SNAP

Python CT圖像預處理——nii格式讀取、重采樣、窗寬窗位設置_python讀取nii-CSDN博客 基于原文指出以下幾個問題&#xff1a;文件路徑設置模糊&#xff1b;nilabel里面使用的get_data() 方法已經過時&#xff1b;需要導入scikit-image&#xff0c;還要導入一個matplotlib。 一…

【MQ篇】RabbitMQ之消息持久化!

目錄 一、 交換機持久化 (Exchange Persistence)二、 隊列持久化 (Queue Persistence)三、 消息持久化 (Message Persistence)四、 持久化的“黃金三角” &#x1f531;&#xff1a;三者缺一不可&#xff01;五、 來&#xff0c;完整的代碼示例&#xff08;整合持久化和確認機制…

[AI技術(二)]JSONRPC協議MCPRAGAgent

Agent概述(一) AI技術基礎(一) JSON-RPC 2.0 協議詳解 JSON-RPC 2.0 是一種基于 JSON 的輕量級遠程過程調用(RPC)協議,旨在簡化跨語言、跨平臺的遠程通信。以下從協議特性、核心結構、錯誤處理、批量請求等角度進行詳細解析: 一、協議概述 1. 設計原則 ? 簡單性:…

LeetCode238_除自身以外數組的乘積

LeetCode238_除自身以外數組的乘積 標簽&#xff1a;#數組 #前綴和Ⅰ. 題目Ⅱ. 示例0. 個人方法一&#xff1a;暴力循環嵌套0. 個人方法二&#xff1a;前綴和后綴分別求積 標簽&#xff1a;#數組 #前綴和 Ⅰ. 題目 給你一個整數數組 nums&#xff0c;返回 數組 answer &#…

算法筆記.spfa算法(bellman-ford算法的改進)

題目&#xff1a;&#xff08;來源于AcWing&#xff09; 給定一個 n 個點 m 條邊的有向圖&#xff0c;圖中可能存在重邊和自環&#xff0c; 邊權可能為負數。 請你求出 1 號點到 n 號點的最短距離&#xff0c;如果無法從 1 號點走到 n 號點&#xff0c;則輸出 impossible。 …