3DiVi Face SDK  3.21.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства Группы
Класс pbio::RawSample

Интерфейсный объект, хранящий образец лица. Подробнее...

#include <RawSample.h>

Классы

struct  Angles
 Углы ориентации лица. Подробнее...
 

Открытые типы

enum  SampleType { SAMPLE_TYPE_FRONTAL = 0, SAMPLE_TYPE_LEFT_PROFILE = 1, SAMPLE_TYPE_RIGHT_PROFILE = 2 }
 Типы образцов (см. также Capturer::CapturerType). Подробнее...
 
enum  ImageFormat { IMAGE_FORMAT_JPG = 0, IMAGE_FORMAT_PNG = 1, IMAGE_FORMAT_TIF = 2, IMAGE_FORMAT_BMP = 3 }
 Форматы изображения для сохранения (сериализации). Подробнее...
 
enum  FaceCutType { FACE_CUT_BASE = 0, FACE_CUT_FULL_FRONTAL = 1, FACE_CUT_TOKEN_FRONTAL = 2 }
 Типы обрезки лица. Подробнее...
 
typedef LightSmartPtr
< RawSample >::tPtr 
Ptr
 Псевдоним для типа умного указателя на RawSample.
 
typedef pbio::Rectangle Rectangle
 Прямоугольник на изображении.
 
typedef pbio::Point Point
 2D точка.
 

Открытые члены

Rectangle getRectangle () const
 Получить ограничивающий прямоугольник лица. Потокобезопасный. Подробнее...
 
std::vector< PointgetLandmarks () const
 Получить антропометрические точки лица. Только для фронтальных образцов. Потокобезопасный. Подробнее...
 
std::vector< PointgetIrisLandmarks () const
 Получить характерные точки глаз. Только для фронтальных образцов. Потокобезопасный. Подробнее...
 
Point getLeftEye () const
 Получить позицию левого глаза. Только для фронтальных образцов. Потокобезопасный. Подробнее...
 
Point getRightEye () const
 Получить позицию правого глаза. Только для фронтальных образцов. Потокобезопасный. Подробнее...
 
Angles getAngles () const
 Получить углы ориентации лица. Только для фронтальных образцов. Потокобезопасный. Подробнее...
 
int getID () const
 Получить целочисленный идентификатор. Потокобезопасный. Подробнее...
 
int getFrameID () const
 Получить ID кадра, на котором был обнаружен образец (для образцов, полученных с помощью VideoWorker). Потокобезопасный. Подробнее...
 
bool hasOriginalImage () const
 Хранит ли образец оригинальное изображение, с которого он был получен (true для образцов, полученных с помощью VideoWorker с включенным параметром store_original_frame_in_raw_sample). Потокобезопасный. Подробнее...
 
float getScore () const
 Получить уверенность детектирования лица (для образцов, полученных с помощью поддерживаемого Capturer). Потокобезопасный. Подробнее...
 
float getFaceVisibilityScore () const
 Получить оценку видимости лица. Потокобезопасный. Подробнее...
 
void getOriginalImage (int &rows, int &cols, IRawImage::Format &format, void const *&data) const
 Получить оригинальное изображение. Выбрасывается исключение, если образец не содержит оригинальное изображение (проверка через RawSample::hasOriginalImage). Потокобезопасный. Подробнее...
 
SampleType getType () const
 Получить тип образца. Потокобезопасный. Подробнее...
 
std::vector< PointgetFaceCutRectangle (FaceCutType cut_type) const
 Получить прямоугольник (для предпросмотра обрезки). Потокобезопасный. Подробнее...
 
void cutFaceImage (std::ostream &binary_stream, ImageFormat format, FaceCutType cut_type) const
 Обрезать лицо и сохранить в указанном формате. Потокобезопасный. Подробнее...
 
RawImage cutFaceRawImage (RawImage::Format color_model, FaceCutType cut_type) const
 Обрезать лицо и выдать в формате RawImage (с декодированными пикселями). Потокобезопасный. Подробнее...
 
void cutFaceImage (pbio::stl_wraps::WrapOStream &binary_stream, ImageFormat format, FaceCutType cut_type) const
 Обрезать лицо и сохранить в указанном формате. Потокобезопасный. Подробнее...
 
void cutFaceImage (const RawImage original_image, std::ostream &binary_stream, ImageFormat format, FaceCutType cut_type) const
 Обрезать лицо и сохранить в исходном размере в указанном формате. Потокобезопасный. Подробнее...
 
void cutFaceImage (const RawImage original_image, pbio::stl_wraps::WrapOStream &binary_stream, ImageFormat format, FaceCutType cut_type) const
 Обрезать лицо и сохранить в исходном размере в указанном формате. Потокобезопасный. Подробнее...
 
