ROC SDK  2.4.0
Scalable Face Recognition Software
roc-embedded.h
1 // Copyright © 2015-2022 Rank One Computing Corporation. All rights reserved.
2 
3 #ifndef ROC_EMBEDDED_H
4 #define ROC_EMBEDDED_H
5 
6 #include <stdbool.h>
7 #include <stdint.h>
8 #include <string.h>
9 
10 #if defined ROC_LIBRARY || defined BR_LIBRARY
11 # if defined _WIN32 || defined __CYGWIN__
12 # define ROC_EXPORT __declspec(dllexport)
13 # else
14 # define ROC_EXPORT __attribute__((visibility("default")))
15 # endif
16 #else
17 # if defined _WIN32 || defined __CYGWIN__
18 # define ROC_EXPORT __declspec(dllimport)
19 # else
20 # define ROC_EXPORT
21 # endif
22 #endif
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #ifndef SWIG_ROC_VIDEO
29 
30 #ifdef SWIG_ROC_EMBEDDED
31 %module roc_embedded
32 %begin %{
33 #define SWIG_PYTHON_STRICT_BYTE_CHAR
34 %}
35 %include cpointer.i
36 %include carrays.i
37 #if defined(SWIGPYTHON) || defined(SWIGJAVA)
38 %include cdata.i
39 #endif // SWIGPYTHON || SWIGJAVA
40 %include stdint.i
41 %{
42 #include "roc.h"
43 %}
44 #ifdef SWIGJAVA
45 SWIG_JAVABODY_PROXY(public, public, SWIGTYPE)
46 SWIG_JAVABODY_TYPEWRAPPER(public, public, public, SWIGTYPE)
47 %include enumtypeunsafe.swg
49 %{
50 JNIEXPORT jstring JNICALL
51 Java_io_rankone_rocsdk_embedded_rocJNI_roc_1preinitialize_1android(JNIEnv *,
52  jclass,
53  jobject);
54 %}
55 
56 // https://stackoverflow.com/a/33543680
57 %typemap(jni) uint8_t *UBYTE "jbyteArray"
58 %typemap(jtype) uint8_t *UBYTE "byte[]"
59 %typemap(jstype) uint8_t *UBYTE "byte[]"
60 %typemap(in) uint8_t *UBYTE {
61  $1 = (uint8_t *) JCALL2(GetByteArrayElements, jenv, $input, 0);
62 }
63 %typemap(argout) uint8_t *UBYTE {
64  JCALL3(ReleaseByteArrayElements, jenv, $input, (jbyte *) $1, 0);
65 }
66 %typemap(javain) uint8_t *UBYTE "$javainput"
67 %typemap(freearg) uint8_t *UBYTE ""
68 %apply uint8_t *UBYTE { uint8_t *input_byte_array };
69 %apply uint8_t *UBYTE { uint8_t *output_byte_array };
70 %apply uint8_t *UBYTE { uint8_t *y_in };
71 %apply uint8_t *UBYTE { uint8_t *u_in };
72 %apply uint8_t *UBYTE { uint8_t *v_in };
73 #endif // SWIGJAVA
74 #ifdef SWIGCSHARP
75 %apply void *VOID_INT_PTR { void * }
76 %include "arrays_csharp.i"
77 %apply uint8_t INPUT[] { uint8_t *input_byte_array }
78 %apply uint8_t OUTPUT[] { uint8_t *output_byte_array }
79 %apply uint8_t INPUT[] { uint8_t *y_in }
80 %apply uint8_t INPUT[] { uint8_t *u_in }
81 %apply uint8_t INPUT[] { uint8_t *v_in }
82 %typemap(csbase) roc_algorithm_options "long"
83 #endif // SWIGSCHARP
84 %pointer_functions(int, int)
85 %pointer_functions(float, float)
86 %pointer_functions(size_t, size_t)
87 %pointer_functions(roc_similarity, roc_similarity)
88 %pointer_functions(roc_string, roc_string)
89 %pointer_functions(roc_buffer, roc_buffer)
90 %pointer_functions(roc_time, roc_time)
92 %array_functions(uint8_t, uint8_t_array)
93 %array_functions(float, float_array)
94 %array_functions(roc_template, roc_template_array)
95 %array_functions(roc_similarity, roc_similarity_array)
96 %array_functions(roc_person_id, roc_person_id_array)
97 %array_functions(roc_detection, roc_detection_array)
98 %array_functions(roc_landmark, roc_landmark_array)
99 %array_functions(roc_roi, roc_roi_array)
100 #endif // SWIG_ROC_EMBEDDED
101 
116 #define ROC_VERSION_MAJOR 2
117 
124 #define ROC_VERSION_MINOR 4
125 
129 #define ROC_VERSION_PATCH 0
130 
135 #define ROC_VERSION_STRING "2.4.0"
136 
141 ROC_EXPORT int roc_version_major();
142 
147 ROC_EXPORT int roc_version_minor();
148 
153 ROC_EXPORT int roc_version_patch();
154 
159 ROC_EXPORT const char *roc_version_string();
160 
164 #define ROC_COPYRIGHT "Copyright © 2015-2022 Rank One Computing Corporation. All rights reserved."
165 
169 ROC_EXPORT const char *roc_copyright();
170  // end of versioning
172 
184 #endif // !SWIG_ROC_VIDEO
185 
206 typedef const char *roc_error;
207 
208 #ifndef SWIG_ROC_VIDEO
209 
218 #define ROC_ATTEMPT(EXPRESSION) \
219 { \
220  const roc_error error = (EXPRESSION); \
221  if (error) \
222  return error; \
223 }
224 
243 ROC_EXPORT void roc_ensure(roc_error error);
244 
253 typedef void (*roc_log_callback)(const char*);
254 
272 ROC_EXPORT roc_error roc_set_logging(bool stdout_,
273  const char *filename,
274  roc_log_callback callback);
275 
288 ROC_EXPORT bool roc_log(const char *message);
289 
302 ROC_EXPORT bool roc_log_no_callback(const char *message);
303  // end of error_handling
305 
325 typedef struct roc_uuid
326 {
330  uint8_t data[16];
331 
332 #if defined(__cplusplus) && !defined(SWIG)
333 
336  inline bool operator==(const roc_uuid &other) const
337  {
339  return roc_uuid_is_equal(*this, other);
340  }
341 
345  inline bool operator!=(const roc_uuid &other) const
346  {
348  return !roc_uuid_is_equal(*this, other);
349  }
350 
354  inline bool operator<(const roc_uuid &other) const
355  {
357  return roc_uuid_is_less_than(*this, other);
358  }
359 
363  inline operator bool() const
364  {
366  return !roc_uuid_is_null(*this);
367  }
368 #endif // __cplusplus && !SWIG
369 } roc_uuid;
370 
371 #ifdef __cplusplus
372 
377 inline unsigned int qHash(const roc_uuid &a)
378 {
379  unsigned int result;
380  memcpy(&result, &a.data[0], sizeof(unsigned int));
381  return result;
382 }
383 #endif // __cplusplus
384 
398 ROC_EXPORT roc_uuid roc_uuid_from_bytes(const uint8_t *input_byte_array,
399  size_t length);
400 
416 ROC_EXPORT roc_uuid roc_uuid_from_int(uint64_t val);
417 
433 ROC_EXPORT uint64_t roc_uuid_to_int(roc_uuid uuid);
434 
446 ROC_EXPORT roc_uuid roc_uuid_get_null();
447 
461 ROC_EXPORT bool roc_uuid_is_null(roc_uuid uuid);
462 
478 ROC_EXPORT bool roc_uuid_is_equal(roc_uuid a,
479  roc_uuid b);
480 
498 ROC_EXPORT bool roc_uuid_is_less_than(roc_uuid a,
499  roc_uuid b);
500 
505 
511 
517 
523 
530 
537 
543 ROC_EXPORT void roc_free_uuid_array(roc_uuid_array *uuid_array);
544 
550 typedef struct roc_hash
551 {
555  uint8_t data[20];
556 
557 #if defined(__cplusplus) && !defined(SWIG)
558 
561  inline bool operator==(const roc_hash &other) const
562  {
564  return roc_hash_is_equal(*this, other);
565  }
566 
570  inline bool operator!=(const roc_hash &other) const
571  {
573  return !roc_hash_is_equal(*this, other);
574  }
575 
579  inline bool operator<(const roc_hash &other) const
580  {
582  return roc_hash_is_less_than(*this, other);
583  }
584 
588  inline operator bool() const
589  {
591  return !roc_hash_is_null(*this);
592  }
593 #endif // __cplusplus && !SWIG
594 } roc_hash;
595 
609 ROC_EXPORT roc_hash roc_hash_from_bytes(const uint8_t *input_byte_array,
610  size_t length);
611 
623 ROC_EXPORT roc_hash roc_hash_get_null();
624 
638 ROC_EXPORT bool roc_hash_is_null(roc_hash hash);
639 
655 ROC_EXPORT bool roc_hash_is_equal(roc_hash a,
656  roc_hash b);
657 
675 ROC_EXPORT bool roc_hash_is_less_than(roc_hash a,
676  roc_hash b);
677 
688 ROC_EXPORT roc_hash roc_hash_from_uuid(roc_uuid uuid);
689 
699 ROC_EXPORT roc_uuid roc_hash_to_uuid(roc_hash hash);
700 
706 
712 
716 typedef uint64_t roc_time;
717 
718 #ifndef SWIG
719 
725 #define ROC_NO_TIMESTAMP 0xFFFFFFFFFFFFFFFF
726 #else // SWIG
727 %constant uint64_t ROC_NO_TIMESTAMP = 0xFFFFFFFFFFFFFFFF;
728 #endif // !SWIG
729  // end of identifiers_and_hashses
731 
742 #endif // !SWIG_ROC_VIDEO
743 
747 typedef enum roc_color_space
748 {
753 
759 
811 typedef struct roc_image
812 {
813  uint8_t *data;
814  size_t width;
815  size_t height;
816  size_t step;
823 } roc_image;
824 
825 #ifndef SWIG_ROC_VIDEO
826 
834 typedef struct roc_roi
835 {
836  float x;
838  float y;
840  float width;
841  float height;
842 } roc_roi;
843 
852 ROC_EXPORT roc_roi roc_roi_get(float x,
853  float y,
854  float width,
855  float height);
856 
863 ROC_EXPORT bool roc_roi_is_null(roc_roi roi);
864 
879 ROC_EXPORT bool roc_roi_is_fractional(roc_roi roi);
880 
895 ROC_EXPORT bool roc_roi_within(roc_roi test,
896  roc_roi reference,
897  size_t image_width,
898  size_t image_height,
899  float min_overlap);
900 
921 ROC_EXPORT bool roc_roi_within_set(roc_roi test,
922  const roc_roi *include,
923  size_t num_include,
924  const roc_roi *exclude,
925  size_t num_exclude,
926  size_t image_width,
927  size_t image_height,
928  float min_overlap);
929 
952 ROC_EXPORT roc_error roc_new_image(size_t width,
953  size_t height,
954  size_t step,
955  roc_color_space color_space,
956  roc_media_id media_id,
957  roc_camera_id camera_id,
958  roc_time timestamp,
959  const uint8_t *input_byte_array,
960  roc_image *image);
961 
976 ROC_EXPORT roc_error roc_copy_image(roc_image src, roc_image *dst);
977 
995 ROC_EXPORT roc_error roc_rotate(roc_image *image, int degrees);
996 
1004 ROC_EXPORT roc_error roc_swap_channels(roc_image image);
1005 
1023 ROC_EXPORT roc_error roc_bgr2gray(roc_image src, roc_image *dst);
1024 
1044 ROC_EXPORT roc_error roc_gray2bgr(roc_image src, roc_image *dst);
1045 
1062 ROC_EXPORT roc_error roc_to_rgba(roc_image src,
1063  uint8_t *output_byte_array);
1064 
1088 ROC_EXPORT roc_error roc_from_rgba(const uint8_t *input_byte_array,
1089  size_t width,
1090  size_t height,
1091  size_t step,
1092  roc_image *image);
1093 
1117 ROC_EXPORT roc_error roc_from_bgra(const uint8_t *input_byte_array,
1118  size_t width,
1119  size_t height,
1120  size_t step,
1121  roc_image *image);
1122 
1144 ROC_EXPORT roc_error roc_from_yuv(const uint8_t *y_in,
1145  const uint8_t *u_in,
1146  const uint8_t *v_in,
1147  size_t y_row_stride,
1148  size_t uv_row_stride,
1149  size_t uv_pixel_stride,
1150  size_t width,
1151  size_t height,
1152  roc_image *image);
1153 
1179 ROC_EXPORT roc_error roc_enhance_contrast(const roc_image src,
1180  float clip_limit,
1181  int num_tiles,
1182  roc_image *dst);
1183 
1200 ROC_EXPORT roc_error roc_read_ppm(const char *file_name, roc_image *image);
1201 
1219 ROC_EXPORT roc_error roc_write_ppm(const char *file_name, roc_image image);
1220 
1226 ROC_EXPORT roc_error roc_free_image(roc_image image);
1227 
1232 typedef const char *roc_string;
1233 
1250 ROC_EXPORT roc_error roc_set_string(const char *src, roc_string *dst);
1251 
1266 ROC_EXPORT roc_error roc_free_string(roc_string *str);
1267 
1272 typedef const uint8_t *roc_buffer;
1273 
1288 ROC_EXPORT roc_error roc_free_buffer(roc_buffer *buffer);
1289  // end of image_format
1291 
1305 typedef enum roc_pose_options
1306 {
1311 
1316 
1321 
1327 
1331 typedef uint32_t roc_pose;
1332 
1342 ROC_EXPORT const char *roc_pose_to_string(roc_pose pose);
1343 
1350 typedef struct roc_landmark
1351 {
1352  float x;
1353  float y;
1354 } roc_landmark;
1355 
1365 ROC_EXPORT bool roc_landmark_is_visible(roc_landmark l);
1366 
1370 typedef struct roc_detection
1371 {
1372  float x;
1373  float y;
1374  float width;
1375  float height;
1376  float rotation;
1377  float confidence;
1387  int32_t image_width;
1388  int32_t image_height;
1389 } roc_detection;
1390 
1391 #ifndef SWIG
1392 
1399 #define ROC_SUGGESTED_RELATIVE_MIN_SIZE 0.04f
1400 #else // SWIG
1401 %constant float ROC_SUGGESTED_RELATIVE_MIN_SIZE = 0.04f;
1402 #endif // !SWIG
1403 
1404 #ifndef SWIG
1405 
1412 #define ROC_SUGGESTED_ABSOLUTE_MIN_SIZE 20
1413 #else // SWIG
1414 %constant unsigned ROC_SUGGESTED_ABSOLUTE_MIN_SIZE = 20;
1415 #endif // !SWIG
1416 
1417 #ifndef SWIG
1418 
1426 #define ROC_SUGGESTED_FALSE_DETECTION_RATE 0.02f
1427 #else // SWIG
1428 %constant float ROC_SUGGESTED_FALSE_DETECTION_RATE = 0.02f;
1429 #endif // !SWIG
1430 
1431 #ifndef SWIG
1432 
1438 #define ROC_OBJECT_SUGGESTED_FALSE_DETECTION_RATE 0.005f
1439 #else // SWIG
1440 %constant float ROC_OBJECT_SUGGESTED_FALSE_DETECTION_RATE = 0.005f;
1441 #endif // !SWIG
1442 
1443 #ifndef SWIG
1444 
1450 #define ROC_GUN_SUGGESTED_FALSE_DETECTION_RATE 0.1f
1451 #else // SWIG
1452 %constant float ROC_GUN_SUGGESTED_FALSE_DETECTION_RATE = 0.1f;
1453 #endif // !SWIG
1454 
1455 #ifndef SWIG
1456 
1462 #define ROC_TEXT_SUGGESTED_FALSE_DETECTION_RATE 0.02f
1463 #else // SWIG
1464 %constant float ROC_TEXT_SUGGESTED_FALSE_DETECTION_RATE = 0.02f;
1465 #endif // !SWIG
1466 
1467 #ifndef SWIG
1468 
1474 #define ROC_FINGERPRINT_SUGGESTED_FALSE_DETECTION_RATE 0.5f
1475 #else // SWIG
1476 %constant float ROC_FINGERPRINT_SUGGESTED_FALSE_DETECTION_RATE = 0.5f;
1477 #endif // !SWIG
1478 
1479 #ifndef SWIG
1480 
1485  #define ROC_NO_MIN_QUALITY -FLT_MAX
1486  #else // SWIG
1487  %constant float ROC_NO_MIN_QUALITY = -FLT_MAX;
1488  #endif // !SWIG
1489 
1490  #ifndef SWIG
1491 
1496  #define ROC_TEXT_SUGGESTED_MIN_QUALITY 0.8f
1497  #else // SWIG
1498  %constant float ROC_TEXT_SUGGESTED_MIN_QUALITY = 0.8f;
1499  #endif // !SWIG
1500 
1501  #ifndef SWIG
1502 
1508  #define ROC_TATTOO_SUGGESTED_MIN_QUALITY 0.0f
1509  #else // SWIG
1510  %constant float ROC_TATTOO_SUGGESTED_MIN_QUALITY = 0.0f;
1511  #endif // !SWIG
1512 
1513  #ifndef SWIG
1514 
1520  #define ROC_FINGERPRINT_SUGGESTED_MIN_QUALITY -3.0f
1521  #else // SWIG
1522  %constant float ROC_FINGERPRINT_SUGGESTED_MIN_QUALITY = -3.0f;
1523  #endif // !SWIG
1524 
1525  #ifndef SWIG
1526 
1532  #define ROC_DEEP_SUGGESTED_MIN_QUALITY -0.2f
1533  #else // SWIG
1534  %constant float ROC_DEEP_SUGGESTED_MIN_QUALITY = -0.2f;
1535  #endif // !SWIG
1536 
1537  #ifndef SWIG
1538 
1544  #define ROC_FAST_SUGGESTED_MIN_QUALITY -FLT_MAX
1545  #else // SWIG
1546  %constant float ROC_FAST_SUGGESTED_MIN_QUALITY = -FLT_MAX;
1547  #endif // !SWIG
1548 
1549  #ifndef SWIG
1550 
1556  #define ROC_STANDARD_SUGGESTED_MIN_QUALITY -FLT_MAX
1557  #else // SWIG
1558  %constant float ROC_STANDARD_SUGGESTED_MIN_QUALITY = -FLT_MAX;
1559  #endif // !SWIG
1560 
1589 ROC_EXPORT roc_error roc_adaptive_minimum_size(size_t image_width,
1590  size_t image_height,
1591  float relative_min_size,
1592  size_t absolute_min_size,
1593  size_t *adaptive_min_size);
1594 
1599 typedef int64_t roc_algorithm_id;
1600 
1617 #ifdef __cplusplus
1619 #else // !__cplusplus
1620 typedef enum roc_algorithm_options
1621 #endif // __cplusplus
1622 {
1627 
1637 
1647 
1654 
1665 
1687 
1705 
1716 
1723 
1732 
1740 
1748 
1758 
1780 
1789 
1797 
1827  ROC_ANALYTICS = 0x10000,
1828 
1843 
1850  ROC_LANDMARKS = 0x40000,
1851 
1868  ROC_PITCHYAW = 0x80000,
1869 
1878  ROC_ICAO_METRICS = 0x100000,
1879 
1893 
1922  ROC_SPOOF = 0x200000,
1923 
1948  ROC_THUMBNAIL = 0x1000000,
1949 
1959  ROC_SERIAL = 0x2000000,
1960 
1970  ROC_FILTER_TEXT = 0x4000000,
1971 
1972  // NOTE: Start first object detector at 32-bit boundary
1976  ROC_AIRPLANE_DETECTION = 0x100000000,
1977 
1981  ROC_BICYCLE_DETECTION = 0x200000000,
1982 
1986  ROC_BOAT_DETECTION = 0x400000000,
1987 
1991  ROC_BUS_DETECTION = 0x800000000,
1992 
1996  ROC_CAR_DETECTION = 0x1000000000,
1997 
2004  ROC_GUN_DETECTION = 0x2000000000,
2005 
2010 
2015 
2019  ROC_MOTORCYCLE_DETECTION = 0x10000000000,
2020 
2024  ROC_PERSON_DETECTION = 0x20000000000,
2025 
2029  ROC_TRUCK_DETECTION = 0x40000000000,
2030 
2057  | ROC_TRUCK_DETECTION ),
2058 
2065 
2066 }
2067 #ifdef __cplusplus
2068 ;
2069 #else // !__cplusplus
2071 #endif // __cplusplus
2072 
2080 typedef enum roc_color_options
2081 {
2086 
2091 
2096 
2101 
2106 
2111 
2116 
2121 
2126 
2131 
2136 
2142 
2146 typedef int64_t roc_color_selection;
2147 
2152 typedef uint8_t roc_finger_id;
2153 
2161 {
2166 
2175  ROC_THUMB = 0x1,
2176 
2186 
2196 
2206 
2216 
2222 
2228 
2234 
2240 
2245 
2250 
2256 
2270  algorithm_option,
2271  const char **str);
2272 
2279 ROC_EXPORT roc_error roc_algorithm_option_from_string(const char *str,
2281  *algorithm_option);
2282 
2298 ROC_EXPORT roc_error roc_finger_id_to_string(roc_finger_id finger_id,
2299  roc_string *str);
2300 
2308  roc_finger_id *finger_id);
2309 
2310 
2318 ROC_EXPORT roc_error roc_check_template_version(roc_algorithm_id algorithm_id);
2319 
2320 #ifndef SWIG
2321 
2324 #define ROC_STANDARD_FV_SIZE 261
2325 #else // SWIG
2326 %constant uint32_t ROC_STANDARD_FV_SIZE = 261;
2327 #endif // !SWIG
2328 
2329 #ifndef SWIG
2330 
2333 #define ROC_DEEP_FV_SIZE 261
2334 #else // SWIG
2335 %constant uint32_t ROC_DEEP_FV_SIZE = 261;
2336 #endif // !SWIG
2337 
2338 #ifndef SWIG
2339 
2342 #define ROC_OBJECT_FV_SIZE 262
2343 #else // SWIG
2344 %constant uint32_t ROC_OBJECT_FV_SIZE = 262;
2345 #endif // !SWIG
2346 
2347 #ifndef SWIG
2348 
2351 #define ROC_FAST_FV_SIZE 261
2352 #else // SWIG
2353 %constant uint32_t ROC_FAST_FV_SIZE = 261;
2354 #endif // !SWIG
2355 
2356 #ifndef SWIG
2357 
2360 #define ROC_TATTOO_FV_SIZE 37
2361 #else // SWIG
2362 %constant uint32_t ROC_TATTOO_FV_SIZE = 37;
2363 #endif // !SWIG
2364 
2365 #ifndef SWIG
2366 
2369 #define ROC_FINGERPRINT_FV_SIZE 262
2370 #else // SWIG
2371 %constant uint32_t ROC_FINGERPRINT_FV_SIZE = 262;
2372 #endif // !SWIG
2373 
2374 
2375 #ifndef SWIG
2376 
2386 #define ROC_TEMPLATE_VERSION (((int64_t) ROC_VERSION_MAJOR << 61) + ((int64_t) ROC_VERSION_MINOR << 55))
2387 #else // SWIG
2388 %constant int64_t ROC_TEMPLATE_VERSION = (((int64_t) ROC_VERSION_MAJOR << 61) + ((int64_t) ROC_VERSION_MINOR << 55));
2389 #endif // !SWIG
2390 
2391 #ifndef SWIG
2392 
2403 #define ROC_FAST_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 3 << 55))
2404 #else // SWIG
2405 %constant int64_t ROC_FAST_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 3 << 55));
2406 #endif // !SWIG
2407 
2408 #ifndef SWIG
2409 
2420 #define ROC_STANDARD_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 1 << 55))
2421 #else // SWIG
2422 %constant int64_t ROC_STANDARD_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 1 << 55));
2423 #endif // !SWIG
2424 
2425 #ifndef SWIG
2426 
2437 #define ROC_DEEP_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 4 << 55))
2438 #else // SWIG
2439 %constant int64_t ROC_DEEP_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 4 << 55));
2440 #endif // !SWIG
2441 
2442 #ifndef SWIG
2443 
2454 #define ROC_TATTOO_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 3 << 55))
2455 #else // SWIG
2456 %constant int64_t ROC_TATTOO_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 3 << 55));
2457 #endif // !SWIG
2458 
2459 #ifndef SWIG
2460 
2471 #define ROC_FINGERPRINT_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 4 << 55))
2472 #else // SWIG
2473 %constant int64_t ROC_FINGERPRINT_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 4 << 55));
2474 #endif // !SWIG
2475 
2476 #ifndef SWIG
2477 
2488 #define ROC_OBJECT_COMPATIBILITY_VERSION (((int64_t) 2 << 61) + ((int64_t) 1 << 55))
2489 #else // SWIG
2490 %constant int64_t ROC_OBJECT_COMPATIBILITY_VERSION = (((int64_t) 2 << 61) + ((int64_t) 1 << 55));
2491 #endif // !SWIG
2492 
2493 #ifndef SWIG
2494 
2497 #define ROC_TEMPLATE_VERSION_MASK 0x7F80000000000000
2498 #else // SWIG
2499 %constant int64_t ROC_TEMPLATE_VERSION_MASK = 0x7F80000000000000;
2500 #endif // !SWIG
2501 
2502 #ifndef SWIG
2503 
2506 #define ROC_NO_MIN_QUALITY -FLT_MAX
2507 #else // SWIG
2508 %constant float ROC_NO_MIN_QUALITY = -FLT_MAX;
2509 #endif // !SWIG
2510 
2511 #ifndef SWIG
2512 
2517 #define ROC_TEXT_SUGGESTED_MIN_QUALITY 0.8f
2518 #else // SWIG
2519 %constant float ROC_TEXT_SUGGESTED_MIN_QUALITY = 0.8f;
2520 #endif // !SWIG
2521 
2522 #ifndef SWIG
2523 
2529 #define ROC_TATTOO_SUGGESTED_MIN_QUALITY 0.0f
2530 #else // SWIG
2531 %constant float ROC_TATTOO_SUGGESTED_MIN_QUALITY = 0.0f;
2532 #endif // !SWIG
2533 
2534 #ifndef SWIG
2535 
2541 #define ROC_FINGERPRINT_SUGGESTED_MIN_QUALITY -3.0f
2542 #else // SWIG
2543 %constant float ROC_FINGERPRINT_SUGGESTED_MIN_QUALITY = -3.0f;
2544 #endif // !SWIG
2545 
2546 #ifndef SWIG
2547 
2552 #define ROC_DEEP_SUGGESTED_MIN_QUALITY -0.2f
2553 #else // SWIG
2554 %constant float ROC_DEEP_SUGGESTED_MIN_QUALITY = -0.2f;
2555 #endif // !SWIG
2556 
2557 #ifndef SWIG
2558 
2563 #define ROC_FAST_SUGGESTED_MIN_QUALITY -FLT_MAX
2564 #else // SWIG
2565 %constant float ROC_FAST_SUGGESTED_MIN_QUALITY = -FLT_MAX;
2566 #endif // !SWIG
2567 
2568 #ifndef SWIG
2569 
2575 #define ROC_STANDARD_SUGGESTED_MIN_QUALITY -FLT_MAX
2576 #else // SWIG
2577 %constant float ROC_STANDARD_SUGGESTED_MIN_QUALITY = -FLT_MAX;
2578 #endif // !SWIG
2579 
2600 ROC_EXPORT float roc_get_suggested_quality_threshold(
2601  roc_algorithm_id algorithm_id);
2602 
2675 typedef struct roc_template
2676 {
2694  uint32_t md_size;
2697  uint32_t fv_size;
2698  uint32_t tn_size;
2699  const char *md;
2701  const uint8_t *fv;
2703  const uint8_t *tn;
2705 } roc_template;
2706 
2711 extern const size_t ROC_EXPORT roc_template_header_size;
2712 
2728 ROC_EXPORT roc_error roc_new_template(roc_template *template_,
2729  uint32_t md_size,
2730  uint32_t fv_size,
2731  uint32_t tn_size);
2732 
2747 ROC_EXPORT roc_error roc_new_color_template(roc_template *template_,
2748  const roc_color_selection color_selection,
2749  const char *object_type);
2750 
2770  const roc_color_selection torso_color_selection,
2771  const roc_color_selection thigh_color_selection);
2772 
2783 ROC_EXPORT roc_error roc_free_template(roc_template *template_);
2784 
2803 ROC_EXPORT roc_error roc_copy_template(const roc_template src,
2804  roc_template *dst);
2805 
2826 ROC_EXPORT roc_error roc_flatten(const roc_template template_,
2827  uint8_t *output_byte_array);
2828 
2847 ROC_EXPORT roc_error roc_unflatten(const uint8_t *input_byte_array,
2848  roc_template *template_);
2849 
2867 ROC_EXPORT roc_error roc_flattened_bytes(const roc_template template_,
2868  size_t *bytes);
2869 
2882 ROC_EXPORT void roc_flattened_version(const uint8_t *input_byte_array,
2883  int *major_version,
2884  int *minor_version);
2885 
2895 ROC_EXPORT void *roc_cast(uint8_t *pointer);
2896  // end of template_format
2898 
2907 typedef enum roc_event_reasons
2908 {
2912  ROC_NO_EVENT = 0x0000,
2913 
2920  ROC_NEW_TRACK = 0x0001,
2921 
2927  ROC_NEW_PROBE = 0x0002,
2928 
2935 
2941 
2947 
2954 
2959 
2965  ROC_NEW_CAMERA = 0x0080,
2966 
2973 
2978 
2986 
2994 
3002 
3017 typedef uint32_t roc_event_type;
3018 
3031 ROC_EXPORT roc_error roc_event_type_to_string(roc_event_type event_type,
3032  const char **str);
3033 
3040 ROC_EXPORT roc_error roc_event_type_from_string(const char *str,
3041  roc_event_type *event_type);
3042  // end of tracking
3044 
3195 typedef float roc_similarity;
3196 
3197 #ifndef SWIG
3198 
3204 #define ROC_MAX_SIMILARITY (1.f)
3205 #else // SWIG
3206 %constant float ROC_MAX_SIMILARITY = 1.f;
3207 #endif // !SWIG
3208 
3209 #ifndef SWIG
3210 
3215 #define ROC_MIN_SIMILARITY (0.f)
3216 #else // SWIG
3217 %constant float ROC_MIN_SIMILARITY = 0.f;
3218 #endif // !SWIG
3219 
3220 #ifndef SWIG
3221 
3227 #define ROC_INVALID_SIMILARITY (-1.f)
3228 #else // SWIG
3229 %constant float ROC_INVALID_SIMILARITY = -1.f;
3230 #endif // !SWIG
3231 
3232 #ifndef SWIG
3233 
3238 #define ROC_DEFAULT_SEARCH_THRESHOLD (0.65f)
3239 #else // SWIG
3240 %constant float ROC_DEFAULT_SEARCH_THRESHOLD = 0.65f;
3241 #endif // !SWIG
3242 
3243 #ifndef SWIG
3244 
3249 #define ROC_DEFAULT_VERIFICATION_THRESHOLD (0.55f)
3250 #else // SWIG
3251 %constant float ROC_DEFAULT_VERIFICATION_THRESHOLD = 0.55f;
3252 #endif // !SWIG
3253 
3254 #ifndef SWIG
3255 
3263 #define ROC_CONVENIENT_SPOOF_THRESHOLD (0.45f)
3264 #else // SWIG
3265 %constant float ROC_CONVENIENT_SPOOF_THRESHOLD = 0.45f;
3266 #endif // !SWIG
3267 
3268 #ifndef SWIG
3269 
3276 #define ROC_SECURE_SPOOF_THRESHOLD (0.3f)
3277 #else // SWIG
3278 %constant float ROC_SECURE_SPOOF_THRESHOLD = 0.3f;
3279 #endif // !SWIG
3280 
3292 ROC_EXPORT roc_error roc_fuse(roc_similarity *raw,
3293  size_t n,
3294  roc_similarity *fused);
3295  // end of similarity
3297 
3298 #ifndef SWIGJAVA
3299 
3324 ROC_EXPORT roc_error roc_preinitialize_android(void *JNIEnv, void *jobject);
3325  // end of android
3327 
3328 #endif // !SWIGJAVA
3329 
3370 ROC_EXPORT roc_error roc_get_host_id(roc_string *host_id);
3371 
3383 
3411 typedef void (*roc_progress)(float);
3412  // end of initialization
3414 
3458 {
3463 
3468 
3473 
3478 
3484 
3489 
3494 
3499 
3505 
3511 
3513 
3530 ROC_EXPORT roc_embedded_error
3531 roc_embedded_initialize(const char *license_file);
3532 
3549 ROC_EXPORT roc_embedded_error
3551 
3569 ROC_EXPORT const char *
3571 
3590 ROC_EXPORT roc_embedded_error
3592  size_t min_size,
3593  int k,
3594  float false_detection_rate,
3595  size_t *n,
3596  roc_detection *detections);
3597 
3617 ROC_EXPORT roc_embedded_error
3619  size_t min_size,
3620  int k,
3621  float false_detection_rate,
3622  size_t *n,
3623  roc_detection *detections);
3624 
3668 ROC_EXPORT roc_error roc_landmarks_to_detection(const roc_landmark *right_eye,
3669  const roc_landmark *left_eye,
3670  const roc_landmark *chin,
3671  roc_detection *detection);
3672 
3678 ROC_EXPORT int roc_num_landmarks_for_pose(roc_pose pose);
3679 
3700 ROC_EXPORT roc_embedded_error
3702  roc_detection *detection,
3703  roc_landmark *landmarks,
3704  roc_landmark *right_eye,
3705  roc_landmark *left_eye,
3706  roc_landmark *chin,
3707  float *pitch,
3708  float *yaw);
3709 
3725 ROC_EXPORT roc_embedded_error
3727  roc_landmark right_eye,
3728  roc_landmark left_eye,
3729  roc_landmark chin,
3730  float *spoof);
3731 
3735 typedef struct roc_embedded_gender
3736 {
3737  float female;
3738  float male;
3740 
3745 {
3746  float african;
3747  float east_asian;
3748  float european;
3751  float south_asian;
3754 
3758 typedef struct roc_embedded_emotion
3759 {
3760  float anger;
3761  float disgust;
3762  float fear;
3763  float joy;
3764  float neutral;
3765  float sadness;
3766  float surprise;
3768 
3772 typedef struct roc_embedded_artwork
3773 {
3774  float cartoon;
3775  float human;
3776  float painting;
3778 
3782 typedef struct roc_embedded_glasses
3783 {
3784  float none;
3785  float sun;
3786  float eye;
3788 
3792 typedef struct roc_embedded_mask
3793 {
3794  float mask;
3795  float no_mask;
3797 
3828 ROC_EXPORT roc_embedded_error
3830  roc_detection detection,
3831  roc_landmark right_eye,
3832  roc_landmark left_eye,
3833  roc_landmark chin,
3834  uint8_t *feature_vector,
3835  float *quality,
3836  float *age,
3837  float *facial_hair,
3838  roc_embedded_gender *gender,
3839  roc_embedded_geographic_origin *geographic_origin,
3840  roc_embedded_emotion *emotion,
3841  roc_embedded_artwork *artwork,
3842  roc_embedded_glasses *glasses,
3843  roc_embedded_mask *mask,
3844  float *spoof,
3845  float *gaussianblur);
3846 
3879 ROC_EXPORT roc_embedded_error
3881  roc_detection detection,
3882  roc_landmark right_eye,
3883  roc_landmark left_eye,
3884  roc_landmark chin,
3885  float *unlocked_feature_vector,
3886  float *quality,
3887  float *age,
3888  float *facial_hair,
3889  roc_embedded_gender *gender,
3890  roc_embedded_geographic_origin *geographic_origin,
3891  roc_embedded_emotion *emotion,
3892  roc_embedded_artwork *artwork,
3893  roc_embedded_glasses *glasses,
3894  roc_embedded_mask *mask,
3895  float *spoof,
3896  float *gaussianblur);
3897 
3909 ROC_EXPORT roc_similarity
3910 roc_embedded_compare_templates(const uint8_t *a,
3911  size_t a_size,
3912  const uint8_t *b,
3913  size_t b_size);
3914 
3936 typedef struct roc_embedded_array
3937 {
3940  int size;
3941  char *data;
3943 
3952 ROC_EXPORT void
3954  int element_size);
3955 
3963 ROC_EXPORT roc_embedded_error
3965  const void *element);
3966 
3977 ROC_EXPORT void
3979  int index,
3980  void *element);
3981 
3988 ROC_EXPORT void
3990 
3998 ROC_EXPORT uint32_t
3999 roc_embedded_checksum(const uint8_t *data, const int size);
4000  // end of embedded
4002 
4003 #endif // !SWIG_ROC_VIDEO
4004 
4005 #ifdef __cplusplus
4006 }
4007 #endif
4008 
4009 #endif // ROC_EMBEDDED_H
roc_error roc_swap_channels(roc_image image)
Swap red and blue channels to convert between RGB and BGR color spaces.
#define ROC_FAST_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_FAST_REPRESENTATION.
Definition: roc-embedded.h:2403
float male
See ROC_ANALYTICS.
Definition: roc-embedded.h:3738
roc_error roc_new_template(roc_template *template_, uint32_t md_size, uint32_t fv_size, uint32_t tn_size)
Allocate memory for a new template.
#define ROC_OBJECT_SUGGESTED_FALSE_DETECTION_RATE
Suggested false detection rate for ROC_ALL_OBJECT_DETECTION.
Definition: roc-embedded.h:1438
roc_template_id template_id
Unique identifier for the template.
Definition: roc-embedded.h:2684
The new roc_event::quality is higher.
Definition: roc-embedded.h:2934
roc_error roc_write_ppm(const char *file_name, roc_image image)
Write a PPM or PGM image file.
bool roc_log_no_callback(const char *message)
Write a message to the logging infrastructure previously established by roc_set_logging.
float x
Region of interest horizontal offset (top-left corner).
Definition: roc-embedded.h:836
roc_similarity roc_embedded_compare_templates(const uint8_t *a, size_t a_size, const uint8_t *b, size_t b_size)
Static alternative to roc_compare_templates.
Bypass automatic face detection by using caller-provided bounding boxes.
Definition: roc-embedded.h:1779
#define ROC_TEXT_SUGGESTED_FALSE_DETECTION_RATE
Suggested false detection rate for ROC_TEXT_DETECTION.
Definition: roc-embedded.h:1462
Ignore detections that are partially off-image.
Definition: roc-embedded.h:1796
uint8_t * data
Buffer of pixel intensities.
Definition: roc-embedded.h:813
void roc_free_uuid_array(roc_uuid_array *uuid_array)
Deallocate a roc_uuid_array.
float painting
See ROC_ANALYTICS.
Definition: roc-embedded.h:3776
float middle_eastern
See ROC_ANALYTICS.
Definition: roc-embedded.h:3750
roc_person_id person_id
Unique identifier for the person or roc_uuid_get_null by default.
Definition: roc-embedded.h:2686
Compute ICAO face portrait quality measures.
Definition: roc-embedded.h:1878
Color ID corresponding to violet.
Definition: roc-embedded.h:2135
#define ROC_SUGGESTED_ABSOLUTE_MIN_SIZE
Suggested absolute minimum face size.
Definition: roc-embedded.h:1412
A utility value to indicate all 5 fingers.
Definition: roc-embedded.h:2244
#define ROC_SECURE_SPOOF_THRESHOLD
Spoof threshold for high security deployments.
Definition: roc-embedded.h:3276
roc_error roc_unflatten(const uint8_t *input_byte_array, roc_template *template_)
Deserialize a template from a memory buffer.
A utility value to indicate any of the ten fingers.
Definition: roc-embedded.h:2254
float east_asian
See ROC_ANALYTICS.
Definition: roc-embedded.h:3747
bool roc_roi_within(roc_roi test, roc_roi reference, size_t image_width, size_t image_height, float min_overlap)
Determine if a rectangle is contained within a region of interest.
bool roc_landmark_is_visible(roc_landmark l)
Determine if a landmark is visible.
roc_uuid roc_person_id
Unique identifier for a person, the set of templates for the same identity.
Definition: roc-embedded.h:510
This license file does not support unlocked feature vectors.
Definition: roc-embedded.h:3498
#define ROC_GUN_SUGGESTED_FALSE_DETECTION_RATE
Suggested false detection rate for ROC_GUN_DETECTION.
Definition: roc-embedded.h:1450
roc_error roc_free_template(roc_template *template_)
Call this function on a template after it is no longer needed.
Found a previously unseen person.
Definition: roc-embedded.h:2920
roc_uuid roc_uuid_from_bytes(const uint8_t *input_byte_array, size_t length)
Initialize a roc_uuid from a byte array.
const char * roc_copyright()
Function equivalent of ROC_COPYRIGHT.
roc_uuid roc_uuid_get_null()
Obtain a roc_uuid set to all zeros.
roc_error roc_copy_template(const roc_template src, roc_template *dst)
Deep-copy a template.
roc_error roc_finger_id_from_string(roc_string str, roc_finger_id *finger_id)
The opposite of roc_finger_id_to_string.
roc_uuid * roc_uuid_array
Definition: roc-embedded.h:529
float fear
See ROC_ANALYTICS.
Definition: roc-embedded.h:3762
struct roc_roi roc_roi
Image region of interest to restrict processing.
struct roc_embedded_emotion roc_embedded_emotion
Data structure for emotion estimation.
Detect military vehicles in the image.
Definition: roc-embedded.h:2014
float rotation
Detection rotation (degrees).
Definition: roc-embedded.h:1376
The finger belongs to the subjects right hand. Can be combined with one or more fingers.
Definition: roc-embedded.h:2227
Don't parallelize face representation or search.
Definition: roc-embedded.h:1959
#define ROC_TEMPLATE_VERSION
The format of roc_template::fv changes between most releases, this field is used to check template co...
Definition: roc-embedded.h:2386
The candidate watchlist has changed.
Definition: roc-embedded.h:2972
int32_t image_width
Detection source image width (pixels).
Definition: roc-embedded.h:1387
roc_error roc_from_rgba(const uint8_t *input_byte_array, size_t width, size_t height, size_t step, roc_image *image)
Initialize a roc_image from an ARGB_8888 buffer.
A utility value to indicate either the left or right hands.
Definition: roc-embedded.h:2249
bool roc_roi_is_fractional(roc_roi roi)
Fractional regions of interest are scaled by the image width and height.
float joy
See ROC_ANALYTICS.
Definition: roc-embedded.h:3763
Ignored finger, fingers with this value won't be used.
Definition: roc-embedded.h:2165
struct roc_embedded_artwork roc_embedded_artwork
Data structure for artwork estimation.
Detect tattoos in the image.
Definition: roc-embedded.h:1747
Detect buses in the image.
Definition: roc-embedded.h:1991
#define ROC_FINGERPRINT_SUGGESTED_FALSE_DETECTION_RATE
Suggested false detection rate for ROC_FINGERPRINT_DETECTION.
Definition: roc-embedded.h:1474
roc_error roc_finger_id_to_string(roc_finger_id finger_id, roc_string *str)
String representation of a roc_finger_id.
Color ID corresponding to violet.
Definition: roc-embedded.h:2130
uint8_t data[16]
Internal 128-bit data buffer.
Definition: roc-embedded.h:330
roc_camera_id camera_id
Origin image roc_image::camera_id.
Definition: roc-embedded.h:2689
float x
Detection center horizontal offset (pixels).
Definition: roc-embedded.h:1372
int roc_version_major()
Function equivalent of ROC_VERSION_MAJOR for runtime version checking.
#define ROC_SUGGESTED_RELATIVE_MIN_SIZE
Suggested relative minimum face size.
Definition: roc-embedded.h:1399
float none
See ROC_ANALYTICS.
Definition: roc-embedded.h:3784
roc_error roc_from_bgra(const uint8_t *input_byte_array, size_t width, size_t height, size_t step, roc_image *image)
Initialize a roc_image from a BGRA_8888 buffer.
roc_hash roc_hash_from_bytes(const uint8_t *input_byte_array, size_t length)
Initialize a roc_hash from a byte array.
Detect trucks in the image.
Definition: roc-embedded.h:2029
roc_algorithm_id algorithm_id
The value of roc_algorithm_id passed to roc_represent to construct this template bitwise OR'd with RO...
Definition: roc-embedded.h:2677
uint32_t fv_size
Length of the feature vector fv.
Definition: roc-embedded.h:2697
const size_t roc_template_header_size
Size of the fixed-length portion of a roc_template.
roc_error roc_from_yuv(const uint8_t *y_in, const uint8_t *u_in, const uint8_t *v_in, size_t y_row_stride, size_t uv_row_stride, size_t uv_pixel_stride, size_t width, size_t height, roc_image *image)
Initialize a roc_image from a YUV_420_888 buffer.
float african
See ROC_ANALYTICS.
Definition: roc-embedded.h:3746
The specified amount of time has elapsed since a previous event was emitted.
Definition: roc-embedded.h:3001
roc_error roc_get_host_id(roc_string *host_id)
Retrieve the Host ID of the current machine.
An aligned and cropped face image suitable for displaying.
Definition: roc-embedded.h:1948
roc_landmark right_mouth_corner
Subject's right mouth corner location.
Definition: roc-embedded.h:1382
roc_error roc_read_ppm(const char *file_name, roc_image *image)
Read a PPM or PGM image file.
There are no more events in the queue.
Definition: roc-embedded.h:2912
The subject's left or right middle finger.
Definition: roc-embedded.h:2195
Detect faces from -30 to +30 degrees yaw.
Definition: roc-embedded.h:1739
struct roc_image roc_image
Common representation for still images and video frames.
roc_error roc_event_type_from_string(const char *str, roc_event_type *event_type)
The opposite of roc_event_type_to_string.
This license file can't be used for the Embedded SDK.
Definition: roc-embedded.h:3493
roc_error roc_rotate(roc_image *image, int degrees)
Rotate an image clockwise in intervals of 90 degrees.
roc_error roc_event_type_to_string(roc_event_type event_type, const char **str)
String representation of a roc_event_type.
#define ROC_VERSION_MAJOR
Used to indicate substantial new algorithms that require a license purchase.
Definition: roc-embedded.h:116
roc_landmark chin
Subject's chin location.
Definition: roc-embedded.h:1386
uint32_t roc_embedded_checksum(const uint8_t *data, const int size)
32-bit CRC checksum.
float south_asian
See ROC_ANALYTICS.
Definition: roc-embedded.h:3751
roc_finger_options
Supported fingerprint indices for use in roc_represent_fingerprint.
Definition: roc-embedded.h:2160
Image region of interest to restrict processing.
Definition: roc-embedded.h:834
Color ID corresponding to yellow.
Definition: roc-embedded.h:2115
160-bit data hash.
Definition: roc-embedded.h:550
float roc_similarity
A measurement between two faces quantifying the pseudo-probability that they are the same person.
Definition: roc-embedded.h:3195
roc_error roc_fuse(roc_similarity *raw, size_t n, roc_similarity *fused)
Score-level fusion by computing a max.
#define ROC_OBJECT_FV_SIZE
Length of a ROC_OBJECT_REPRESENTATION feature vector in byte.
Definition: roc-embedded.h:2342
This is the last event reported for a person.
Definition: roc-embedded.h:2985
Add the full set of landmark locations to the template metadata.
Definition: roc-embedded.h:1850
bool operator!=(const roc_hash &other) const
Negation of roc_hash_is_equal.
Definition: roc-embedded.h:570
Detect faces from -100 to +100 degrees yaw with high accuracy.
Definition: roc-embedded.h:1731
#define ROC_STANDARD_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_STANDARD_REPRESENTATION.
Definition: roc-embedded.h:2575
const char * roc_string
Represents a string output value that should be freed with roc_free_string after use.
Definition: roc-embedded.h:1232
#define ROC_NO_MIN_QUALITY
Disable minimum quality threshold.
Definition: roc-embedded.h:2506
An extra finger that is not a thumb, index, middle, ring, or little.
Definition: roc-embedded.h:2221
float eye
See ROC_ANALYTICS.
Definition: roc-embedded.h:3786
struct roc_embedded_glasses roc_embedded_glasses
Data structure for glasses estimation.
3-channel color (BGR order), 8-bit depth.
Definition: roc-embedded.h:757
Both eyes visible.
Definition: roc-embedded.h:1310
int roc_num_landmarks_for_pose(roc_pose pose)
Returns the number of landmarks computed for the specified pose.
#define ROC_TATTOO_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_TATTOO_REPRESENTATION.
Definition: roc-embedded.h:2454
roc_error roc_set_string(const char *src, roc_string *dst)
Set a string value.
roc_error roc_bgr2gray(roc_image src, roc_image *dst)
Convert a color image to grayscale.
roc_pose pose
Definition: roc-embedded.h:1378
Data structure for emotion estimation.
Definition: roc-embedded.h:3758
roc_error roc_new_color_template(roc_template *template_, const roc_color_selection color_selection, const char *object_type)
Construct a new template for color-based searching.
Detect motorcycles in the image.
Definition: roc-embedded.h:2019
The subject's left or right index finger.
Definition: roc-embedded.h:2185
uint32_t roc_pose
See roc_pose_options.
Definition: roc-embedded.h:1331
Expected ROC_GRAY8 image but provided a ROC_BGR24 image, or vice-versa.
Definition: roc-embedded.h:3483
Slower but more accurate alternative to ROC_STANDARD_REPRESENTATION.
Definition: roc-embedded.h:1664
uint32_t roc_event_type
A combination of roc_event_reasons.
Definition: roc-embedded.h:3017
bool operator!=(const roc_uuid &other) const
Definition: roc-embedded.h:345
Data structure for gender estimation.
Definition: roc-embedded.h:3735
#define ROC_FINGERPRINT_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_FINGERPRINT_REPRESENTATION.
Definition: roc-embedded.h:2541
int roc_version_minor()
Function equivalent of ROC_VERSION_MINOR for runtime version checking.
struct roc_template roc_template
A digital encoding of a face.
Detect people in the image.
Definition: roc-embedded.h:2024
void(* roc_log_callback)(const char *)
Pointer to a callback function used to forward roc_log activity.
Definition: roc-embedded.h:253
const char * roc_pose_to_string(roc_pose pose)
A printable roc_pose.
bool operator==(const roc_uuid &other) const
Definition: roc-embedded.h:336
roc_landmark left_eye
Subject's left eye location.
Definition: roc-embedded.h:1380
Add Yaw and Pitch (degrees) estimation to the template metadata.
Definition: roc-embedded.h:1868
float surprise
See ROC_ANALYTICS.
Definition: roc-embedded.h:3766
Detect text in an image.
Definition: roc-embedded.h:1757
bool roc_roi_is_null(roc_roi roi)
true if the area of roi is 0.
const char * roc_error
A printable error string.
Definition: roc-embedded.h:206
roc_embedded_error roc_embedded_detect_faces_accurate(roc_image image, size_t min_size, int k, float false_detection_rate, size_t *n, roc_detection *detections)
Detect faces in an image. This uses a more accurate but slightly slower algorithm compared with roc_e...
#define ROC_INVALID_SIMILARITY
An invalid roc_similarity.
Definition: roc-embedded.h:3227
uint64_t roc_uuid_to_int(roc_uuid uuid)
Obtain an integer value from a roc_uuid.
float confidence
Detection confidence.
Definition: roc-embedded.h:1377
roc_hash roc_hash_get_null()
Obtain a roc_hash set to all zeros.
bool operator<(const roc_hash &other) const
Definition: roc-embedded.h:579
Type-safe default.
Definition: roc-embedded.h:1626
The probe template associated with the event has changed.
Definition: roc-embedded.h:2927
float neutral
See ROC_ANALYTICS.
Definition: roc-embedded.h:3764
float mask
See ROC_ANALYTICS.
Definition: roc-embedded.h:3794
Invalid license.
Definition: roc-embedded.h:3472
roc_embedded_error roc_embedded_detect_faces(roc_image image, size_t min_size, int k, float false_detection_rate, size_t *n, roc_detection *detections)
Detect faces in an image.
The new roc_event::candidate has higher similarity.
Definition: roc-embedded.h:2940
#define ROC_TEXT_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_TEXT_REPRESENTATION.
Definition: roc-embedded.h:2517
roc_pose_options
Coarse face pose.
Definition: roc-embedded.h:1305
roc_error roc_new_person_color_template(roc_template *template_, const roc_color_selection torso_color_selection, const roc_color_selection thigh_color_selection)
Construct a new person template for color-based searching.
#define ROC_DEEP_FV_SIZE
Length of a ROC_DEEP_REPRESENTATION feature vector in bytes.
Definition: roc-embedded.h:2333
roc_error roc_flattened_bytes(const roc_template template_, size_t *bytes)
Calculate the bytes required to flatten a template.
float no_mask
See ROC_ANALYTICS.
Definition: roc-embedded.h:3795
float y
Detection center vertical offset (pixels).
Definition: roc-embedded.h:1373
roc_time timestamp
Timestamp associated with the image, if applicable.
Definition: roc-embedded.h:821
float human
See ROC_ANALYTICS.
Definition: roc-embedded.h:3775
roc_error roc_set_logging(bool stdout_, const char *filename, roc_log_callback callback)
Set application logging.
Compute ICAO uniform background face portrait quality metric.
Definition: roc-embedded.h:1892
roc_hash roc_archive_id
roc_hash_calc_sha1 of the (encoded) recorded output media file.
Definition: roc-embedded.h:711
roc_landmark right_eye
Subject's right eye location.
Definition: roc-embedded.h:1379
roc_error roc_flatten(const roc_template template_, uint8_t *output_byte_array)
Serialize a template to a memory buffer.
Represent objects for comparison.
Definition: roc-embedded.h:1653
roc_detection detection
Face position, see roc_detection.
Definition: roc-embedded.h:2692
#define ROC_FAST_FV_SIZE
Length of a ROC_FAST_REPRESENTATION feature vector in bytes.
Definition: roc-embedded.h:2351
roc_error roc_to_rgba(roc_image src, uint8_t *output_byte_array)
Copy a roc_image to a pre-allocated ARGB_8888 buffer.
Add Spoof metric for static Face Liveness detection.
Definition: roc-embedded.h:1922
#define ROC_NO_TIMESTAMP
Default value for roc_template::timestamp, indicating the template was generated from a still image.
Definition: roc-embedded.h:725
uint8_t roc_finger_id
A single roc_finger_options.
Definition: roc-embedded.h:2152
roc_error roc_landmarks_to_detection(const roc_landmark *right_eye, const roc_landmark *left_eye, const roc_landmark *chin, roc_detection *detection)
Estimate the face detection bounding box and pose from landmarks.
#define ROC_MIN_SIMILARITY
Minimum roc_similarity.
Definition: roc-embedded.h:3215
roc_embedded_error roc_embedded_liveness(roc_image image, roc_landmark right_eye, roc_landmark left_eye, roc_landmark chin, float *spoof)
Compute ROC_SPOOF face liveness metric.
#define ROC_CONVENIENT_SPOOF_THRESHOLD
Default spoof threshold.
Definition: roc-embedded.h:3263
#define ROC_OBJECT_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_OBJECT_REPRESENTATION.
Definition: roc-embedded.h:2488
struct roc_embedded_array roc_embedded_array
A very simple variable-length array implementation.
#define ROC_FINGERPRINT_FV_SIZE
Length of a ROC_FINGERPRINT_REPRESENTATION feature vector in bytes.
Definition: roc-embedded.h:2369
roc_color_space color_space
Interpretation of roc_image::data.
Definition: roc-embedded.h:817
float roc_get_suggested_quality_threshold(roc_algorithm_id algorithm_id)
Returns the suggested quality threshold for roc_represent for the specified representation.
float width
Region of interest width.
Definition: roc-embedded.h:840
Call to malloc failed.
Definition: roc-embedded.h:3477
int size
Number of elements in data.
Definition: roc-embedded.h:3940
const uint8_t * roc_buffer
Represents a buffer output value that should be freed with roc_free_buffer after use.
Definition: roc-embedded.h:1272
const char * roc_embedded_error_to_string(roc_embedded_error error)
Convert an error to a string for messaging.
Detect all objects in an image.
Definition: roc-embedded.h:2048
Represent faces for comparison.
Definition: roc-embedded.h:1636
This event is now obsolete and should be considered part of roc_event::replaced_by.
Definition: roc-embedded.h:2946
bool operator==(const roc_hash &other) const
Definition: roc-embedded.h:561
float cartoon
See ROC_ANALYTICS.
Definition: roc-embedded.h:3774
roc_embedded_error roc_embedded_represent_face_unlocked(roc_image image, roc_detection detection, roc_landmark right_eye, roc_landmark left_eye, roc_landmark chin, float *unlocked_feature_vector, float *quality, float *age, float *facial_hair, roc_embedded_gender *gender, roc_embedded_geographic_origin *geographic_origin, roc_embedded_emotion *emotion, roc_embedded_artwork *artwork, roc_embedded_glasses *glasses, roc_embedded_mask *mask, float *spoof, float *gaussianblur)
Extract an "unlocked" ROC_FAST_REPRESENTATION feature vector from a face detection.
float height
Region of interest height.
Definition: roc-embedded.h:841
Do not return templates for faces classified as Cartoon or Painting by the Artwork estimator.
Definition: roc-embedded.h:1842
float european
See ROC_ANALYTICS.
Definition: roc-embedded.h:3748
Emit an event for every new template.
Definition: roc-embedded.h:3006
A digital encoding of a face.
Definition: roc-embedded.h:2675
size_t width
Column count in pixels.
Definition: roc-embedded.h:814
roc_embedded_error roc_embedded_represent_face(roc_image image, roc_detection detection, roc_landmark right_eye, roc_landmark left_eye, roc_landmark chin, uint8_t *feature_vector, float *quality, float *age, float *facial_hair, roc_embedded_gender *gender, roc_embedded_geographic_origin *geographic_origin, roc_embedded_emotion *emotion, roc_embedded_artwork *artwork, roc_embedded_glasses *glasses, roc_embedded_mask *mask, float *spoof, float *gaussianblur)
Extract a ROC_FAST_REPRESENTATION feature vector from a face detection.
roc_algorithm_options
Supported algorithm configurations for use in roc_represent.
Definition: roc-embedded.h:1618
bool roc_uuid_is_null(roc_uuid uuid)
Check if a roc_uuid is all zeros.
Perform optical character recognition on text in images.
Definition: roc-embedded.h:1715
roc_media_id media_id
See roc_media_id.
Definition: roc-embedded.h:819
float y
Landmark vertical position (pixels).
Definition: roc-embedded.h:1353
128-bit universally unique identifier.
Definition: roc-embedded.h:325
bool roc_log(const char *message)
Write a message to the logging infrastructure previously established by roc_set_logging.
uint64_t roc_time
Time in milliseconds.
Definition: roc-embedded.h:716
int roc_version_patch()
Function equivalent of ROC_VERSION_PATCH for runtime version checking.
uint8_t data[20]
Internal 160-bit data buffer.
Definition: roc-embedded.h:555
See Right vs. Left.
Definition: roc-embedded.h:1320
The function call completed successfully.
Definition: roc-embedded.h:3467
Color ID corresponding to black.
Definition: roc-embedded.h:2100
Color ID corresponding to white.
Definition: roc-embedded.h:2090
roc_camera_id camera_id
See roc_camera_id.
Definition: roc-embedded.h:820
float disgust
See ROC_ANALYTICS.
Definition: roc-embedded.h:3761
Color ID corresponding to blue.
Definition: roc-embedded.h:2125
#define ROC_TATTOO_FV_SIZE
Length of a ROC_TATTOO_REPRESENTATION feature vector in bytes.
Definition: roc-embedded.h:2360
#define ROC_DEFAULT_SEARCH_THRESHOLD
Default search roc_similarity threshold.
Definition: roc-embedded.h:3238
#define ROC_DEEP_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_DEEP_REPRESENTATION.
Definition: roc-embedded.h:2552
roc_error roc_gray2bgr(roc_image src, roc_image *dst)
Expand a grayscale image to color.
int64_t roc_algorithm_id
A combination of roc_algorithm_options.
Definition: roc-embedded.h:1599
Detect fingerprints in the image.
Definition: roc-embedded.h:2064
roc_error roc_copy_image(roc_image src, roc_image *dst)
Deep copy an image.
#define ROC_SUGGESTED_FALSE_DETECTION_RATE
Suggested false detection rate.
Definition: roc-embedded.h:1426
void roc_flattened_version(const uint8_t *input_byte_array, int *major_version, int *minor_version)
Obtain the SDK version of a flattened template.
roc_color_options
Supported colors in ROC_COLOR_REPRESENTATION.
Definition: roc-embedded.h:2080
Detect boats in the image.
Definition: roc-embedded.h:1986
roc_time timestamp
Face video timestamp or ROC_NO_TIMESTAMP by default.
Definition: roc-embedded.h:2682
roc_embedded_error roc_embedded_finalize()
Call once at the end of the application after making all other calls to the API.
Detect license plates in the image.
Definition: roc-embedded.h:2009
Detect guns in the image.
Definition: roc-embedded.h:2004
void * roc_cast(uint8_t *pointer)
Cast and return a uint8_t* as a void*.
roc_error roc_free_buffer(roc_buffer *buffer)
Free a roc_buffer previously returned by another function.
#define ROC_FAST_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_FAST_REPRESENTATION.
Definition: roc-embedded.h:2563
struct roc_detection roc_detection
Data structure for a face detection.
roc_uuid roc_group_id
Unique identifier for a group, the set of people for which membership is the same.
Definition: roc-embedded.h:516
The subject's left or right little finger.
Definition: roc-embedded.h:2215
float height
Detection vertical size (pixels).
Definition: roc-embedded.h:1375
float anger
See ROC_ANALYTICS.
Definition: roc-embedded.h:3760
#define ROC_MAX_SIMILARITY
Maximum roc_similarity.
Definition: roc-embedded.h:3204
See Right vs. Left.
Definition: roc-embedded.h:1315
Detect airplanes in the image.
Definition: roc-embedded.h:1976
roc_event_reasons
Reasons for a roc_event.
Definition: roc-embedded.h:2907
struct roc_landmark roc_landmark
Data structure for a landmark detection.
roc_hash roc_media_id
roc_hash_calc_sha1 of the (encoded) source media file.
Definition: roc-embedded.h:705
#define ROC_VERSION_MINOR
Used to indicate incremental algorithm improvements and API changes.
Definition: roc-embedded.h:124
Color ID corresponding to red.
Definition: roc-embedded.h:2105
The finger belongs to the subjects left hand. Can be combined with one or more fingers.
Definition: roc-embedded.h:2233
Estimate the color(s) of an object.
Definition: roc-embedded.h:1704
The most recent camera has changed.
Definition: roc-embedded.h:2965
void(* roc_progress)(float)
Pointer to a callback function used to report progress on a long running task.
Definition: roc-embedded.h:3411
Detect bicycles in the image.
Definition: roc-embedded.h:1981
Faster but less accurate alternative to ROC_STANDARD_REPRESENTATION.
Definition: roc-embedded.h:1646
Type-safe default.
Definition: roc-embedded.h:2085
void roc_embedded_array_free(roc_embedded_array *array)
Free memory associated with the array.
float sun
See ROC_ANALYTICS.
Definition: roc-embedded.h:3785
bool roc_uuid_is_less_than(roc_uuid a, roc_uuid b)
Compare two UUIDs for order.
roc_error roc_enhance_contrast(const roc_image src, float clip_limit, int num_tiles, roc_image *dst)
Image contrast enhancement.
roc_hash roc_hash_from_uuid(roc_uuid uuid)
Obtain a hash from a UUID.
bool operator<(const roc_uuid &other) const
Definition: roc-embedded.h:354
roc_embedded_error roc_embedded_array_append(roc_embedded_array *array, const void *element)
Append an element to the end of the array.
Data structure for glasses estimation.
Definition: roc-embedded.h:3782
roc_error roc_preinitialize_android(void *JNIEnv, void *jobject)
Inform the ROC SDK about the Java calling environment.
struct roc_embedded_mask roc_embedded_mask
Data structure for mask estimation.
roc_error roc_new_image(size_t width, size_t height, size_t step, roc_color_space color_space, roc_media_id media_id, roc_camera_id camera_id, roc_time timestamp, const uint8_t *input_byte_array, roc_image *image)
Construct a new image.
bool roc_hash_is_equal(roc_hash a, roc_hash b)
Compare two hashes for equality.
roc_error roc_algorithm_option_to_string(roc_algorithm_options algorithm_option, const char **str)
String representation of a roc_algorithm_options.
Color ID corresponding to brown/tan.
Definition: roc-embedded.h:2140
struct roc_uuid roc_uuid
128-bit universally unique identifier.
roc_error roc_free_string(roc_string *str)
Free a roc_string previously returned by another function.
roc_error roc_free_image(roc_image image)
Frees the memory previously allocated for a roc_image.
size_t height
Row count in pixels.
Definition: roc-embedded.h:815
uint32_t md_size
Length of metadata buffer md. This value is greater than or equal to strlen+1 of md.
Definition: roc-embedded.h:2694
Represent fingerprints for comparison.
Definition: roc-embedded.h:1722
#define ROC_STANDARD_FV_SIZE
Length of a ROC_STANDARD_REPRESENTATION feature vector in bytes.
Definition: roc-embedded.h:2324
float female
See ROC_ANALYTICS.
Definition: roc-embedded.h:3737
roc_uuid roc_uuid_from_int(uint64_t val)
Obtain a roc_uuid from an integer value.
Represent a law enforcement booking-style scar/mark/tattoo (SMT) image.
Definition: roc-embedded.h:1686
#define ROC_DEFAULT_VERIFICATION_THRESHOLD
Default verification roc_similarity threshold.
Definition: roc-embedded.h:3249
Data structure for geographic origin estimation.
Definition: roc-embedded.h:3744
Data structure for mask estimation.
Definition: roc-embedded.h:3792
roc_embedded_error
Embedded function return value error codes.
Definition: roc-embedded.h:3457
The specified amount of time has passed since the person was first observed.
Definition: roc-embedded.h:2993
#define ROC_STANDARD_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_STANDARD_REPRESENTATION.
Definition: roc-embedded.h:2420
The event has a later end time.
Definition: roc-embedded.h:2958
roc_error roc_is_hardware_compatible()
Compare the system hardware against the SDK requirements.
struct roc_hash roc_hash
160-bit data hash.
struct roc_embedded_geographic_origin roc_embedded_geographic_origin
Data structure for geographic origin estimation.
Color ID corresponding to grey.
Definition: roc-embedded.h:2095
The subject's left or right ring finger.
Definition: roc-embedded.h:2205
roc_color_space
Supported image formats.
Definition: roc-embedded.h:747
const char * roc_version_string()
Function equivalent of ROC_VERSION_STRING for runtime version checking.
roc_landmark nose
Subject's nose location.
Definition: roc-embedded.h:1381
Color ID corresponding to orange.
Definition: roc-embedded.h:2110
roc_landmark left_mouth_corner
Subject's left mouth corner location.
Definition: roc-embedded.h:1384
bool roc_hash_is_null(roc_hash hash)
Check if a roc_hash is all zeros.
If face detection fails, normalize the image using roc_enhance_contrast and re-attempt face detection...
Definition: roc-embedded.h:1788
roc_uuid roc_hash_to_uuid(roc_hash hash)
Convert from a roc_hash to a roc_uuid.
char * data
Buffer containing size elements.
Definition: roc-embedded.h:3941
roc_uuid_array roc_person_id_array
A dynamically allocated array of roc_person_id.
Definition: roc-embedded.h:536
void roc_ensure(roc_error error)
A simple log-and-exit error handling function.
bool roc_hash_is_less_than(roc_hash a, roc_hash b)
Compare two hashes for order.
roc_error roc_check_template_version(roc_algorithm_id algorithm_id)
Return an error if the specified roc_algorithm_id is incompatible with this version of the SDK.
Number of coarse pose bins.
Definition: roc-embedded.h:1325
float width
Detection horizontal size (pixels).
Definition: roc-embedded.h:1374
The event has an earlier start time.
Definition: roc-embedded.h:2953
int64_t roc_color_selection
A combination of roc_color_options.
Definition: roc-embedded.h:2146
roc_archive_id archive_id
Output image/video, if any.
Definition: roc-embedded.h:2691
1-channel grayscale, 8-bit depth.
Definition: roc-embedded.h:752
Attempted to use Snapdragon acceleration without first calling roc_enable_snpe.
Definition: roc-embedded.h:3504
#define ROC_DEEP_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_DEEP_REPRESENTATION.
Definition: roc-embedded.h:2437
roc_media_id media_id
Origin image roc_image::media_id.
Definition: roc-embedded.h:2688
Filter non-compliant text results.
Definition: roc-embedded.h:1970
Data structure for a face detection.
Definition: roc-embedded.h:1370
The subject's left or right thumb.
Definition: roc-embedded.h:2175
bool roc_roi_within_set(roc_roi test, const roc_roi *include, size_t num_include, const roc_roi *exclude, size_t num_exclude, size_t image_width, size_t image_height, float min_overlap)
Determine if a rectangle satisfies the sets of include and exclude regions of interest.
const char * md
Null-terminated JSON string, or NULL if empty.
Definition: roc-embedded.h:2699
int32_t image_height
Detection source image height (pixels).
Definition: roc-embedded.h:1388
roc_embedded_error roc_embedded_initialize(const char *license_file)
Call once at the start of the application before making any other calls to the API.
roc_roi roc_roi_get(float x, float y, float width, float height)
Construct a roc_roi.
float latin_american
See ROC_ANALYTICS.
Definition: roc-embedded.h:3749
const uint8_t * fv
Feature Vector of length fv_size, or NULL if empty.
Definition: roc-embedded.h:2701
roc_error roc_algorithm_option_from_string(const char *str, roc_algorithm_options *algorithm_option)
The opposite of roc_algorithm_option_to_string.
A very simple variable-length array implementation.
Definition: roc-embedded.h:3936
#define ROC_FINGERPRINT_COMPATIBILITY_VERSION
Minimum compatible version for templates generated with ROC_FINGERPRINT_REPRESENTATION.
Definition: roc-embedded.h:2471
Color ID corresponding to green.
Definition: roc-embedded.h:2120
void roc_embedded_array_get(roc_embedded_array array, int index, void *element)
Retrieve an element from the array.
Detect cars in the image.
Definition: roc-embedded.h:1996
Data structure for artwork estimation.
Definition: roc-embedded.h:3772
float southeast_asian
See ROC_ANALYTICS.
Definition: roc-embedded.h:3752
The function call is not supported on this platform.
Definition: roc-embedded.h:3462
void roc_embedded_array_initialize(roc_embedded_array *array, int element_size)
Initialize a roc_array for use by informing it of the element size it will contain.
float x
Landmark horizontal position (pixels).
Definition: roc-embedded.h:1352
roc_embedded_error roc_embedded_landmark_face(roc_image image, roc_detection *detection, roc_landmark *landmarks, roc_landmark *right_eye, roc_landmark *left_eye, roc_landmark *chin, float *pitch, float *yaw)
Landmark a face detection.
Estimate age, emotion, gaussian blur, geographic origin, gender, glasses, facial hair,...
Definition: roc-embedded.h:1827
Error reading the license file.
Definition: roc-embedded.h:3488
size_t step
Bytes per row, including padding.
Definition: roc-embedded.h:816
int element_size
sizeof of each element in data.
Definition: roc-embedded.h:3938
A utility value to indicate the 4 non-thumb fingers.
Definition: roc-embedded.h:2238
unsigned int qHash(const roc_uuid &a)
For Qt qHash interoperability.
Definition: roc-embedded.h:377
#define ROC_TATTOO_SUGGESTED_MIN_QUALITY
Suggested minimum quality threshold for ROC_TATTOO_REPRESENTATION.
Definition: roc-embedded.h:2529
roc_uuid roc_camera_id
Unique identifier for a camera.
Definition: roc-embedded.h:522
Common representation for still images and video frames.
Definition: roc-embedded.h:811
float y
Region of interest vertical offset (top-left corner).
Definition: roc-embedded.h:838
uint32_t tn_size
Length of face thumbnail tn.
Definition: roc-embedded.h:2698
const uint8_t * tn
JPEG-encoded ROC_THUMBNAIL of length tn_size, or NULL if empty.
Definition: roc-embedded.h:2703
roc_uuid roc_template_id
Unique identifier for a template.
Definition: roc-embedded.h:504
#define ROC_TEMPLATE_VERSION_MASK
See ROC_TEMPLATE_VERSION.
Definition: roc-embedded.h:2497
roc_error roc_adaptive_minimum_size(size_t image_width, size_t image_height, float relative_min_size, size_t absolute_min_size, size_t *adaptive_min_size)
A method for determining the minimum face detection size as a fraction of the image size.
float sadness
See ROC_ANALYTICS.
Definition: roc-embedded.h:3765
Additional templates associated with an existing track.
Definition: roc-embedded.h:2977
Encountered internal error while attempting to use Snapdragon acceleration.
Definition: roc-embedded.h:3510
struct roc_embedded_gender roc_embedded_gender
Data structure for gender estimation.
Data structure for a landmark detection.
Definition: roc-embedded.h:1350
bool roc_uuid_is_equal(roc_uuid a, roc_uuid b)
Compare two UUIDs for equality.