In contrast to the generic object, aerial targets are often non-axis aligned with arbitrary orientations having the cluttered surroundings. Unlike the mainstreamed approaches regressing the bounding box orientations, this paper proposes an effective adaptive points learning approach to aerial object detection by taking advantage of the adaptive points representation, which is able to capture the geometric information of the arbitrary-oriented instances. To this end, three oriented conversion functions are presented to facilitate the classification and localization with accurate orientation. Moreover, we propose an effective quality assessment and sample assignment scheme for adaptive points learning toward choosing the representative oriented reppoints samples during training, which is able to capture the non-axis aligned features from adjacent objects or background noises. A spatial constraint is introduced to penalize the outlier points for roust adaptive learning. Experimental results on four challenging aerial datasets including DOTA, HRSC2016, UCAS-AOD and DIOR-R, demonstrate the efficacy of our proposed approach.
# Install mmcv
pushd ../../../../toolbox/MMDetection/
bash clean_mmcv.sh
bash build_mmcv.sh
bash install_mmcv.sh
popd
# Install mmdetection
git clone -b v2.25.0 https://gitee.com/open-mmlab/mmdetection.git
pushd mmdetection
sed -i 's/sklearn/scikit-learn/g' requirements/optional.txt
sed -i 's/github.com/gitee.com/g' requirements/tests.txt
pip3 install -r requirements.txt
pip3 install yapf addict opencv-python
yum install mesa-libGL
python3 setup.py develop
popd
# Install mmrotate
git clone -b v0.3.2 https://gitee.com/open-mmlab/mmrotate.git
cd mmrotate/
sed -i 's/sklearn/scikit-learn/g' requirements/optional.txt
sed -i 's/sklearn/scikit-learn/g' requirements/tests.txt
sed -i 's/python /python3 /g' tools/dist_train.sh
mv ../patch/convex_assigner.py mmrotate/core/bbox/assigners/convex_assigner.py
mv ../patch/bbox_nms_rotated.py mmrotate/core/post_processing/bbox_nms_rotated.py
mv ../patch/schedule_1x.py configs/_base_/schedules/schedule_1x.py
pip3 install -r requirements.txt
pip3 install shapely
python3 setup.py develop
pip3 install urllib3==1.26.6
The dota dataset can be downloaded from here. The data structure is as follows:
mmrotate/data/DOTA/
├── test
│ └── images
├── train
│ ├── images
│ ├── labelTxt
│ │ └── trainset_reclabelTxt
│ └── labelTxt-v1.5
└── val
├── images
├── labelTxt
│ └── valset_reclabelTxt
└── labelTxt-v1.5
Please crop the original images into 1024×1024 patches with an overlap of 200.
python3 tools/data/dota/split/img_split.py --base-json \
tools/data/dota/split/split_configs/ss_trainval.json
python3 tools/data/dota/split/img_split.py --base-json \
tools/data/dota/split/split_configs/ss_test.json
Please change data_root
in configs/_base_/datasets/dotav1.py
to split DOTA dataset.
sed -i 's#data/split_1024_dota1_0/#data/split_ss_dota/#g' configs/_base_/datasets/dotav1.py
# On single GPU
python3 tools/train.py configs/oriented_reppoints/oriented_reppoints_r50_fpn_1x_dota_le135.py
# Multiple GPUs on one machine
export USE_GLOOGPU=1
export UMD_ENABLEMEMPOOL=0
bash tools/dist_train.sh configs/oriented_reppoints/oriented_reppoints_r50_fpn_1x_dota_le135.py 8
GPUs | ACC |
---|---|
BI-V100 x8 | MAP=0.8265 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。