void save (std::ostream &binary_stream, ImageFormat format) const
 Сохранить (сериализовать) образец. Оригинальное изображение не сохраняется. (т.е. сохраняется только часть изображения, содержащая лицо). Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSample. Подробнее...
 
void save (pbio::stl_wraps::WrapOStream &binary_stream, ImageFormat format) const
 Сохранить (сериализовать) образец. Оригинальное изображение не сохраняется. (т.е. сохраняется только часть изображения, содержащая лицо). Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSample. Подробнее...
 
void saveWithoutImage (pbio::stl_wraps::WrapOStream &binary_stream, const double space_translation_x=0, const double space_translation_y=0, const double space_scale=1) const
 Сохранить (сериализовать) всю информацию, кроме изображения. Вы должны сохранить изображение самостоятельно для того, чтобы подать его в FacerecService::loadRawSampleWithoutImage для десериализации. В случае, если над изображением была выполнена трансформация, вы можете указать параметры преобразования пространства координат: (x, y) -> ( (x + space_translation_x) * space_scale, (y + space_translation_y) * space_scale ) которое будет применено к информации о позиции лица. Заметьте, что параметры одного и того же преобразования нужно передавать только один раз - либо при сериализации, либо при десериализации, иначе преобразование будет применено дважды, что неверно. Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSampleWithoutImage. Подробнее...
 
void saveWithoutImage (std::ostream &binary_stream, const double space_translation_x=0, const double space_translation_y=0, const double space_scale=1) const
 Сохранить (сериализовать) всю информацию, кроме изображения. Вы должны сохранить изображение самостоятельно для того, чтобы подать его в FacerecService::loadRawSampleWithoutImage для десериализации. В случае, если над изображением была выполнена трансформация, вы можете указать параметры преобразования пространства координат: (x, y) -> ( (x + space_translation_x) * space_scale, (y + space_translation_y) * space_scale ) которое будет применено к информации о позиции лица. Заметьте, что параметры одного и того же преобразования нужно передавать только один раз - либо при сериализации, либо при десериализации, иначе преобразование будет применено дважды, что неверно. Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSampleWithoutImage. Подробнее...
 
RawSample::Ptr downscaleToPreferredSize () const
 Создать копию образца с внутренним изображением лица, уменьшенным до предпочтительного размера и без оригинального изображения. В целях уменьшения потребления памяти (как в оперативной памяти, так и после сериализации).
При работе Capturer и VideoWorker автоматически уменьшают все образцы, если параметр downscale_rawsamples_to_preferred_size включен (включен по умолчанию), но это снижает производительность.
Рекомендуется отключать downscale_rawsamples_to_preferred_size, и использовать RawSample::downscaleToPreferredSize вручную для образцов, которые вам нужно сохранить или в течение длительного времени удерживать в оперативной памяти. Подробнее...
 
Context toContext () const
 

Подробное описание

Интерфейсный объект, хранящий образец лица.

Перечисления

Типы обрезки лица.

Элементы перечислений
FACE_CUT_BASE 

Базовый (подходит для образцов всех типов).

FACE_CUT_FULL_FRONTAL 

Полный фронтальный ТИЛ (тип изображения лица) по ГОСТ Р ИСО / МЭК 19794-5 (ISO/IEC 19794-5 Full Frontal) (только для фронтальных образцов).

FACE_CUT_TOKEN_FRONTAL 

Условно фронтальный ТИЛ (тип изображения лица) по ГОСТ Р ИСО / МЭК 19794-5 (ISO/IEC 19794-5 Token Frontal) (только для фронтальных образцов).

Форматы изображения для сохранения (сериализации).

Элементы перечислений
IMAGE_FORMAT_JPG 

JPEG (сжатие с потерями).

IMAGE_FORMAT_PNG 

PNG (сжатие без потерь).

IMAGE_FORMAT_TIF 

TIFF (сжатие без потерь).

IMAGE_FORMAT_BMP 

BMP (без сжатия).

Типы образцов (см. также Capturer::CapturerType).

Элементы перечислений
SAMPLE_TYPE_FRONTAL 

Фронтальное лицо.

SAMPLE_TYPE_LEFT_PROFILE 

Лицо в профиль, смотрящее влево.

SAMPLE_TYPE_RIGHT_PROFILE 

Лицо в профиль, смотрящее вправо.

Методы

void pbio::RawSample::cutFaceImage ( std::ostream &  binary_stream,
RawSample::ImageFormat  format,
RawSample::FaceCutType  cut_type 
) const
inline

Обрезать лицо и сохранить в указанном формате. Потокобезопасный.

Аргументы
[out]binary_streamПоток для сохранения закодированного изображения. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат для сохранения изображения.
[in]cut_typeТип обрезки.
void pbio::RawSample::cutFaceImage ( pbio::stl_wraps::WrapOStream &  binary_stream,
ImageFormat  format,
FaceCutType  cut_type 
) const
inline

