1. VOC 데이터 준비
VOC 데이터를 다운 받아 데이터 셋 폴더에 저장하면 VOC2007과 VOC2012 두 폴더가 따로 열리 며 폴더의 구조를 변경할 필요가 없습니다.
datasets
|----VOC2007
|----VOC2012
2. 데이터 교육
2.1 훈련 명령
다음 명령으로 훈련을 시작하십시오.
CUDA_VISIBLE_DEVICES=0 python3 train_net.py \
--config-file ../configs/PascalVOC-Detection/faster_rcnn_R_50_FPN.yaml \
--num-gpus 1 SOLVER.IMS_PER_BATCH 8 SOLVER.BASE_LR 0.01
CUDA_VISIBLE_DEVICES는 훈련을 배포 할 GPU를
--config-file
선택하고, 네트워크 구조 구성을
--num-gpus
선택하고, 훈련 용 GPU 수를 선택
SOLVER.IMS_PER_BATCH
하여 훈련 batch_size를
SOLVER.BASE_LR
설정하고, training learning_rate를 설정할 수 있습니다.
2.2 구성 yaml 파일
구성 파일 faster_rcnn_R_50_FPN.yaml
에서 SOLVER 의 원래 설정은 다음과 같습니다. 최대 반복 횟수는 18000으로 17.4 epochs
전체 데이터 세트가 17.4 epoch 동안 반복되었음을 의미합니다. VOC 데이터 세트에는 총 16551 개의 학습 이미지가 18000*16/16551=17.4
있습니다. 크기가 작 으면 수정할 수 있습니다. 데이터 세트가 17.4 epoch에 대해 학습되었는지 확인하기위한 반복 단계의 수입니다.
SOLVER:
STEPS: (12000, 16000)
MAX_ITER: 18000 # 17.4 epochs
WARMUP_ITERS: 100
3. 테스트 결과
3.1 교육 평가
훈련이 완료된 후 모델의 성능을 평가하고 다음과 같은 결과를 출력합니다.
[04/23 06:04:30] d2.evaluation.pascal_voc_evaluation INFO: Evaluating voc_2007_test using 2007 metric. Note that results do not use the official Matlab API.
[04/23 06:05:08] d2.engine.defaults INFO: Evaluation results for voc_2007_test in csv format:
[04/23 06:05:08] d2.evaluation.testing INFO: copypaste: Task: bbox
[04/23 06:05:08] d2.evaluation.testing INFO: copypaste: AP,AP50,AP75
[04/23 06:05:08] d2.evaluation.testing INFO: copypaste: 51.3760,80.6508,55.5273
[04/23 06:05:08] d2.utils.events INFO: eta: 0:00:01 iter: 17999 total_loss: 0.283 loss_cls: 0.109 loss_box_reg: 0.154 loss_rpn_cls: 0.008 loss_rpn_loc: 0.017 time: 1.1067 data_time: 0.0382 lr: 0.000100 max_mem: 9423M
결과에 따르면 모델의 AP는 VOC2007 테스트 데이터 세트 51.38에서 0.5 : 0.95, AP 0.5는 80.65, AP는 55.53 중 0.75입니다.
3.2 벤치 마크
detectron2의 MODEL ZOO 에서 Cityscapes 및 Pascal VOC Baselines 데이터 세트에서 Faster RCNN의 기준선을 볼 수 있으며 훈련 결과의 mAP가 기본적으로 기준선과 동일하다는 것을 알 수 있습니다.
이름 | 기차 시간 (s / iter) |
추론 시간 (s / im) |
훈련 MEM을 (GB) |
상자 AP |
상자 AP50 |
AP 마스크 |
모델 ID | 다운로드 |
---|---|---|---|---|---|---|---|---|
R50-FPN, 도시 경관 | 0.240 | 0.078 | 4.4 | 36.5 | 142423278 | 모델 | 메트릭 | ||
R50-C4, VOC | 0.537 | 0.081 | 4.8 | 51.9 | 80.3 | 142202221 | 모델 | 메트릭 |
3.3 추론
그림에서 단일 그림을 감지하려면 다음 명령을 사용하십시오.
python3 demo.py --config-file ../configs/PascalVOC-Detection/faster_rcnn_R_50_FPN.yaml \
--input cat.jpg \
--output result_cat_voc.jpg \
--opts MODEL.WEIGHTS ../tools/output_bak/model_final.pth
원본 사진의
탐지 결과
는 모델이 사진에서 고양이 탐지를 실현 한 것을 알 수 있습니다.