Remove video and streaming mode for face stylizer.
PiperOrigin-RevId: 563312344
This commit is contained in:
parent
a9da6d325c
commit
3ce457006f
|
@ -150,52 +150,6 @@ absl::StatusOr<std::optional<Image>> FaceStylizer::Stylize(
|
||||||
output_packets[kStylizedImageName].Get<Image>());
|
output_packets[kStylizedImageName].Get<Image>());
|
||||||
}
|
}
|
||||||
|
|
||||||
absl::StatusOr<std::optional<Image>> FaceStylizer::StylizeForVideo(
|
|
||||||
mediapipe::Image image, int64_t timestamp_ms,
|
|
||||||
std::optional<core::ImageProcessingOptions> image_processing_options) {
|
|
||||||
if (image.UsesGpu()) {
|
|
||||||
return CreateStatusWithPayload(
|
|
||||||
absl::StatusCode::kInvalidArgument,
|
|
||||||
absl::StrCat("GPU input images are currently not supported."),
|
|
||||||
MediaPipeTasksStatus::kRunnerUnexpectedInputError);
|
|
||||||
}
|
|
||||||
ASSIGN_OR_RETURN(NormalizedRect norm_rect,
|
|
||||||
ConvertToNormalizedRect(image_processing_options, image));
|
|
||||||
ASSIGN_OR_RETURN(
|
|
||||||
auto output_packets,
|
|
||||||
ProcessVideoData(
|
|
||||||
{{kImageInStreamName,
|
|
||||||
MakePacket<Image>(std::move(image))
|
|
||||||
.At(Timestamp(timestamp_ms * kMicroSecondsPerMilliSecond))},
|
|
||||||
{kNormRectName,
|
|
||||||
MakePacket<NormalizedRect>(std::move(norm_rect))
|
|
||||||
.At(Timestamp(timestamp_ms * kMicroSecondsPerMilliSecond))}}));
|
|
||||||
return output_packets[kStylizedImageName].IsEmpty()
|
|
||||||
? std::nullopt
|
|
||||||
: std::optional<Image>(
|
|
||||||
output_packets[kStylizedImageName].Get<Image>());
|
|
||||||
}
|
|
||||||
|
|
||||||
absl::Status FaceStylizer::StylizeAsync(
|
|
||||||
Image image, int64_t timestamp_ms,
|
|
||||||
std::optional<core::ImageProcessingOptions> image_processing_options) {
|
|
||||||
if (image.UsesGpu()) {
|
|
||||||
return CreateStatusWithPayload(
|
|
||||||
absl::StatusCode::kInvalidArgument,
|
|
||||||
absl::StrCat("GPU input images are currently not supported."),
|
|
||||||
MediaPipeTasksStatus::kRunnerUnexpectedInputError);
|
|
||||||
}
|
|
||||||
ASSIGN_OR_RETURN(NormalizedRect norm_rect,
|
|
||||||
ConvertToNormalizedRect(image_processing_options, image));
|
|
||||||
return SendLiveStreamData(
|
|
||||||
{{kImageInStreamName,
|
|
||||||
MakePacket<Image>(std::move(image))
|
|
||||||
.At(Timestamp(timestamp_ms * kMicroSecondsPerMilliSecond))},
|
|
||||||
{kNormRectName,
|
|
||||||
MakePacket<NormalizedRect>(std::move(norm_rect))
|
|
||||||
.At(Timestamp(timestamp_ms * kMicroSecondsPerMilliSecond))}});
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace face_stylizer
|
} // namespace face_stylizer
|
||||||
} // namespace vision
|
} // namespace vision
|
||||||
} // namespace tasks
|
} // namespace tasks
|
||||||
|
|
|
@ -81,62 +81,6 @@ class FaceStylizer : tasks::vision::core::BaseVisionTaskApi {
|
||||||
std::optional<core::ImageProcessingOptions> image_processing_options =
|
std::optional<core::ImageProcessingOptions> image_processing_options =
|
||||||
std::nullopt);
|
std::nullopt);
|
||||||
|
|
||||||
// Performs face stylization on the provided video frame.
|
|
||||||
//
|
|
||||||
// The optional 'image_processing_options' parameter can be used to specify:
|
|
||||||
// - the rotation to apply to the image before performing stylization, by
|
|
||||||
// setting its 'rotation_degrees' field.
|
|
||||||
// and/or
|
|
||||||
// - the region-of-interest on which to perform stylization, by setting its
|
|
||||||
// 'region_of_interest' field. If not specified, the full image is used.
|
|
||||||
// If both are specified, the crop around the region-of-interest is extracted
|
|
||||||
// first, then the specified rotation is applied to the crop.
|
|
||||||
//
|
|
||||||
// Only use this method when the FaceStylizer is created with the video
|
|
||||||
// running mode.
|
|
||||||
//
|
|
||||||
// The image can be of any size with format RGB or RGBA. It's required to
|
|
||||||
// provide the video frame's timestamp (in milliseconds). The input timestamps
|
|
||||||
// must be monotonically increasing.
|
|
||||||
// When no face is detected on the input image, the method returns a
|
|
||||||
// std::nullopt. Otherwise, returns the stylized image of the most visible
|
|
||||||
// face. The stylized output image size is the same as the model output size.
|
|
||||||
absl::StatusOr<std::optional<mediapipe::Image>> StylizeForVideo(
|
|
||||||
mediapipe::Image image, int64_t timestamp_ms,
|
|
||||||
std::optional<core::ImageProcessingOptions> image_processing_options =
|
|
||||||
std::nullopt);
|
|
||||||
|
|
||||||
// Sends live image data to perform face stylization, and the results will
|
|
||||||
// be available via the "result_callback" provided in the
|
|
||||||
// FaceStylizerOptions.
|
|
||||||
//
|
|
||||||
// The optional 'image_processing_options' parameter can be used to specify:
|
|
||||||
// - the rotation to apply to the image before performing stylization, by
|
|
||||||
// setting its 'rotation_degrees' field.
|
|
||||||
// and/or
|
|
||||||
// - the region-of-interest on which to perform stylization, by setting its
|
|
||||||
// 'region_of_interest' field. If not specified, the full image is used.
|
|
||||||
// If both are specified, the crop around the region-of-interest is extracted
|
|
||||||
// first, then the specified rotation is applied to the crop.
|
|
||||||
//
|
|
||||||
// Only use this method when the FaceStylizer is created with the live stream
|
|
||||||
// running mode.
|
|
||||||
//
|
|
||||||
// The image can be of any size with format RGB or RGBA. It's required to
|
|
||||||
// provide a timestamp (in milliseconds) to indicate when the input image is
|
|
||||||
// sent to the face stylizer. The input timestamps must be monotonically
|
|
||||||
// increasing.
|
|
||||||
//
|
|
||||||
// The "result_callback" provides:
|
|
||||||
// - When no face is detected on the input image, the method returns a
|
|
||||||
// std::nullopt. Otherwise, returns the stylized image of the most visible
|
|
||||||
// face. The stylized output image size is the same as the model output
|
|
||||||
// size.
|
|
||||||
// - The input timestamp in milliseconds.
|
|
||||||
absl::Status StylizeAsync(mediapipe::Image image, int64_t timestamp_ms,
|
|
||||||
std::optional<core::ImageProcessingOptions>
|
|
||||||
image_processing_options = std::nullopt);
|
|
||||||
|
|
||||||
// Shuts down the FaceStylizer when all works are done.
|
// Shuts down the FaceStylizer when all works are done.
|
||||||
absl::Status Close() { return runner_->Close(); }
|
absl::Status Close() { return runner_->Close(); }
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user