Обрезать лицо и сохранить в указанном формате. Потокобезопасный.

Аргументы
[out]binary_streamПоток для сохранения закодированного изображения. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат для сохранения изображения.
[in]cut_typeТип обрезки.
void pbio::RawSample::cutFaceImage ( const RawImage  original_image,
std::ostream &  binary_stream,
ImageFormat  format,
FaceCutType  cut_type 
) const
inline

Обрезать лицо и сохранить в исходном размере в указанном формате. Потокобезопасный.

Аргументы
[in]original_imageИзображение, используемое для создания образца.
[out]binary_streamОбъект потока вывода для сохранения изображения. Поток файла (std::ofstream) (если таковой имеется) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат кодирования изображения.
[in]cut_typeТип обрезки лица.
void pbio::RawSample::cutFaceImage ( const RawImage  original_image,
pbio::stl_wraps::WrapOStream &  binary_stream,
ImageFormat  format,
FaceCutType  cut_type 
) const
inline

Обрезать лицо и сохранить в исходном размере в указанном формате. Потокобезопасный.

Аргументы
[in]original_imageИзображение, используемое для создания образца.
[out]binary_streamОбъект потока вывода для сохранения изображения. Поток файла (std::ofstream) (если таковой имеется) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат кодирования изображения.
[in]cut_typeТип обрезки лица.
RawImage pbio::RawSample::cutFaceRawImage ( RawImage::Format  color_model,
FaceCutType  cut_type 
) const
inline

Обрезать лицо и выдать в формате RawImage (с декодированными пикселями). Потокобезопасный.

Аргументы
[in]color_modelЦветовая модель изображения.
[in]cut_typeТип обрезки.
Возвращает
RawImage c кропом лица
RawSample::Ptr pbio::RawSample::downscaleToPreferredSize ( ) const
inline

Создать копию образца с внутренним изображением лица, уменьшенным до предпочтительного размера и без оригинального изображения. В целях уменьшения потребления памяти (как в оперативной памяти, так и после сериализации).
При работе Capturer и VideoWorker автоматически уменьшают все образцы, если параметр downscale_rawsamples_to_preferred_size включен (включен по умолчанию), но это снижает производительность.
Рекомендуется отключать downscale_rawsamples_to_preferred_size, и использовать RawSample::downscaleToPreferredSize вручную для образцов, которые вам нужно сохранить или в течение длительного времени удерживать в оперативной памяти.

Возвращает
Созданный RawSample.
RawSample::Angles pbio::RawSample::getAngles ( ) const
inline

Получить углы ориентации лица. Только для фронтальных образцов. Потокобезопасный.

Возвращает
Углы ориентации лица.
std::vector< RawSample::Point > pbio::RawSample::getFaceCutRectangle ( FaceCutType  cut_type) const
inline

Получить прямоугольник (для предпросмотра обрезки). Потокобезопасный.

Возвращает
4 точки - углы прямоугольника в порядке против часовой стрелки, начиная с левого верхнего угла.
Аргументы
[in]cut_typeТип обрезки.
float pbio::RawSample::getFaceVisibilityScore ( ) const
inline

Получить оценку видимости лица. Потокобезопасный.

Возвращает
Один, если лицо полностью видимо,
ноль, если лицо невидимо,
иначе - число в диапазоне [0 ... 1].
int pbio::RawSample::getFrameID ( ) const
inline

Получить ID кадра, на котором был обнаружен образец (для образцов, полученных с помощью VideoWorker). Потокобезопасный.

Возвращает
Ноль, если образец был получен не через VideoWorker,
иначе - неотрицательное целое число - идентификатор (который был возвращен методом VideoWorker::addVideoFrame) кадра, на котором был обнаружен образец.
int pbio::RawSample::getID ( ) const
inline

Получить целочисленный идентификатор. Потокобезопасный.

Возвращает
  • Неотрицательное число, если образец был получен с помощью трекера, или
  • Любое отрицательное число в противном случае.
std::vector< RawSample::Point > pbio::RawSample::getIrisLandmarks ( ) const
inline

Получить характерные точки глаз. Только для фронтальных образцов. Потокобезопасный.

Возвращает
Вектор позиций точек зрачков и контуров век на оригинальном изображении.
std::vector< RawSample::Point > pbio::RawSample::getLandmarks ( ) const
inline

Получить антропометрические точки лица. Только для фронтальных образцов. Потокобезопасный.

Возвращает
Вектор позиций антропометрических точек на оригинальном изображении.
RawSample::Point pbio::RawSample::getLeftEye ( ) const
inline

Получить позицию левого глаза. Только для фронтальных образцов. Потокобезопасный.

Возвращает
Позиция левого глаза на оригинальном изображении.
void pbio::RawSample::getOriginalImage ( int &  rows,
int &  cols,
IRawImage::Format format,
void const *&  data 
) const
inline

