最近在物体检测 用到了detectron2 要使用coco类型数据 将网上下载的VOC2028转化为coco格式后跑 提示xxx.jpg不存在 困扰我好久 发现是网上下载的数据集中xml标注文件的filename和图片名不对应。
由于不是很熟悉python 写了段java 检查xml中的filename与图片名称是否对应 ,如果不对应将图片重命名为xml中的filename字段。
import java.io.File;
import java.util.ArrayList;
import java.util.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.dom4j.io.SAXReader;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class CheckFIle {
public static void main(String[] args) {
ArrayList<String> files = getFiles("D:\\BaiduNetdiskDownload\\VOC2028\\Annotations\\");//标注文件xml路径
ArrayList<String> images = getFiles("D:\\BaiduNetdiskDownload\\VOC2028\\JPEGImages\\");//图片路径
ArrayList<String> imageName = new ArrayList<>();
//读取所有图片名
for (String item:images) {
String fileName = getFileName(item);
imageName.add(fileName);
}