DetectionTransformationCalculator handles empty input.
PiperOrigin-RevId: 511881969
This commit is contained in:
parent
0b989f8c8d
commit
0981367e84
|
@ -227,6 +227,9 @@ class DetectionTransformationCalculator : public Node {
|
||||||
std::pair<int, int> image_size = kInImageSize(cc).Get();
|
std::pair<int, int> image_size = kInImageSize(cc).Get();
|
||||||
std::vector<Detection> transformed_detections;
|
std::vector<Detection> transformed_detections;
|
||||||
LocationData::Format input_location_data_format;
|
LocationData::Format input_location_data_format;
|
||||||
|
if (kInDetections(cc).IsEmpty() && kInDetection(cc).IsEmpty()) {
|
||||||
|
return absl::OkStatus();
|
||||||
|
}
|
||||||
if (kInDetections(cc).IsConnected()) {
|
if (kInDetections(cc).IsConnected()) {
|
||||||
transformed_detections = kInDetections(cc).Visit(
|
transformed_detections = kInDetections(cc).Visit(
|
||||||
[&](const DetectionList& detection_list) {
|
[&](const DetectionList& detection_list) {
|
||||||
|
|
|
@ -161,6 +161,42 @@ TEST(DetectionsTransformationCalculatorTest, WrongLocationDataFormat) {
|
||||||
"RELATIVE_BOUNDING_BOX or BOUNDING_BOX"));
|
"RELATIVE_BOUNDING_BOX or BOUNDING_BOX"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(DetectionsTransformationCalculatorTest, EmptyDetection) {
|
||||||
|
CalculatorRunner runner(ParseTextProtoOrDie<CalculatorGraphConfig::Node>(R"pb(
|
||||||
|
calculator: "DetectionTransformationCalculator"
|
||||||
|
input_stream: "DETECTION:input_detection"
|
||||||
|
input_stream: "IMAGE_SIZE:image_size"
|
||||||
|
output_stream: "PIXEL_DETECTION:output_detection"
|
||||||
|
)pb"));
|
||||||
|
|
||||||
|
std::pair<int, int> image_size({2000, 1000});
|
||||||
|
runner.MutableInputs()
|
||||||
|
->Tag(kImageSizeTag)
|
||||||
|
.packets.push_back(
|
||||||
|
MakePacket<std::pair<int, int>>(image_size).At(Timestamp(0)));
|
||||||
|
|
||||||
|
auto status = runner.Run();
|
||||||
|
ASSERT_TRUE(status.ok());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(DetectionsTransformationCalculatorTest, EmptyDetections) {
|
||||||
|
CalculatorRunner runner(ParseTextProtoOrDie<CalculatorGraphConfig::Node>(R"pb(
|
||||||
|
calculator: "DetectionTransformationCalculator"
|
||||||
|
input_stream: "DETECTIONS:input_detection"
|
||||||
|
input_stream: "IMAGE_SIZE:image_size"
|
||||||
|
output_stream: "PIXEL_DETECTIONS:output_detection"
|
||||||
|
)pb"));
|
||||||
|
|
||||||
|
std::pair<int, int> image_size({2000, 1000});
|
||||||
|
runner.MutableInputs()
|
||||||
|
->Tag(kImageSizeTag)
|
||||||
|
.packets.push_back(
|
||||||
|
MakePacket<std::pair<int, int>>(image_size).At(Timestamp(0)));
|
||||||
|
|
||||||
|
auto status = runner.Run();
|
||||||
|
ASSERT_TRUE(status.ok());
|
||||||
|
}
|
||||||
|
|
||||||
TEST(DetectionsTransformationCalculatorTest,
|
TEST(DetectionsTransformationCalculatorTest,
|
||||||
ConvertBoundingBoxToRelativeBoundingBox) {
|
ConvertBoundingBoxToRelativeBoundingBox) {
|
||||||
CalculatorRunner runner(ParseTextProtoOrDie<CalculatorGraphConfig::Node>(R"pb(
|
CalculatorRunner runner(ParseTextProtoOrDie<CalculatorGraphConfig::Node>(R"pb(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user