OpenVINO™ 툴킷을 사용한 배치 추론
OpenVINO™ 툴킷에서 두 개의 입력 이미지에 대한 추론을 실행할 수 없습니다.
Shape 추론 사용을 참조하고 배치 사용의 제한 사항을 확인하십시오.
Open Model Zoo smart_classroom_demo 이전에 감지된 여러 얼굴을 처리할 때 동적 배치를 보여줍니다. smart_classroom_demo/cpp/src/cnn.cpp51호선에 있는 데모의 함수 CnnDLSDKBase::InferBatch 참조하십시오.
- 모델에서 배치가 활성화되면 입력 blob의 메모리 버퍼가 할당되어 모든 이미지 배치를 위한 공간을 확보하고 각 이미지의 입력 blob에 있는 데이터를 채워야 합니다.
- num_imgs루프에서 보조 기능 matU8ToBlob이 입력 blob을 이미지 current_batch_size 위한 데이터로 채운 다음 요청을 추론하고 추론을 실행하기 위해 배치 크기를 설정합니다.
for (size_t batch_i = 0; batch_i < num_imgs; batch_i += batch_size) {
const size_t current_batch_size = std::min(batch_size, num_imgs - batch_i);
for (size_t b = 0; b < current_batch_size; b++) {
matU8ToBlob<uint8_t>(frames[batch_i + b], input, b);
}
if (config_.max_batch_size != 1)
infer_request_.SetBatch(current_batch_size); infer_request_.Infer();