Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / samples / validation_app / ClassificationProcessor.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #pragma once
6
7 #include <iostream>
8 #include <limits>
9 #include <string>
10 #include <memory>
11
12 #include "classification_set_generator.hpp"
13 #include "Processor.hpp"
14
15 using namespace std;
16
17 class ClassificationProcessor : public Processor {
18     const int TOP_COUNT = 5;
19
20     struct ClassificationInferenceMetrics : public InferenceMetrics {
21     public:
22         int top1Result = 0;
23         int topCountResult = 0;
24         int total = 0;
25     };
26
27 protected:
28     std::string labelFileName;
29     bool zeroBackground;
30 public:
31     ClassificationProcessor(const std::string& flags_m, const std::string& flags_d, const std::string& flags_i, int flags_b,
32             InferenceEngine::InferencePlugin plugin, CsvDumper& dumper, const std::string& flags_l,
33             PreprocessingOptions preprocessingOptions, bool zeroBackground);
34     ClassificationProcessor(const std::string& flags_m, const std::string& flags_d, const std::string& flags_i, int flags_b,
35             InferenceEngine::InferencePlugin plugin, CsvDumper& dumper, const std::string& flags_l, bool zeroBackground);
36
37     std::shared_ptr<InferenceMetrics> Process(bool stream_output);
38     virtual void Report(const InferenceMetrics& im);
39     virtual ~ClassificationProcessor() { }
40 };