Skip to content

Commit

Permalink
0.2.1 - Patch (#53)
Browse files Browse the repository at this point in the history
* 🔨 Optimized visualization of Localization workflow. Updated unit testing to reflect new condensed conversion from EPDObjectLocalization to EPDObjectTracking.

Signed-off-by: Bey Hao Yun <[email protected]>

* 🔨 Rectified for failing CI build.

Signed-off-by: Bey Hao Yun <[email protected]>
  • Loading branch information
cardboardcode authored Aug 5, 2022
1 parent 19673a9 commit 0979965
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 59 deletions.
6 changes: 6 additions & 0 deletions easy_perception_deployment/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,9 @@ Changelog for package easy_perception_deployment
* Updated unit testing modules under test folder to reflect new infer function calls for P1OrtBase, P2OrtBase and P3OrtBase classes.
* Contributor(s): Bey Hao Yun

0.2.1 (2022-08-06)
-------------------
* Abstracted instantiation of struct LocalizedObject in usecase_config.hpp. Reduced code verbosity for EPDObjectLocalization to EPDObjectTracking conversion in Localization Visualize workflow.
* Contributor(s): Bey Hao Yun


8 changes: 4 additions & 4 deletions easy_perception_deployment/config/session_config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"path_to_label_list" : "./data/label_list/coco_classes.txt",
"path_to_model" : "./data/model/MaskRCNN-10.onnx",
"path_to_label_list" : "/home/cardboardvoice/epd_workspace/5_linting_epd_ws/src/easy_perception_deployment/easy_perception_deployment/data/label_list/imagenet_classes.txt",
"path_to_model" : "/home/cardboardvoice/epd_workspace/5_linting_epd_ws/src/easy_perception_deployment/easy_perception_deployment/data/model/squeezenet1.1-7.onnx",
"useCPU" : "CPU",
"visualizeFlag" : "visualize"
}
"visualizeFlag" : "robot"
}
Original file line number Diff line number Diff line change
Expand Up @@ -375,17 +375,7 @@ void EasyPerceptionDeployment::process_localize_callback(
EPD::EPDObjectTracking converted_result(result.data_size);
converted_result.object_ids.clear();
for (size_t i = 0; i < result.data_size; i++) {
EPD::EPDObjectTracking::LocalizedObject object;
object.name = result.objects[i].name;
object.roi = result.objects[i].roi;
object.mask = result.objects[i].mask;
object.length = result.objects[i].length;
object.breadth = result.objects[i].breadth;
object.height = result.objects[i].height;
object.segmented_pcl = result.objects[i].segmented_pcl;
object.axis = result.objects[i].axis;

converted_result.objects.emplace_back(object);
converted_result.objects.emplace_back(result.objects[i]);
}

cv::Mat resultImg = ortAgent_.visualize(converted_result, img);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,11 @@ cv::Mat EPDContainer::visualize(
std::string curLabel = result.objects[i].name;

cv::rectangle(
output_image, cv::Point(curBbox[0], curBbox[1]),
cv::Point(curBbox[2], curBbox[3]), curColor, 2);
output_image,
cv::Point(curBbox[0], curBbox[1]),
cv::Point(curBbox[2], curBbox[3]),
curColor,
2);

int baseLine = 0;
cv::Size labelSize =
Expand Down
38 changes: 13 additions & 25 deletions easy_perception_deployment/include/epd_utils_lib/message_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,22 +67,22 @@ class EPDObjectDetection
}
};

struct LocalizedObject
{
std::string name;
sensor_msgs::msg::RegionOfInterest roi;
cv::Mat mask;
geometry_msgs::msg::Point centroid;
float length;
float breadth;
float height;
pcl::PointCloud<pcl::PointXYZ> segmented_pcl;
geometry_msgs::msg::Vector3 axis;
};

class EPDObjectLocalization
{
public:
struct LocalizedObject
{
std::string name;
sensor_msgs::msg::RegionOfInterest roi;
cv::Mat mask;
geometry_msgs::msg::Point centroid;
float length;
float breadth;
float height;
pcl::PointCloud<pcl::PointXYZ> segmented_pcl;
geometry_msgs::msg::Vector3 axis;
};

std::vector<LocalizedObject> objects;
/*! \brief A set size for all vectors in class.*/
size_t data_size;
Expand All @@ -104,18 +104,6 @@ class EPDObjectLocalization
class EPDObjectTracking
{
public:
struct LocalizedObject
{
std::string name;
sensor_msgs::msg::RegionOfInterest roi;
cv::Mat mask;
geometry_msgs::msg::Point centroid;
float length;
float breadth;
float height;
pcl::PointCloud<pcl::PointXYZ> segmented_pcl;
geometry_msgs::msg::Vector3 axis;
};
std::vector<std::string> object_ids;
std::vector<LocalizedObject> objects;
/*! \brief A set size for all vectors in class.*/
Expand Down
11 changes: 5 additions & 6 deletions easy_perception_deployment/include/ort_cpp_lib/p3_ort_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,11 @@ EPD::EPDObjectLocalization P3OrtBase::infer(
cv::Mat result = inputImg.clone();

assert(bboxes.size() == classIndices.size());
if (!allClassNames.empty()) {
assert(
allClassNames.size() >
*std::max_element(classIndices.begin(), classIndices.end()));
}
// if (!allClassNames.empty()) {
// assert(
// allClassNames.size() >
// *std::max_element(classIndices.begin(), classIndices.end()));
// }

// If there is zero bounding boxes generated, return empty EPDObjectLocalization object.
if (bboxes.size() == 0) {
Expand All @@ -355,7 +355,6 @@ EPD::EPDObjectLocalization P3OrtBase::infer(
EPD::EPDObjectLocalization output_obj(bboxes.size());

float table_depth = this->findMedian(depthImg) * 0.001;

// No. of objects will be equal to number of bboxes
/* START of Populating EPDObjectLocalization object */
for (size_t i = 0; i < bboxes.size(); ++i) {
Expand Down
12 changes: 1 addition & 11 deletions easy_perception_deployment/test/p3u3v.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,7 @@ TEST(EPD_TestSuite, Test_P3Model_Localize_Visualize)
EPD::EPDObjectTracking converted_result(result.data_size);
converted_result.object_ids.clear();
for (size_t i = 0; i < result.data_size; i++) {
EPD::EPDObjectTracking::LocalizedObject object;
object.name = result.objects[i].name;
object.roi = result.objects[i].roi;
object.mask = result.objects[i].mask;
object.length = result.objects[i].length;
object.breadth = result.objects[i].breadth;
object.height = result.objects[i].height;
object.segmented_pcl = result.objects[i].segmented_pcl;
object.axis = result.objects[i].axis;

converted_result.objects.emplace_back(object);
converted_result.objects.emplace_back(result.objects[i]);
}

cv::Mat output = ortAgent_->visualize(converted_result, colored_img);
Expand Down

0 comments on commit 0979965

Please sign in to comment.