Получить оригинальное изображение. Выбрасывается исключение, если образец не содержит оригинальное изображение (проверка через RawSample::hasOriginalImage). Потокобезопасный.

Аргументы
[out]rowsВысота оригинального изображения.
[out]colsШирина оригинального изображения.
[out]formatФормат оригинального изображения.
[out]dataУказатель на данные изображения.
RawSample::Rectangle pbio::RawSample::getRectangle ( ) const
inline

Получить ограничивающий прямоугольник лица. Потокобезопасный.

Возвращает
Прямоугольник, ограничивающий лицо на оригинальном изображении.
RawSample::Point pbio::RawSample::getRightEye ( ) const
inline

Получить позицию правого глаза. Только для фронтальных образцов. Потокобезопасный.

Возвращает
Позиция правого глаза на оригинальном изображении.
float pbio::RawSample::getScore ( ) const
inline

Получить уверенность детектирования лица (для образцов, полученных с помощью поддерживаемого Capturer). Потокобезопасный.

Возвращает
Один, если образец был получен через неподдерживаемый Capturer,
иначе - число в диапазоне [0 ... 1].
RawSample::SampleType pbio::RawSample::getType ( ) const
inline

Получить тип образца. Потокобезопасный.

Возвращает
Тип образца.
bool pbio::RawSample::hasOriginalImage ( ) const
inline

Хранит ли образец оригинальное изображение, с которого он был получен (true для образцов, полученных с помощью VideoWorker с включенным параметром store_original_frame_in_raw_sample). Потокобезопасный.

Возвращает
true, если содержит, иначе false.
void pbio::RawSample::save ( std::ostream &  binary_stream,
ImageFormat  format 
) const
inline

Сохранить (сериализовать) образец. Оригинальное изображение не сохраняется. (т.е. сохраняется только часть изображения, содержащая лицо). Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSample.

Аргументы
[out]binary_streamОбъект потока. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат кодирования изображения.
void pbio::RawSample::save ( pbio::stl_wraps::WrapOStream &  binary_stream,
ImageFormat  format 
) const
inline

Сохранить (сериализовать) образец. Оригинальное изображение не сохраняется. (т.е. сохраняется только часть изображения, содержащая лицо). Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSample.

Аргументы
[out]binary_streamОбъект потока. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]formatФормат кодирования изображения.
void pbio::RawSample::saveWithoutImage ( pbio::stl_wraps::WrapOStream &  binary_stream,
const double  space_translation_x = 0,
const double  space_translation_y = 0,
const double  space_scale = 1 
) const
inline

Сохранить (сериализовать) всю информацию, кроме изображения. Вы должны сохранить изображение самостоятельно для того, чтобы подать его в FacerecService::loadRawSampleWithoutImage для десериализации. В случае, если над изображением была выполнена трансформация, вы можете указать параметры преобразования пространства координат: (x, y) -> ( (x + space_translation_x) * space_scale, (y + space_translation_y) * space_scale ) которое будет применено к информации о позиции лица. Заметьте, что параметры одного и того же преобразования нужно передавать только один раз - либо при сериализации, либо при десериализации, иначе преобразование будет применено дважды, что неверно. Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSampleWithoutImage.

Аргументы
[out]binary_streamОбъект потока для сохранения "сырого" изображения. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]space_translation_xПараметр преобразования пространства координат.
[in]space_translation_yПараметр преобразования пространства координат.
[in]space_scaleПараметр преобразования пространства координат.
void pbio::RawSample::saveWithoutImage ( std::ostream &  binary_stream,
const double  space_translation_x = 0,
const double  space_translation_y = 0,
const double  space_scale = 1 
) const
inline

Сохранить (сериализовать) всю информацию, кроме изображения. Вы должны сохранить изображение самостоятельно для того, чтобы подать его в FacerecService::loadRawSampleWithoutImage для десериализации. В случае, если над изображением была выполнена трансформация, вы можете указать параметры преобразования пространства координат: (x, y) -> ( (x + space_translation_x) * space_scale, (y + space_translation_y) * space_scale ) которое будет применено к информации о позиции лица. Заметьте, что параметры одного и того же преобразования нужно передавать только один раз - либо при сериализации, либо при десериализации, иначе преобразование будет применено дважды, что неверно. Формат платформонезависимый. Потокобезопасный. Десериализовать образец можно через FacerecService::loadRawSampleWithoutImage.

Аргументы
[out]binary_streamОбъект потока для сохранения "сырого" изображения. Поток файла (std::ofstream) необходимо открывать с флагом std::ios_base::binary.
[in]space_translation_xПараметр преобразования пространства координат.
[in]space_translation_yПараметр преобразования пространства координат.
[in]space_scaleПараметр преобразования пространства координат.