NVIDIA DeepStream SDK API Reference

9.1 Release
sources/includes/nv_aisle_csvparser.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2018-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
23 #ifndef _NV_AISLE_CSVPARSER_HPP_
24 #define _NV_AISLE_CSVPARSER_HPP_
25 
26 
27 #include <iostream>
28 #include <fstream>
29 #include <map>
30 #include <vector>
31 #include <string>
32 #include <cstdint>
33 
34 using namespace std;
35 
36 namespace nvaisle_csv {
39 typedef struct _NvAisleCsvFields
40 {
41  uint32_t cameraId;
42  uint32_t rowId;
43  string level;
44  string cameraIDString;
46  string aisleIdStr;
47  uint32_t aisleId;
50  double dewarpTopAngle, dewarpBottomAngle, dewarpPitch, dewarpYaw, dewarpRoll;
52  uint32_t numROIpoints;
54  float ROI_x0, ROI_y0, ROI_x1, ROI_y1, ROI_x2, ROI_y2, ROI_x3, ROI_y3,
55  ROI_x4, ROI_y4, ROI_x5, ROI_y5, ROI_x6, ROI_y6, ROI_x7, ROI_y7;
57  float gx0, gy0, gx1, gy1, gx2, gy2, gx3, gy3, cx0, cy0, cx1, cy1, cx2, cy2, cx3, cy3;
58 
59  int entry;
60  int exit;
62  float entry_ROI_x0, entry_ROI_y0, entry_ROI_x1, entry_ROI_y1, entry_ROI_x2,
63  entry_ROI_y2, entry_ROI_x3, entry_ROI_y3;
65  float exit_ROI_x0, exit_ROI_y0, exit_ROI_x1, exit_ROI_y1, exit_ROI_x2,
66  exit_ROI_y2, exit_ROI_x3, exit_ROI_y3;
67  string sensorId;
69  uint32_t dewarpWidth;
70  uint32_t dewarpHeight;
72  double h0, h1, h2, h3, h4, h5, h6, h7, h8;
73 
75 
77 typedef std::map<uint32_t, NvAisleCsvFields> _AisleIndex_Map;
78 
80 typedef std::map<uint32_t, _AisleIndex_Map> _AisleCSVMap;
81 
83 typedef std::map<string, uint32_t> _AisleCameraMap;
84 
86 typedef std::map<uint32_t, uint32_t> _AisleCameraViews;
87 
88 typedef std::pair<_AisleIndex_Map::iterator, bool> _AisleIndexMap_Result;
89 typedef std::pair<_AisleCSVMap::iterator, bool> _AisleCSVMap_Result;
90 typedef std::pair<_AisleCameraMap::iterator, bool> _AisleCameraMap_Result;
91 typedef std::pair<_AisleCameraViews::iterator, bool> _AisleCameraView_Result;
96 {
97  private:
98  _AisleCSVMap CSVMap;
99  _AisleCameraViews CameraViews;
100 
101  string csvFileName;
102 
104  void LoadCSVData();
105  void DestroyCSVParser();
106 
110  uint32_t prepareAisleCSVMaxViews (uint32_t cam_id, vector<int>* vector_surface_index);
111 
112  public:
113  ~AisleCSVParser();
114 
118  int getNvAisleCSVFields (uint32_t cam_id, uint32_t aisle_id, NvAisleCsvFields *fields);
121  uint32_t getNvAisleCSVMaxViews (uint32_t cam_id, vector<int>* vector_surface_index);
122 
124  void getNvAisleCSVData(std::vector<NvAisleCsvFields> &csvAisleData);
125 
127  void printNvAisleCSVData(void);
129  void printNvAisleCSVData(uint32_t cam_id, uint32_t aisle_id);
131  void printAisleCSVFields(NvAisleCsvFields val);
132 
133  AisleCSVParser(string CSVFileName);
134 };
135 
136 }
137 #endif
nvaisle_csv::AisleCSVParser
Class for parsing of Aisle CSV data.
Definition: sources/includes/nv_aisle_csvparser.hpp:95
nvaisle_csv::_AisleIndexMap_Result
std::pair< _AisleIndex_Map::iterator, bool > _AisleIndexMap_Result
Definition: sources/includes/nv_aisle_csvparser.hpp:88
nvaisle_csv::_NvAisleCsvFields::gy3
float gy3
Definition: sources/includes/nv_aisle_csvparser.hpp:57
nvaisle_csv::_AisleIndex_Map
std::map< uint32_t, NvAisleCsvFields > _AisleIndex_Map
std::map<camera_id, NvAisleCsvFields>
Definition: sources/includes/nv_aisle_csvparser.hpp:77
nvaisle_csv::_NvAisleCsvFields::h8
double h8
Definition: sources/includes/nv_aisle_csvparser.hpp:72
nvaisle_csv
Definition: sources/includes/nv_aisle_csvparser.hpp:36
nvaisle_csv::_NvAisleCsvFields::entry_ROI_y1
float entry_ROI_y1
Definition: sources/includes/nv_aisle_csvparser.hpp:62
nvaisle_csv::_AisleCameraView_Result
std::pair< _AisleCameraViews::iterator, bool > _AisleCameraView_Result
Definition: sources/includes/nv_aisle_csvparser.hpp:91
nvaisle_csv::_AisleCameraMap_Result
std::pair< _AisleCameraMap::iterator, bool > _AisleCameraMap_Result
Definition: sources/includes/nv_aisle_csvparser.hpp:90
nvaisle_csv::_NvAisleCsvFields::dewarpFocalLength
float dewarpFocalLength
Focal Lenght of camera lens, in pixels per radian.
Definition: sources/includes/nv_aisle_csvparser.hpp:68
nvaisle_csv::_NvAisleCsvFields::exit
int exit
exit - 0 indicates no exit ROI, 1 indicates valid exit ROI
Definition: sources/includes/nv_aisle_csvparser.hpp:60
nvaisle_csv::_NvAisleCsvFields::ROI_y7
float ROI_y7
Definition: sources/includes/nv_aisle_csvparser.hpp:55
nvaisle_csv::_NvAisleCsvFields
Data structure contaning all the parameters specified in one row of an Aisle CSV file.
Definition: sources/includes/nv_aisle_csvparser.hpp:39
nvaisle_csv::_NvAisleCsvFields::cameraIDString
string cameraIDString
Camera ID String.
Definition: sources/includes/nv_aisle_csvparser.hpp:44
nvaisle_csv::_NvAisleCsvFields::entry
int entry
entry - 0 indicates no entry ROI, 1 indicates valid entry ROI
Definition: sources/includes/nv_aisle_csvparser.hpp:59
nvaisle_csv::_AisleCameraMap
std::map< string, uint32_t > _AisleCameraMap
std::map<camera-ipaddress, camera-id>
Definition: sources/includes/nv_aisle_csvparser.hpp:83
nvaisle_csv::_NvAisleCsvFields::exit_ROI_y1
float exit_ROI_y1
Definition: sources/includes/nv_aisle_csvparser.hpp:65
nvaisle_csv::_NvAisleCsvFields::dewarpHeight
uint32_t dewarpHeight
dewarped surface height
Definition: sources/includes/nv_aisle_csvparser.hpp:70
nvaisle_csv::_NvAisleCsvFields::aisleIdStr
string aisleIdStr
Aisle ID string.
Definition: sources/includes/nv_aisle_csvparser.hpp:46
nvaisle_csv::_NvAisleCsvFields::rowId
uint32_t rowId
Row entry number in the CSV file.
Definition: sources/includes/nv_aisle_csvparser.hpp:42
nvaisle_csv::_NvAisleCsvFields::aisleId
uint32_t aisleId
Set to 0/1 corrsponding to A0/A1 present in "aisleIdStr".
Definition: sources/includes/nv_aisle_csvparser.hpp:47
nvaisle_csv::_NvAisleCsvFields::sensorId
string sensorId
Sensor ID String.
Definition: sources/includes/nv_aisle_csvparser.hpp:67
nvaisle_csv::_NvAisleCsvFields::exit_ROI_y3
float exit_ROI_y3
Definition: sources/includes/nv_aisle_csvparser.hpp:66
nvaisle_csv::_NvAisleCsvFields::dewarpYaw
double dewarpYaw
Definition: sources/includes/nv_aisle_csvparser.hpp:50
nvaisle_csv::_AisleCSVMap
std::map< uint32_t, _AisleIndex_Map > _AisleCSVMap
std::map<camera_id, _AisleIndex_Map>
Definition: sources/includes/nv_aisle_csvparser.hpp:80
nvaisle_csv::_NvAisleCsvFields::cameraId
uint32_t cameraId
Serial number for each Aisle View Camera Entry.
Definition: sources/includes/nv_aisle_csvparser.hpp:41
nvaisle_csv::NvAisleCsvFields
struct nvaisle_csv::_NvAisleCsvFields NvAisleCsvFields
Data structure contaning all the parameters specified in one row of an Aisle CSV file.
nvaisle_csv::_AisleCSVMap_Result
std::pair< _AisleCSVMap::iterator, bool > _AisleCSVMap_Result
Definition: sources/includes/nv_aisle_csvparser.hpp:89
nvaisle_csv::_NvAisleCsvFields::numROIpoints
uint32_t numROIpoints
Number of ROI co-ordinates.
Definition: sources/includes/nv_aisle_csvparser.hpp:52
nvaisle_csv::_NvAisleCsvFields::dewarpWidth
uint32_t dewarpWidth
dewarped surface width
Definition: sources/includes/nv_aisle_csvparser.hpp:69
nvaisle_csv::_NvAisleCsvFields::level
string level
Parking Level.
Definition: sources/includes/nv_aisle_csvparser.hpp:43
nvaisle_csv::_NvAisleCsvFields::entry_ROI_y3
float entry_ROI_y3
Definition: sources/includes/nv_aisle_csvparser.hpp:63
nvaisle_csv::_NvAisleCsvFields::ROI_y3
float ROI_y3
Definition: sources/includes/nv_aisle_csvparser.hpp:54
nvaisle_csv::_AisleCameraViews
std::map< uint32_t, uint32_t > _AisleCameraViews
std::map<camera-id, num_aisle_views>
Definition: sources/includes/nv_aisle_csvparser.hpp:86