用Cornernet来检测自己的数据

Cornernet的安装 编译
1、Anaconda安装
wget …….......
bash Anaconda3-5.0.1-Linux-x86_64.sh 
source ~/.bashrc
2、Git clone https://github.com/princeton-vl/CornerNet.git
Cd CornerNet 
创建CornerNet环境
conda create --name CornerNet --file conda_packagelist.txt
激活
source activate CornerNet

cd /models/py_utils/_cpools/
python setup.py install —user

cd /external
make
会报错,缺少Cython,只需要conda install Cython

cd /data
git clone https://github.com/cocodataset/cocoapi.git coco
cd /data/coco/PythonAPI
make

下载 MS COCO Data
https://drive.google.com/file/d/1dop4188xo5lXDkGtOZUzy2SHOD_COXz4/view annotations.zip
并将annotations放置在/data/coco
/data/coco/images/下新建三个文件夹trainval2014, minival2014 和 testdev2017将从http://cocodataset.org/#download下载的2014 Train, 2014 Val, 2017 Test图片放置到对应的文件夹里

python test.py CornerNet --testiter 500000 --split testing
此时测试的是images/testdev2017的测试图片,我跑了大概两个小时,结果存放在result/cornernet/500000/testing下,生成的result.json文件,如果你想通是生成检测的框框,只需要在CornerNet/test/coco.py第153行if True:
193行debug_file = os.path.join(debug_dir, “{}.jpg".format(db_ind))下加cv2.imwrite(debug_file,image)

测试自己的图片:
出现test problems :AttributeError: 'NoneType' object has no attribute ‘shape’这样的错误是因为所指图片,json路径不对,这需要在db/coco.py 中做小小的修改。
先在images/下存放自己的测试图片文件夹如smalltest,相应的在annotations下有相应的instances_smalltest.json
在coco.py中 "testdev"的值修改为 “smalltest"
    即self._dataset = {
        "trainval": "trainval2014",
                     "minival": "minival2014",
                      "testdev": "smalltest"
重新运行命令python test.py CornerNet --testiter 500000 --split testing
这时候就是用预训练的模型来检测的自己的图片了。
在踩了无数的坑之后,找到的解法。

你可能感兴趣的:(训练测试)