<aside> 💡 이 페이지는 MrD C++ API를 이용하여 학습한 모델을 사용하는 예제를 담고 있습니다.

</aside>

🖥️C++ MrD API 예시 코드

모델이 예측한 결과

모델이 예측한 결과

#include <iostream>
#include <classificationHelper.h>
#include <common.h>
#include <opencv2/opencv.hpp>

void main()
{
    try {

				//CUDA 사용 여부 확인 
        if (mrd::classificationHelper::device_check() == mrd::deviceType::cpu) {
            std::cout << "cpu enabled" << std::endl;
        }
        else {
            std::cout << "gpu enabled" << std::endl;
        }
			
				//Classification 클래스 생성
        auto classifier = mrd::classificationHelper::classification();
				//학습된 모델 열기 
        classifier->open("C://Github//DeepLearningStudy//trained_model//foodDetector.pt",
                         "C://Github//DeepLearningStudy//dataset//FIAT_dataset_food//___target_info.json",
                         mrd::deviceType::gpu_cuda);
				//분류 유형 설정
        classifier->mode(mrd::classificationMode::multi_class);

				//예측할 이미지를 opencv로 로드 
        auto cvImage = cv::imread("C://Github//DeepLearningStudy//dataset//FIAT_dataset_food//1_1_hamburger.jpg", cv::IMREAD_COLOR);

				//모델에 입력할 수 있도록 이미지 리사이즈 
        cv::Mat resized_image;
        cv::resize(cvImage, resized_image, cv::Size(224, 224));

				//모델에 입력 가능하도록 MrD에서 제공하는 Frame형태로 변경 
        auto frame = mrd::common::Frame(224, 224, 3, resized_image.data, mrd::pixel_type::byte_pixel);

				//결과 예측 
        auto result = classifier->predict(frame);

				//결과 디스플레이 
        for (int index = 0; index < result.size(); index++) {
            std::cout << "num class : " << index << ", score : " << result[index] << std::endl;
        }

        cv::imshow("input image", resized_image);
        cv::waitKey();

    }
    catch (std::exception e) {
        std::cout << "message" << std::endl;
        std::cout << e.what() << std::endl;
    }
}

<aside> 📘 MrD C++ API설치 방법은 메인 페이지를 참고 바랍니다.

</aside>