1. xml标签格式问题
原本的标签是yaml格式的,需要转换成xml格式。
在制作xml标签时,有些信息是比较重要的不能省略
<?xml version="1.0" encoding="utf-8"?>
<annotation>
<folder>VOC2007</folder>
<filename>00200000141.jpg</filename>
<size> #图片的大小
<width>480</width>
<height>640</height>
<depth>3</depth>
</size>
<segmented>0</segmented> #标签是否分割
<object>
<name>hand</name> #目标的名称
<pose>Unspecified</pose> #目标的姿态
<truncated>0</truncated> #是否被遮挡>15%
<difficult>0</difficult> #是否为难识别的物体,主要指要结体背景才能判断出类别的物体,一般忽略
<bndbox> #物体在图像中的位置
<xmin>64</xmin>
<ymin>279</ymin>
<xmax>201</xmax>
<ymax>397</ymax>
</bndbox>
</object>
</annotation>
2. 出现rpn_loss_box=NAN的问题
遇到过好多次这个问题,最后发现都是标签有问题,因此在出现NAN的地方,对应着trainval.txt去查找。看看是哪个标签出了问题,快速检查的方法是:删除对应的标签,重新训练,看看在原来的地方还会不会有问题,如果没有那就一定是标签出现了问题。再对标签进行修改!
3. 训练之前需要安装的一些包
pip install pyyaml
pip install cython
pip install opencv-python
pip install easydict==1.6
pip install matplotlib
pip install Pillow
pip install scipy
4. 按照https://github.com/endernewton/tf-faster-rcnn的命令进行训练,最后出现FileNotFoundError的错误
这是因为没有创建对应路径的文件夹的原因,在提示的路径下以此创建对应文件夹即可:
tf-faster-rcnn/data/VOCdevkit2007/results/VOC2007/Main/
5. 按照https://github.com/endernewton/tf-faster-rcnn的命令进行训练,最后出现TypeError的错误:
pickle.dump(recs, f)
write() argument must be str, not bytes
找到对应的位置:
改为二进制方式打开:
with open(cachefile, 'wb+') as f:
pickle.dump(recs, f)