다음을 통해 공유


TensorFlow를 사용하여 개체 검색 모델 학습

TensorFlow를 구성했으므로 이제 YOLO 아키텍처를 사용하여 개체 검색 모델을 학습합니다. YOLO는 단일 평가에서 이미지의 경계 상자 및 클래스 확률을 예측하는 신경망입니다. YOLO 모델은 초당 60개 이상의 프레임을 처리할 수 있어 비디오에서 개체를 검색하는 데 적합한 아키텍처입니다. YOLO 작동 방식에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

YOLO 사용

먼저 시작할 도우미 스크립트가 포함된 이 YOLO 샘플 파일을 다운로드합니다.

YOLO를 사용하는 경우 다음 세 가지 옵션이 있습니다.

  1. YOLO에 대해 미리 학습된 모델 가중치를 활용합니다. 미리 학습된 모델은 버스, 사람, 샌드위치 등과 같은 일상적인 개체에 대해 80개의 클래스(범주)가 있는 대규모 데이터 세트에서 학습되었습니다. 미리 학습된 YOLO 모델을 ONNX 형식으로 다운로드하려면 여기에서 다운로드할 수 있습니다. 그런 다음, 이 자습서의 마지막 단계로 진행하여 해당 모델을 앱에 통합하는 방법을 알아볼 수 있습니다.

  2. 사용자 지정 데이터 세트를 통해 전이 학습을 구현합니다. 전이 학습은 학습된 모델을 시작점으로 사용하여 서로 다르지만 관련된 작업을 해결하는 모델을 학습시키는 방법입니다. 이 자습서에서는 80개의 클래스가 있는 미리 학습된 YOLO 가중치를 사용하여 VOC 데이터 세트와 함께 20개의 클래스가 있는 모델을 학습합니다. 사용자 지정 클래스를 사용하여 사용자 고유의 데이터 세트를 만들려면 여기의 지침을 참조하세요.

  3. 처음부터 YOLO를 학습합니다. 이 기술은 수렴하기가 매우 어렵기 때문에 권장되지 않습니다. 원래 YOLO 논문은 전체 네트워크를 학습하기 전에 이미지넷에서 다크넷(수십만 개의 사진 포함)을 학습시켰습니다.

미리 학습된 YOLO 가중치에서 VOC 데이터 세트로의 전이 학습을 구현합니다.

두 번째 옵션을 진행하고 다음 단계를 통해 전이 학습을 구현해 보겠습니다.

  1. miniconda 창에서 yolo 샘플 디렉터리로 이동하고 다음 명령을 실행하여 YOLO에 필요한 모든 pip 패키지를 설치합니다.

pip install -r requirements.txt

  1. 설치 스크립트를 실행하여 데이터 및 미리 학습된 가중치 다운로드

python setup.py

  1. 데이터 세트를 변환합니다. 구현에 대해 tools/voc2012.py를 참조합니다. 이 형식은 tensorflow 개체 검색 API를 기반으로 합니다. 많은 필드가 필요하지 않지만 공식 API와의 호환성을 위해 여기에 채워져 있습니다.
python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split train \
  --output_file ./data/voc2012_train.tfrecord

python tools/voc2012.py \
  --data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
  --split val \
  --output_file ./data/voc2012_val.tfrecord
  1. 모델을 학습시킵니다. 다음 명령을 실행합니다.
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check

python train.py \
	--dataset ./data/voc2012_train.tfrecord \
	--val_dataset ./data/voc2012_val.tfrecord \
	--classes ./data/voc2012.names \
	--num_classes 20 \
	--mode fit --transfer darknet \
	--batch_size 16 \
	--epochs 10 \
	--weights ./checkpoints/yolov3.tf \
	--weights_num_classes 80 

이제 20개의 클래스를 사용하여 다시 학습된 모델을 사용할 준비가 되었습니다.

다음 단계

TensorFlow 모델을 만들었으므로 이제 Windows Machine Learning API와 함께 사용하기 위해 ONNX 형식으로 변환해야 합니다.