optimize max object definition

it is not possible to set the size on runtime
This commit is contained in:
Tino Hager
2018-06-27 23:11:33 +02:00
parent b2c03b1615
commit d6cb0fcabc
3 changed files with 3 additions and 5 deletions

View File

@ -6,6 +6,7 @@ namespace Darknet
public class YoloWrapper : IDisposable public class YoloWrapper : IDisposable
{ {
private const string YoloLibraryName = "yolo_cpp_dll.dll"; private const string YoloLibraryName = "yolo_cpp_dll.dll";
private const int MaxObjects = 1000;
[DllImport(YoloLibraryName, EntryPoint = "init")] [DllImport(YoloLibraryName, EntryPoint = "init")]
public static extern int InitializeYolo(string configurationFilename, string weightsFilename, int gpu); public static extern int InitializeYolo(string configurationFilename, string weightsFilename, int gpu);
@ -29,10 +30,10 @@ namespace Darknet
public UInt32 frames_counter; public UInt32 frames_counter;
}; };
[StructLayout(LayoutKind.Sequential, Size = 10)] [StructLayout(LayoutKind.Sequential)]
public struct BboxContainer public struct BboxContainer
{ {
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaxObjects)]
public bbox_t[] candidates; public bbox_t[] candidates;
} }

View File

@ -22,8 +22,6 @@ extern "C" {
#define FRAMES 3 #define FRAMES 3
int max_objects() { return C_SHARP_MAX_OBJECTS; }
static Detector* detector; static Detector* detector;
//static std::unique_ptr<Detector> detector; //static std::unique_ptr<Detector> detector;

View File

@ -45,7 +45,6 @@ struct bbox_t_container {
#include "opencv2/imgproc/imgproc_c.h" // C #include "opencv2/imgproc/imgproc_c.h" // C
#endif // OPENCV #endif // OPENCV
extern "C" YOLODLL_API int max_objects();
extern "C" YOLODLL_API int init(const char *configurationFilename, const char *weightsFilename, int gpu); extern "C" YOLODLL_API int init(const char *configurationFilename, const char *weightsFilename, int gpu);
extern "C" YOLODLL_API int detect_image(const char *filename, bbox_t_container &container); extern "C" YOLODLL_API int detect_image(const char *filename, bbox_t_container &container);
extern "C" YOLODLL_API int detect_mat(const uint8_t* data, const size_t data_length, bbox_t_container &container); extern "C" YOLODLL_API int detect_mat(const uint8_t* data, const size_t data_length, bbox_t_container &container);