forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
63 lines
1.3 KiB
// |
|
// Copyright © 2017 Arm Ltd. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
// |
|
#pragma once |
|
|
|
#include "ClassifierTestCaseData.hpp" |
|
|
|
#include <array> |
|
#include <string> |
|
#include <memory> |
|
|
|
struct YoloBoundingBox |
|
{ |
|
float m_X; |
|
float m_Y; |
|
float m_W; |
|
float m_H; |
|
}; |
|
|
|
struct YoloDetectedObject |
|
{ |
|
YoloDetectedObject(unsigned int yoloClass, |
|
const YoloBoundingBox& box, |
|
float confidence) |
|
: m_Class(yoloClass) |
|
, m_Box(box) |
|
, m_Confidence(confidence) |
|
{} |
|
|
|
unsigned int m_Class; |
|
YoloBoundingBox m_Box; |
|
float m_Confidence; |
|
}; |
|
|
|
class YoloTestCaseData |
|
{ |
|
public: |
|
YoloTestCaseData(std::vector<float> inputImage, |
|
std::vector<YoloDetectedObject> topObjectDetections) |
|
: m_InputImage(std::move(inputImage)) |
|
, m_TopObjectDetections(std::move(topObjectDetections)) |
|
{ |
|
} |
|
|
|
std::vector<float> m_InputImage; |
|
std::vector<YoloDetectedObject> m_TopObjectDetections; |
|
}; |
|
|
|
constexpr unsigned int YoloImageWidth = 448; |
|
constexpr unsigned int YoloImageHeight = 448; |
|
|
|
class YoloDatabase |
|
{ |
|
public: |
|
using TTestCaseData = YoloTestCaseData; |
|
|
|
explicit YoloDatabase(const std::string& imageDir); |
|
std::unique_ptr<TTestCaseData> GetTestCaseData(unsigned int testCaseId); |
|
|
|
private: |
|
std::string m_ImageDir; |
|
};
|
|
|