数据集-高分辨率SAR飞机检测识别及分类数据集飞机检测、飞机分类、飞机识别共包含图像4,368幅分辨率为1m成像模式为聚束式极化方式为单极化。数据集包含800×800、1000×1000、1200×1200和1500×1500共4种不同尺寸图像共有16,463个飞机目标实例包括A220、A320/321、A330、ARJ21、Boeing737、Boeing787和other共7个类别支持检测任务、识别任务以及检测识别一体化任务。本数据集具有场景复杂、类别丰富、目标密集、噪声干扰、任务多样、多尺度性的特点。数据集中图像格式为jpg标注文件格式为xml标注中提供了相应图像的长宽尺寸、标注目标的类别以及标注矩形框的位置。以下是“高分辨率SAR飞机检测识别及分类数据集”的结构化表格描述属性类别详细描述数据集名称HR-SAR-Aircraft高分辨率SAR飞机数据集图像总数4,368 幅空间分辨率1 米成像模式聚束式Spotlight Mode极化方式单极化Single Polarization图像尺寸多尺度共4种• 800 × 800• 1000 × 1000• 1200 × 1200• 1500 × 1500像素图像格式JPG标注格式XMLPASCAL VOC 风格标注内容- 图像宽度与高度- 每个目标的类别名称- 目标边界框坐标xmin, ymin, xmax, ymax目标实例总数16,463 个飞机目标类别数量7 类具体类别1. A2202. A320/3213. A3304. ARJ215. Boeing7376. Boeing7877. other其他机型支持任务类型- 飞机目标检测Detection- 飞机细粒度分类Classification- 检测与识别一体化Joint Detection Recognition数据集特点-场景复杂包含机场、停机坪、滑行道等多种背景-类别丰富覆盖主流民航客机及国产机型-目标密集单图可含多个飞机目标-噪声干扰强SAR成像固有斑点噪声-多尺度性图像与目标尺寸变化大-任务多样性支持从检测到细粒度识别的全链条研究✅ 该数据集适用于合成孔径雷达SAR图像智能解译、遥感目标识别、小样本/密集目标检测、多尺度特征学习等前沿研究方向。1训练高分辨率SAR飞机检测识别及分类数据集使用深度学习框架如PyTorch或TensorFlow。1. 安装依赖首先确保你已经安装了必要的库pipinstalltorch torchvision pycocotools opencv-python2. 数据预处理创建一个自定义的数据集类来加载和预处理图像及其标注信息。# dataset.pyimportosimporttorchfromtorch.utils.dataimportDatasetimportcv2importxml.etree.ElementTreeasETclassAircraftDataset(Dataset):def__init__(self,img_dir,annotation_dir,transformNone):self.img_dirimg_dir self.annotation_dirannotation_dir self.transformtransform self.img_names[fforfinos.listdir(img_dir)iff.endswith(.jpg)]def__len__(self):returnlen(self.img_names)def__getitem__(self,idx):img_nameself.img_names[idx]img_pathos.path.join(self.img_dir,img_name)annotation_pathos.path.join(self.annotation_dir,img_name.replace(.jpg,.xml))# Load imageimgcv2.imread(img_path)imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)# Parse annotationstreeET.parse(annotation_path)roottree.getroot()boxes[]labels[]forobjinroot.findall(object):labelobj.find(name).text bboxobj.find(bndbox)xminint(bbox.find(xmin).text)yminint(bbox.find(ymin).text)xmaxint(bbox.find(xmax).text)ymaxint(bbox.find(ymax).text)boxes.append([xmin,ymin,xmax,ymax])labels.append(self.class_to_idx[label])# Convert class name to indexboxestorch.as_tensor(boxes,dtypetorch.float32)labelstorch.as_tensor(labels,dtypetorch.int64)target{}target[boxes]boxes target[labels]labelsifself.transform:imgself.transform(img)returnimg,targetpropertydefclass_to_idx(self):return{A220:1,A320/321:2,A330:3,ARJ21:4,Boeing737:5,Boeing787:6,other:7}3. 模型定义与训练脚本接下来是定义模型并编写训练脚本。# train.pyimporttorchfromtorchvision.models.detectionimportfasterrcnn_resnet50_fpnfromtorchvision.transformsimporttransformsfromtorch.utils.dataimportDataLoaderfromdatasetimportAircraftDatasetdefcollate_fn(batch):returntuple(zip(*batch))defmain():devicetorch.device(cuda)iftorch.cuda.is_available()elsetorch.device(cpu)# Define transformationstransformtransforms.Compose([transforms.ToTensor(),])# Initialize dataset and dataloaderdatasetAircraftDataset(img_dirpath/to/images,annotation_dirpath/to/annotations,transformtransform)data_loaderDataLoader(dataset,batch_size2,shuffleTrue,num_workers4,collate_fncollate_fn)# Initialize modelmodelfasterrcnn_resnet50_fpn(pretrainedTrue)num_classes8# Background 7 aircraft classesin_featuresmodel.roi_heads.box_predictor.cls_score.in_features model.roi_heads.box_predictortorch.nn.Linear(in_features,num_classes)model.to(device)# Set up optimizerparams[pforpinmodel.parameters()ifp.requires_grad]optimizertorch.optim.SGD(params,lr0.005,momentum0.9,weight_decay0.0005)# Training loopnum_epochs10forepochinrange(num_epochs):model.train()forimages,targetsindata_loader:imageslist(image.to(device)forimageinimages)targets[{k:v.to(device)fork,vint.items()}fortintargets]loss_dictmodel(images,targets)lossessum(lossforlossinloss_dict.values())optimizer.zero_grad()losses.backward()optimizer.step()print(fEpoch{epoch1}/{num_epochs}, Loss:{losses.item()})if__name____main__:main()注意事项确保替换path/to/images和path/to/annotations为你的实际数据路径。根据你的硬件情况调整batch_size和其他超参数。此代码仅作为一个基础框架可能需要根据具体需求进一步优化比如添加验证集评估、模型保存等。这个示例展示了如何使用Faster R-CNN模型对高分辨率SAR飞机检测识别及分类数据集进行训练。希望这对你有所帮助