Face Engine SDK
5.23.1
A face detection, recognition and tracking engine.
|
00001 00008 #pragma once 00009 00010 #include <fsdk/FSDKError.h> 00011 #include <fsdk/IRefCounted.h> 00012 #include <fsdk/Types.h> 00013 00014 #include <fsdk/vlc/future.h> 00015 00016 namespace fsdk { 00017 struct EyesEstimation; 00018 struct GazeEstimation; 00019 } // namespace fsdk 00020 00021 namespace fsdk { 00022 00023 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00024 DECLARE_SMARTPTR(IWarper); 00025 #endif 00026 00038 struct IWarper : IRefCounted { 00046 virtual Transformation 00047 createTransformation(const Detection& detection, const Landmarks5& landmarks) const noexcept = 0; 00048 00058 virtual Result<FSDKError> warp( 00059 const Image& image, 00060 const Transformation& transformation, 00061 Image& transformedImage) const noexcept = 0; 00062 00081 virtual Result<FSDKError> warp( 00082 Span<const Image> images, 00083 Span<const Transformation> transformations, 00084 Span<Image> transformedImages) const noexcept = 0; 00085 00096 virtual Result<FSDKError> warp( 00097 const Landmarks5& landmarks, 00098 const Transformation& transformation, 00099 Landmarks5& transformedLandmarks) const noexcept = 0; 00100 00111 virtual Result<FSDKError> warp( 00112 const Landmarks68& landmarks68, 00113 const Transformation& transformation, 00114 Landmarks68& transformedLandmarks68) const noexcept = 0; 00115 00129 virtual Result<FSDKError> unwarp( 00130 const EyesEstimation& eyesEstimationInWarpCoordinates, 00131 const Transformation& transformation, 00132 EyesEstimation& eyesEstimation) const noexcept = 0; 00133 00142 virtual Result<FSDKError> unwarp( 00143 const Landmarks5& warpedLandmarks5, 00144 const Transformation& transformation, 00145 Landmarks5& landmarks5) const noexcept = 0; 00146 00155 virtual Result<FSDKError> unwarp( 00156 const Landmarks68& warpedLandmarks68, 00157 const Transformation& transformation, 00158 Landmarks68& landmarks68) const noexcept = 0; 00159 00160 virtual Result<FSDKError> unwarp( 00161 const GazeEstimation& warpedAngles, 00162 const Transformation& transformation, 00163 GazeEstimation& angles) const noexcept = 0; 00164 00168 using ImageBatch = std::vector<Image>; 00169 using ImageBatchFuture = vlc::future<ImageBatch>; 00170 00183 virtual ImageBatchFuture 00184 warpAsync(Span<const Image> images, Span<const Transformation> transformations) const = 0; 00185 }; 00186 00188 } // namespace fsdk