o gW@sddlZddlZddlmZddlmZddlmZddlmZddl m Z ddl m Z dd l mZde_e Z d Zed ZGd d d ejZdS)N)Image)data) transforms)tqdm)Config)preproc) path_to_imageahAirplane, Ant, Antenna, Archery, Axe, BabyCarriage, Bag, BalanceBeam, Balcony, Balloon, Basket, BasketballHoop, Beatle, Bed, Bee, Bench, Bicycle, BicycleFrame, BicycleStand, Boat, Bonsai, BoomLift, Bridge, BunkBed, Butterfly, Button, Cable, CableLift, Cage, Camcorder, Cannon, Canoe, Car, CarParkDropArm, Carriage, Cart, Caterpillar, CeilingLamp, Centipede, Chair, Clip, Clock, Clothes, CoatHanger, Comb, ConcretePumpTruck, Crack, Crane, Cup, DentalChair, Desk, DeskChair, Diagram, DishRack, DoorHandle, Dragonfish, Dragonfly, Drum, Earphone, Easel, ElectricIron, Excavator, Eyeglasses, Fan, Fence, Fencing, FerrisWheel, FireExtinguisher, Fishing, Flag, FloorLamp, Forklift, GasStation, Gate, Gear, Goal, Golf, GymEquipment, Hammock, Handcart, Handcraft, Handrail, HangGlider, Harp, Harvester, Headset, Helicopter, Helmet, Hook, HorizontalBar, Hydrovalve, IroningTable, Jewelry, Key, KidsPlayground, Kitchenware, Kite, Knife, Ladder, LaundryRack, Lightning, Lobster, Locust, Machine, MachineGun, MagazineRack, Mantis, Medal, MemorialArchway, Microphone, Missile, MobileHolder, Monitor, Mosquito, Motorcycle, MovingTrolley, Mower, MusicPlayer, MusicStand, ObservationTower, Octopus, OilWell, OlympicLogo, OperatingTable, OutdoorFitnessEquipment, Parachute, Pavilion, Piano, Pipe, PlowHarrow, PoleVault, Punchbag, Rack, Racket, Rifle, Ring, Robot, RockClimbing, Rope, Sailboat, Satellite, Scaffold, Scale, Scissor, Scooter, Sculpture, Seadragon, Seahorse, Seal, SewingMachine, Ship, Shoe, ShoppingCart, ShoppingTrolley, Shower, Shrimp, Signboard, Skateboarding, Skeleton, Skiing, Spade, SpeedBoat, Spider, Spoon, Stair, Stand, Stationary, SteeringWheel, Stethoscope, Stool, Stove, StreetLamp, SweetStand, Swing, Sword, TV, Table, TableChair, TableLamp, TableTennis, Tank, Tapeline, Teapot, Telescope, Tent, TobaccoPipe, Toy, Tractor, TrafficLight, TrafficSign, Trampoline, TransmissionTower, Tree, Tricycle, TrimmerCover, Tripod, Trombone, Truck, Trumpet, Tuba, UAV, Umbrella, UnevenBars, UtilityPole, VacuumCleaner, Violin, Wakesurfing, Watch, WaterTower, WateringPot, Well, WellLid, Wheel, Wheelchair, WindTurbine, Windmill, WineGlass, WireWhisk, Yachtz, c@s&eZdZd ddZddZddZdS) MyDataTc s||_||_tj |_tj|_||_tj|_tj|_gd|jr.tj r.ddt t D|_ t t |jdddt t gdgdg|jpL|jd|_t t |jdddt g|jpg|jd|_tjtjtj}g|_|dD]}tj||d|jfd d tD7_q~g|_|jD]6}D]*}|d d dt|d dd |}d} tj|r|j |d} nq| st!d|qt|jt|jkrt"dd |jD} t"dd |jD} t!d| | t#dt|jdt|jd|jrjgg|_$|_%g|_&t't(|j|jt|jdD]@\} } t)| tjdd}t)| tjdd}|j$ ||j% ||j& |jretj re|j | ddddndq+dSdS)N)z.pngz.jpgz.PNGz.JPGz.JPEGcSsi|]\}}||qSr ).0_id_namer r D/media/xrlab/新加卷/muyuan/LHM2025/LHM/engine/BiRefNet/dataset.py .s z#MyData.__init__..)g ףp= ?gv/?gCl?)gZd;O?gy&1?g?+imcs0g|]tfddDrtjqS)c3s|]}|VqdSN)endswith)r extpr r Fsz-MyData.__init__...)anyospathjoin)r  image_rootZvalid_extensionsrr Cs  z#MyData.__init__..z/im/z/gt/.rFTz Not exists:cS(g|]}tj|tjddqSrrrrsplitextsplitsepr rr r rr W(cSr"r#r$r(r r rr Zr)z Path diff:z'There are different numbers of images (z) and labels ())totalrgbsizeZ color_typegray/#)*Z size_trainZ size_testconfigr.Z keep_size data_sizeis_trainload_alldeviceauxiliary_classification enumerateclass_labels_TR_sorted cls_name2idrComposeResizeToTensor Normalizetransform_imagetransform_labelrrr data_root_dirtask image_pathsr&listdir label_pathsreplacelenexistsappendprintset ValueError images_loaded labels_loadedclass_labels_loadedrzipr )selfdatasets image_sizer5Z dataset_rootdatasetrrZp_gt file_existsZset_image_pathsZset_label_paths image_pathZ label_path_image_labelr rr__init__#s    ,     "zMyData.__init__cCs|jr|j|}|j|}|jrtjr|j|nd}n0t|j|tj dd}t|j |tj dd}|jrItjrI|j |j | dd ddnd}|jrXt ||tjd\}}||||}}|jrk|||fS|||j |fS) Nrr,r-r/r0r1r2)preproc_methods)r6rNrOr5r3r8rPr rDr.rFr;r&rr[r@rA)rRindeximagelabel class_labelr r r __getitem__rs6   & zMyData.__getitem__cCs t|jSr)rHrD)rRr r r__len__s zMyData.__len__N)T)__name__ __module__ __qualname__rZr`rar r r rr "s O &r )rcv2PILr torch.utilsr torchvisionrrr3rZ image_procrutilsr MAX_IMAGE_PIXELSZ_class_labels_TR_sortedr&r:Datasetr r r r rs