MCPcopy Create free account
hub / github.com/FeiYull/TensorRT-Alpha / postprocess

Method postprocess

efficientdet/efficientdet.cpp:168–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166}
167
168void EfficientDet::postprocess(const std::vector<cv::Mat>& imgsBatch)
169{
170 CHECK(cudaMemcpy(m_output_num_host, m_output_num_device, sizeof(int) * m_param.batch_size, cudaMemcpyDeviceToHost));
171 CHECK(cudaMemcpy(m_output_boxes_host, m_output_boxes_device, sizeof(int) * m_param.batch_size * 1 * m_param.topK * 4, cudaMemcpyDeviceToHost));
172 const auto boxes = reinterpret_cast<const float*>(m_output_boxes_host);
173 CHECK(cudaMemcpy(m_output_scores_host, m_output_scores_device, sizeof(int) * m_param.batch_size * 1 * m_param.topK, cudaMemcpyDeviceToHost));
174 const auto scores = reinterpret_cast<const float*>(m_output_scores_host);
175 CHECK(cudaMemcpy(m_output_classes_host, m_output_classes_device, sizeof(int) * m_param.batch_size * 1 * m_param.topK, cudaMemcpyDeviceToHost));
176 for (int bi = 0; bi < imgsBatch.size(); bi++)
177 {
178 for (int i = 0; i < m_output_num_host[bi]; i++)
179 {
180 float y1 = boxes[0 + i * 4 + bi * m_param.topK * 4];
181 float x1 = boxes[1 + i * 4 + bi * m_param.topK * 4];
182 float y2 = boxes[2 + i * 4 + bi * m_param.topK * 4];
183 float x2 = boxes[3 + i * 4 + bi * m_param.topK * 4];
184
185 float y_lt = m_dst2src.v3 * x1 + m_dst2src.v4 * y1 + m_dst2src.v5;
186 float x_lt = m_dst2src.v0 * x1 + m_dst2src.v1 * y1 + m_dst2src.v2;
187 float y_rb = m_dst2src.v3 * x2 + m_dst2src.v4 * y2 + m_dst2src.v5;
188 float x_rb = m_dst2src.v0 * x2 + m_dst2src.v1 * y2 + m_dst2src.v2;
189
190 float score = scores[i + bi * m_param.topK];
191 if (score < m_param.conf_thresh)
192 {
193 continue;
194 }
195 int32_t class_id = m_output_classes_host[i + bi * m_param.topK];
196 assert(class_id >= 0);
197 m_objectss[bi].emplace_back(x_lt, y_lt, x_rb, y_rb, score, class_id);
198 }
199 }
200}
201
202std::vector<std::vector<utils::Box>> EfficientDet::getObjectss() const
203{

Callers 2

DetectFunction · 0.45
taskFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected