|
20 | mtmn
21 |
22 | |
23 |
47 | 1.8.11
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/latex/structmtmn__net__t.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structmtmn__net__t}{}\section{mtmn\+\_\+net\+\_\+t Struct Reference}
2 | \label{structmtmn__net__t}\index{mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}}
3 |
4 |
5 | {\ttfamily \#include $<$mtmn.\+h$>$}
6 |
7 | \subsection*{Data Fields}
8 | \begin{DoxyCompactItemize}
9 | \item
10 | dl\+\_\+matrix3d\+\_\+t $\ast$ \hyperlink{structmtmn__net__t_a1d3531c1210c49940c846cd600b6d2f8}{category}
11 | \item
12 | dl\+\_\+matrix3d\+\_\+t $\ast$ \hyperlink{structmtmn__net__t_a0903a36fc3368901a05211a31007653b}{offset}
13 | \item
14 | dl\+\_\+matrix3d\+\_\+t $\ast$ \hyperlink{structmtmn__net__t_a47e72642944e5a6a519942b74c540aec}{landmark}
15 | \end{DoxyCompactItemize}
16 |
17 |
18 | \subsection{Field Documentation}
19 | \index{mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}!category@{category}}
20 | \index{category@{category}!mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}}
21 | \subsubsection[{\texorpdfstring{category}{category}}]{\setlength{\rightskip}{0pt plus 5cm}dl\+\_\+matrix3d\+\_\+t$\ast$ category}\hypertarget{structmtmn__net__t_a1d3531c1210c49940c846cd600b6d2f8}{}\label{structmtmn__net__t_a1d3531c1210c49940c846cd600b6d2f8}
22 | \index{mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}!landmark@{landmark}}
23 | \index{landmark@{landmark}!mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}}
24 | \subsubsection[{\texorpdfstring{landmark}{landmark}}]{\setlength{\rightskip}{0pt plus 5cm}dl\+\_\+matrix3d\+\_\+t$\ast$ landmark}\hypertarget{structmtmn__net__t_a47e72642944e5a6a519942b74c540aec}{}\label{structmtmn__net__t_a47e72642944e5a6a519942b74c540aec}
25 | \index{mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}!offset@{offset}}
26 | \index{offset@{offset}!mtmn\+\_\+net\+\_\+t@{mtmn\+\_\+net\+\_\+t}}
27 | \subsubsection[{\texorpdfstring{offset}{offset}}]{\setlength{\rightskip}{0pt plus 5cm}dl\+\_\+matrix3d\+\_\+t$\ast$ offset}\hypertarget{structmtmn__net__t_a0903a36fc3368901a05211a31007653b}{}\label{structmtmn__net__t_a0903a36fc3368901a05211a31007653b}
28 |
29 |
30 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
31 | \item
32 | /home/yehangyang/\+Documents/\+Gitlab/others/esp-\/face/face\+\_\+detection/mtmn/include/\hyperlink{mtmn_8h}{mtmn.\+h}\end{DoxyCompactItemize}
33 |
--------------------------------------------------------------------------------
/components/esp-face/lib/include/dl_lib_coefgetter_if.h:
--------------------------------------------------------------------------------
1 | #ifndef DL_LIB_COEFGETTER_IF_H
2 | #define DL_LIB_COEFGETTER_IF_H
3 |
4 | #include "dl_lib_matrix.h"
5 | #include "dl_lib_matrixq.h"
6 | #include "dl_lib_matrix3d.h"
7 | #include "dl_lib_matrix3dq.h"
8 |
9 | //Set this if the coefficient requested is a batch-normalization popvar matrix which needs to be preprocessed by
10 | //dl_batch_normalize_get_sqrtvar first.
11 | #define COEF_GETTER_HINT_BNVAR (1<<0)
12 |
13 | /*
14 | This struct describes the basic information of model data:
15 | word_num: the number of wake words or speech commands
16 | word_list: the name list of wake words or speech commands
17 | thres_list: the threshold list of wake words or speech commands
18 | info_str: the string used to reflect the version and information of model data
19 | which consist of the architecture of network, the version of model data, wake words and their threshold
20 | */
21 | typedef struct {
22 | int word_num;
23 | char **word_list;
24 | int *win_list;
25 | float *thresh_list;
26 | char *info_str;
27 | } model_info_t;
28 |
29 | /*
30 | This struct describes a generic coefficient getter: a way to get the constant coefficients needed for a neural network.
31 | For the two getters, the name describes the name of the coefficient matrix, usually the same as the Numpy filename the
32 | coefficient was originally stored in. The arg argument can be used to optionally pass an additional user-defined argument
33 | to the getter (e.g. the directory to look for files in the case of the Numpy file loader getter). The hint argument
34 | is a bitwise OR of the COEF_GETTER_HINT_* flags or 0 when none is needed. Use the free_f/free_q functions to release the
35 | memory for the returned matrices, when applicable.
36 | */
37 | typedef struct {
38 | const dl_matrix2d_t* (*getter_f)(const char *name, void *arg, int hint);
39 | const dl_matrix2dq_t* (*getter_q)(const char *name, void *arg, int hint);
40 | const dl_matrix3d_t* (*getter_3d)(const char *name, void *arg, int hint);
41 | const dl_matrix3dq_t* (*getter_3dq)(const char *name, void *arg, int hint);
42 | void (*free_f)(const dl_matrix2d_t *m);
43 | void (*free_q)(const dl_matrix2dq_t *m);
44 | const model_info_t* (*getter_info)(void *arg);
45 | } model_coeff_getter_t;
46 |
47 | #endif
48 |
--------------------------------------------------------------------------------
/components/esp32-camera/driver/sccb.c:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the OpenMV project.
3 | * Copyright (c) 2013/2014 Ibrahim Abdelkader |
20 | mtmn
21 |
22 | |
23 |
63 | 1.8.11
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/components/esp-face/face_detection/include/fd_forward.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ESPRESSIF MIT License
3 | *
4 | * Copyright (c) 2018 |
20 | mtmn
21 |
22 | |
23 |
63 | 1.8.11
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/sdkconfig.defaults:
--------------------------------------------------------------------------------
1 |
2 | CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB1"
3 | CONFIG_ESPTOOLPY_BAUD_115200B=
4 | CONFIG_ESPTOOLPY_BAUD_230400B=
5 | CONFIG_ESPTOOLPY_BAUD_921600B=y
6 | CONFIG_ESPTOOLPY_BAUD_2MB=
7 | CONFIG_ESPTOOLPY_BAUD_OTHER=
8 | CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
9 | CONFIG_ESPTOOLPY_BAUD=921600
10 | CONFIG_ESPTOOLPY_COMPRESSED=y
11 | CONFIG_FLASHMODE_QIO=y
12 | CONFIG_FLASHMODE_QOUT=
13 | CONFIG_FLASHMODE_DIO=
14 | CONFIG_FLASHMODE_DOUT=
15 | CONFIG_ESPTOOLPY_FLASHMODE="dio"
16 | CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
17 | CONFIG_ESPTOOLPY_FLASHFREQ_40M=
18 | CONFIG_ESPTOOLPY_FLASHFREQ_26M=
19 | CONFIG_ESPTOOLPY_FLASHFREQ_20M=
20 | CONFIG_ESPTOOLPY_FLASHFREQ="80m"
21 | CONFIG_ESPTOOLPY_FLASHSIZE_1MB=
22 | CONFIG_ESPTOOLPY_FLASHSIZE_2MB=
23 | CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
24 | CONFIG_ESPTOOLPY_FLASHSIZE_8MB=
25 | CONFIG_ESPTOOLPY_FLASHSIZE_16MB=
26 | CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
27 | CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
28 | CONFIG_ESPTOOLPY_BEFORE_RESET=y
29 | CONFIG_ESPTOOLPY_BEFORE_NORESET=
30 | CONFIG_ESPTOOLPY_BEFORE="default_reset"
31 | CONFIG_ESPTOOLPY_AFTER_RESET=y
32 | CONFIG_ESPTOOLPY_AFTER_NORESET=
33 | CONFIG_ESPTOOLPY_AFTER="hard_reset"
34 | CONFIG_MONITOR_BAUD_9600B=
35 | CONFIG_MONITOR_BAUD_57600B=
36 | CONFIG_MONITOR_BAUD_115200B=y
37 | CONFIG_MONITOR_BAUD_230400B=
38 | CONFIG_MONITOR_BAUD_921600B=
39 | CONFIG_MONITOR_BAUD_2MB=
40 | CONFIG_MONITOR_BAUD_OTHER=
41 | CONFIG_MONITOR_BAUD_OTHER_VAL=115200
42 | CONFIG_MONITOR_BAUD=115200
43 |
44 | #
45 | # Partition Table
46 | #
47 | CONFIG_PARTITION_TABLE_SINGLE_APP=
48 | CONFIG_PARTITION_TABLE_TWO_OTA=
49 | CONFIG_PARTITION_TABLE_CUSTOM=y
50 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
51 | CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
52 | CONFIG_PARTITION_TABLE_OFFSET=0x8000
53 | CONFIG_PARTITION_TABLE_MD5=y
54 | #
55 | # Camera configuration
56 | #
57 | CONFIG_ENABLE_TEST_PATTERN=
58 | CONFIG_OV2640_SUPPORT=y
59 | CONFIG_OV7725_SUPPORT=
60 |
61 | #
62 | # ESP32-specific
63 | #
64 | CONFIG_ESP32_DEFAULT_CPU_FREQ_80=
65 | CONFIG_ESP32_DEFAULT_CPU_FREQ_160=
66 | CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
67 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
68 | CONFIG_SPIRAM_SUPPORT=y
69 |
70 | #
71 | # SPI RAM config
72 | #
73 | CONFIG_SPIRAM_BOOT_INIT=y
74 | CONFIG_SPIRAM_IGNORE_NOTFOUND=
75 | CONFIG_SPIRAM_USE_MEMMAP=
76 | CONFIG_SPIRAM_USE_CAPS_ALLOC=y
77 | CONFIG_SPIRAM_USE_MALLOC=
78 | CONFIG_SPIRAM_TYPE_AUTO=y
79 | CONFIG_SPIRAM_TYPE_ESPPSRAM32=
80 | CONFIG_SPIRAM_TYPE_ESPPSRAM64=
81 | CONFIG_SPIRAM_SIZE=-1
82 | CONFIG_SPIRAM_SPEED_40M=
83 | CONFIG_SPIRAM_SPEED_80M=y
84 | CONFIG_SPIRAM_MEMTEST=y
85 | CONFIG_SPIRAM_CACHE_WORKAROUND=y
86 | CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
87 | CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
88 | CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST=
89 | CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=
90 |
91 | CONFIG_TASK_WDT=
92 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/globals_eval.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
69 | 1.8.11
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/dir_f92cccad4fdd005aca3e808d97427089.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
54 | Directories | |
| directory | mtmn |
63 | 1.8.11
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/annotated.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
| Cmtmn_net_t | |
| Cnet_config_t |
60 | 1.8.11
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/globals_func.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
72 | 1.8.11
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/dir_b1c38619a7f75ea3a62b0ffb4d1217b3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
54 | Directories | |
| directory | include |
63 | 1.8.11
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/classes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
64 | 1.8.11
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/latex/face__detection__forward_8h.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{face__detection__forward_8h}{}\section{/home/yehangyang/\+Documents/\+Gitlab/others/esp-\/face/face\+\_\+detection/mtmn/include/face\+\_\+detection\+\_\+forward.h File Reference}
2 | \label{face__detection__forward_8h}\index{/home/yehangyang/\+Documents/\+Gitlab/others/esp-\/face/face\+\_\+detection/mtmn/include/face\+\_\+detection\+\_\+forward.\+h@{/home/yehangyang/\+Documents/\+Gitlab/others/esp-\/face/face\+\_\+detection/mtmn/include/face\+\_\+detection\+\_\+forward.\+h}}
3 | {\ttfamily \#include \char`\"{}image\+\_\+util.\+h\char`\"{}}\\*
4 | {\ttfamily \#include \char`\"{}dl\+\_\+lib.\+h\char`\"{}}\\*
5 | Include dependency graph for face\+\_\+detection\+\_\+forward.\+h\+:\nopagebreak
6 | \begin{figure}[H]
7 | \begin{center}
8 | \leavevmode
9 | \includegraphics[width=232pt]{face__detection__forward_8h__incl}
10 | \end{center}
11 | \end{figure}
12 | \subsection*{Macros}
13 | \begin{DoxyCompactItemize}
14 | \item
15 | \#define \hyperlink{face__detection__forward_8h_a20978e37cee4ae0da7b405df9fd15b7d}{M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON}~1
16 | \end{DoxyCompactItemize}
17 | \subsection*{Functions}
18 | \begin{DoxyCompactItemize}
19 | \item
20 | box\+\_\+array\+\_\+t $\ast$ \hyperlink{face__detection__forward_8h_a38284a9b843c9c6162f17c72f0d3fa5d}{face\+\_\+detect} (dl\+\_\+matrix3du\+\_\+t $\ast$image\+\_\+matrix)
21 | \begin{DoxyCompactList}\small\item\em Do M\+T\+MN face detection, return box and landmark infomation. \end{DoxyCompactList}\end{DoxyCompactItemize}
22 |
23 |
24 | \subsection{Macro Definition Documentation}
25 | \index{face\+\_\+detection\+\_\+forward.\+h@{face\+\_\+detection\+\_\+forward.\+h}!M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON@{M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON}}
26 | \index{M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON@{M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON}!face\+\_\+detection\+\_\+forward.\+h@{face\+\_\+detection\+\_\+forward.\+h}}
27 | \subsubsection[{\texorpdfstring{M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON}{MAX_DETECTION}}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+A\+X\+\_\+\+D\+E\+T\+E\+C\+T\+I\+ON~1}\hypertarget{face__detection__forward_8h_a20978e37cee4ae0da7b405df9fd15b7d}{}\label{face__detection__forward_8h_a20978e37cee4ae0da7b405df9fd15b7d}
28 |
29 |
30 | \subsection{Function Documentation}
31 | \index{face\+\_\+detection\+\_\+forward.\+h@{face\+\_\+detection\+\_\+forward.\+h}!face\+\_\+detect@{face\+\_\+detect}}
32 | \index{face\+\_\+detect@{face\+\_\+detect}!face\+\_\+detection\+\_\+forward.\+h@{face\+\_\+detection\+\_\+forward.\+h}}
33 | \subsubsection[{\texorpdfstring{face\+\_\+detect(dl\+\_\+matrix3du\+\_\+t $\ast$image\+\_\+matrix)}{face_detect(dl_matrix3du_t *image_matrix)}}]{\setlength{\rightskip}{0pt plus 5cm}box\+\_\+array\+\_\+t$\ast$ face\+\_\+detect (
34 | \begin{DoxyParamCaption}
35 | \item[{dl\+\_\+matrix3du\+\_\+t $\ast$}]{image\+\_\+matrix}
36 | \end{DoxyParamCaption}
37 | )}\hypertarget{face__detection__forward_8h_a38284a9b843c9c6162f17c72f0d3fa5d}{}\label{face__detection__forward_8h_a38284a9b843c9c6162f17c72f0d3fa5d}
38 |
39 |
40 | Do M\+T\+MN face detection, return box and landmark infomation.
41 |
42 |
43 | \begin{DoxyParams}{Parameters}
44 | {\em image\+\_\+matrix} & Image matrix, rgb888 format \\
45 | \hline
46 | \end{DoxyParams}
47 | \begin{DoxyReturn}{Returns}
48 | box\+\_\+array\+\_\+t$\ast$ A list of boxes and score.
49 | \end{DoxyReturn}
50 |
--------------------------------------------------------------------------------
/main/app_camera.c:
--------------------------------------------------------------------------------
1 | /* ESPRESSIF MIT License
2 | *
3 | * Copyright (c) 2018 |
20 | mtmn
21 |
22 | |
23 |
54 | Files | |
| file | face_detection_forward.h [code] |
| file | mtmn.h [code] |
65 | 1.8.11
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/functions_vars.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
85 | 1.8.11
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/functions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
85 | 1.8.11
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/latex/structnet__config__t.tex:
--------------------------------------------------------------------------------
1 | \hypertarget{structnet__config__t}{}\section{net\+\_\+config\+\_\+t Struct Reference}
2 | \label{structnet__config__t}\index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
3 |
4 |
5 | {\ttfamily \#include $<$mtmn.\+h$>$}
6 |
7 | \subsection*{Data Fields}
8 | \begin{DoxyCompactItemize}
9 | \item
10 | \hyperlink{mtmn_8h_a9eb3d74ee60112199ec78344b3a4655e}{net\+\_\+type\+\_\+en} \hyperlink{structnet__config__t_a8f4c2af8911d60345894c9b1cd728a81}{net\+\_\+type}
11 | \item
12 | char $\ast$ \hyperlink{structnet__config__t_a8505c513bc640d1f69e5f76fb32b24a8}{file\+\_\+name}
13 | \item
14 | int \hyperlink{structnet__config__t_aac374e320caaadeca4874add33b62af2}{w}
15 | \item
16 | int \hyperlink{structnet__config__t_a16611451551e3d15916bae723c3f59f7}{h}
17 | \item
18 | float \hyperlink{structnet__config__t_ace479cfe5e33dac6639cf88d0551b58c}{score\+\_\+threshold}
19 | \item
20 | float \hyperlink{structnet__config__t_a363bfab5175aae09f069a69ff5072f2c}{nms\+\_\+threshold}
21 | \end{DoxyCompactItemize}
22 |
23 |
24 | \subsection{Field Documentation}
25 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!file\+\_\+name@{file\+\_\+name}}
26 | \index{file\+\_\+name@{file\+\_\+name}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
27 | \subsubsection[{\texorpdfstring{file\+\_\+name}{file_name}}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ file\+\_\+name}\hypertarget{structnet__config__t_a8505c513bc640d1f69e5f76fb32b24a8}{}\label{structnet__config__t_a8505c513bc640d1f69e5f76fb32b24a8}
28 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!h@{h}}
29 | \index{h@{h}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
30 | \subsubsection[{\texorpdfstring{h}{h}}]{\setlength{\rightskip}{0pt plus 5cm}int h}\hypertarget{structnet__config__t_a16611451551e3d15916bae723c3f59f7}{}\label{structnet__config__t_a16611451551e3d15916bae723c3f59f7}
31 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!net\+\_\+type@{net\+\_\+type}}
32 | \index{net\+\_\+type@{net\+\_\+type}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
33 | \subsubsection[{\texorpdfstring{net\+\_\+type}{net_type}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf net\+\_\+type\+\_\+en} net\+\_\+type}\hypertarget{structnet__config__t_a8f4c2af8911d60345894c9b1cd728a81}{}\label{structnet__config__t_a8f4c2af8911d60345894c9b1cd728a81}
34 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!nms\+\_\+threshold@{nms\+\_\+threshold}}
35 | \index{nms\+\_\+threshold@{nms\+\_\+threshold}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
36 | \subsubsection[{\texorpdfstring{nms\+\_\+threshold}{nms_threshold}}]{\setlength{\rightskip}{0pt plus 5cm}float nms\+\_\+threshold}\hypertarget{structnet__config__t_a363bfab5175aae09f069a69ff5072f2c}{}\label{structnet__config__t_a363bfab5175aae09f069a69ff5072f2c}
37 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!score\+\_\+threshold@{score\+\_\+threshold}}
38 | \index{score\+\_\+threshold@{score\+\_\+threshold}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
39 | \subsubsection[{\texorpdfstring{score\+\_\+threshold}{score_threshold}}]{\setlength{\rightskip}{0pt plus 5cm}float score\+\_\+threshold}\hypertarget{structnet__config__t_ace479cfe5e33dac6639cf88d0551b58c}{}\label{structnet__config__t_ace479cfe5e33dac6639cf88d0551b58c}
40 | \index{net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}!w@{w}}
41 | \index{w@{w}!net\+\_\+config\+\_\+t@{net\+\_\+config\+\_\+t}}
42 | \subsubsection[{\texorpdfstring{w}{w}}]{\setlength{\rightskip}{0pt plus 5cm}int w}\hypertarget{structnet__config__t_aac374e320caaadeca4874add33b62af2}{}\label{structnet__config__t_aac374e320caaadeca4874add33b62af2}
43 |
44 |
45 | The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
46 | \item
47 | /home/yehangyang/\+Documents/\+Gitlab/others/esp-\/face/face\+\_\+detection/mtmn/include/\hyperlink{mtmn_8h}{mtmn.\+h}\end{DoxyCompactItemize}
48 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/globals.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
20 | mtmn
21 |
22 | |
23 |
87 | 1.8.11
88 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/components/esp-face/face_recognition/include/fr_forward.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #if __cplusplus
4 | extern "C"
5 | {
6 | #endif
7 |
8 | #include "image_util.h"
9 | #include "dl_lib.h"
10 | #include "frmn.h"
11 |
12 | #define FACE_WIDTH 56
13 | #define FACE_HEIGHT 56
14 | #define FACE_ID_SIZE 512
15 | #define FACE_REC_THRESHOLD 0.5
16 |
17 | #define LEFT_EYE_X 0
18 | #define LEFT_EYE_Y 1
19 | #define RIGHT_EYE_X 6
20 | #define RIGHT_EYE_Y 7
21 | #define NOSE_X 4
22 | #define NOSE_Y 5
23 |
24 | #define EYE_DIST_SET 16.5f
25 | #define NOSE_EYE_RATIO_THRES_MIN 0.49f
26 | #define NOSE_EYE_RATIO_THRES_MAX 2.04f
27 |
28 | #define FLASH_INFO_FLAG 12138
29 | #define FLASH_PARTITION_NAME "fr"
30 |
31 | /**
32 | * @brief HTTP Client events data
33 | */
34 | typedef struct
35 | {
36 | uint8_t head; /*!< head index of the id list */
37 | uint8_t tail; /*!< tail index of the id list */
38 | uint8_t count; /*!< number of enrolled ids */
39 | uint8_t size; /*!< max len of id list */
40 | uint8_t confirm_times; /*!< images needed for one enrolling */
41 | dl_matrix3d_t **id_list; /*!< stores face id vectors */
42 | } face_id_list;
43 |
44 |
45 | /**
46 | * @brief Initialize face id list
47 | *
48 | * @param l Face id list
49 | * @param size Size of list, one list contains one vector
50 | * @param confirm_times Enroll times for one id
51 | * @return dl_matrix3du_t* Size: 1xFACE_WIDTHxFACE_HEIGHTx3
52 | */
53 | void face_id_init(face_id_list *l, uint8_t size, uint8_t confirm_times);
54 |
55 | /**
56 | * @brief Alloc memory for aligned face.
57 | *
58 | * @return dl_matrix3du_t* Size: 1xFACE_WIDTHxFACE_HEIGHTx3
59 | */
60 | dl_matrix3du_t *aligned_face_alloc();
61 |
62 | /**
63 | * @brief Align detected face to average face according to landmark
64 | *
65 | * @param onet_boxes Output of MTMN with box and landmark
66 | * @param src Image matrix, rgb888 format
67 | * @param dest Output image
68 | * @return ESP_OK Input face is good for recognition
69 | * @return ESP_FAIL Input face is not good for recognition
70 | */
71 | int8_t align_face(box_array_t *onet_boxes,
72 | dl_matrix3du_t *src,
73 | dl_matrix3du_t *dest);
74 |
75 | /**
76 | * @brief Add src_id to dest_id
77 | *
78 | * @param dest_id
79 | * @param src_id
80 | */
81 | void add_face_id(dl_matrix3d_t *dest_id,
82 | dl_matrix3d_t *src_id);
83 |
84 | /**
85 | * @brief Match face with the id_list, and return matched_id.
86 | *
87 | * @param algined_face An aligned face
88 | * @param id_list An ID list
89 | * @return int8_t Matched face id
90 | */
91 | int8_t recognize_face(face_id_list *l,
92 | dl_matrix3du_t *algined_face);
93 |
94 | /**
95 | * @brief Produce face id according to the input aligned face, and save it to dest_id.
96 | *
97 | * @param l face id list
98 | * @param aligned_face An aligned face
99 | * @param enroll_confirm_times Confirm times for each face id enrollment
100 | * @return -1 Wrong input enroll_confirm_times
101 | * @return 0 Enrollment finish
102 | * @return >=1 The left piece of aligned faces should be input
103 | */
104 | int8_t enroll_face(face_id_list *l,
105 | dl_matrix3du_t *aligned_face);
106 |
107 | /**
108 | * @brief Alloc memory for aligned face.
109 | *
110 | * @param l face id list
111 | * @return uint8_t left count
112 | */
113 | uint8_t delete_face(face_id_list *l);
114 | #if __cplusplus
115 | }
116 | #endif
117 |
--------------------------------------------------------------------------------
/components/esp32-camera/conversions/esp_jpg_decode.c:
--------------------------------------------------------------------------------
1 | // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 | #include "esp_jpg_decode.h"
15 | #include "rom/tjpgd.h"
16 |
17 | #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG)
18 | #include "esp32-hal-log.h"
19 | #define TAG ""
20 | #else
21 | #include "esp_log.h"
22 | static const char* TAG = "esp_jpg_decode";
23 | #endif
24 |
25 | typedef struct {
26 | jpg_scale_t scale;
27 | jpg_reader_cb reader;
28 | jpg_writer_cb writer;
29 | void * arg;
30 | size_t len;
31 | size_t index;
32 | } esp_jpg_decoder_t;
33 |
34 | static const char * jd_errors[] = {
35 | "Succeeded",
36 | "Interrupted by output function",
37 | "Device error or wrong termination of input stream",
38 | "Insufficient memory pool for the image",
39 | "Insufficient stream input buffer",
40 | "Parameter error",
41 | "Data format error",
42 | "Right format but not supported",
43 | "Not supported JPEG standard"
44 | };
45 |
46 | static uint32_t _jpg_write(JDEC *decoder, void *bitmap, JRECT *rect)
47 | {
48 | uint16_t x = rect->left;
49 | uint16_t y = rect->top;
50 | uint16_t w = rect->right + 1 - x;
51 | uint16_t h = rect->bottom + 1 - y;
52 | uint8_t *data = (uint8_t *)bitmap;
53 |
54 | esp_jpg_decoder_t * jpeg = (esp_jpg_decoder_t *)decoder->device;
55 |
56 | if (jpeg->writer) {
57 | return jpeg->writer(jpeg->arg, x, y, w, h, data);
58 | }
59 | return 0;
60 | }
61 |
62 | static uint32_t _jpg_read(JDEC *decoder, uint8_t *buf, uint32_t len)
63 | {
64 | esp_jpg_decoder_t * jpeg = (esp_jpg_decoder_t *)decoder->device;
65 | if (jpeg->len && len > (jpeg->len - jpeg->index)) {
66 | len = jpeg->len - jpeg->index;
67 | }
68 | if (len) {
69 | len = jpeg->reader(jpeg->arg, jpeg->index, buf, len);
70 | if (!len) {
71 | ESP_LOGE(TAG, "Read Fail at %u/%u", jpeg->index, jpeg->len);
72 | }
73 | jpeg->index += len;
74 | }
75 | return len;
76 | }
77 |
78 | esp_err_t esp_jpg_decode(size_t len, jpg_scale_t scale, jpg_reader_cb reader, jpg_writer_cb writer, void * arg)
79 | {
80 | static uint8_t work[3100];
81 | JDEC decoder;
82 | esp_jpg_decoder_t jpeg;
83 |
84 | jpeg.len = len;
85 | jpeg.reader = reader;
86 | jpeg.writer = writer;
87 | jpeg.arg = arg;
88 | jpeg.scale = scale;
89 | jpeg.index = 0;
90 |
91 | JRESULT jres = jd_prepare(&decoder, _jpg_read, work, 3100, &jpeg);
92 | if(jres != JDR_OK){
93 | ESP_LOGE(TAG, "JPG Header Parse Failed! %s", jd_errors[jres]);
94 | return ESP_FAIL;
95 | }
96 |
97 | uint16_t output_width = decoder.width / (1 << (uint8_t)(jpeg.scale));
98 | uint16_t output_height = decoder.height / (1 << (uint8_t)(jpeg.scale));
99 |
100 | //output start
101 | writer(arg, 0, 0, output_width, output_height, NULL);
102 | //output write
103 | jres = jd_decomp(&decoder, _jpg_write, (uint8_t)jpeg.scale);
104 | //output end
105 | writer(arg, output_width, output_height, output_width, output_height, NULL);
106 |
107 | if (jres != JDR_OK) {
108 | ESP_LOGE(TAG, "JPG Decompression Failed! %s", jd_errors[jres]);
109 | return ESP_FAIL;
110 | }
111 | //check if all data has been consumed.
112 | if (len && jpeg.index < len) {
113 | _jpg_read(&decoder, NULL, len - jpeg.index);
114 | }
115 |
116 | return ESP_OK;
117 | }
118 |
119 |
--------------------------------------------------------------------------------
/components/esp-face/lib/include/mtmn.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ESPRESSIF MIT License
3 | *
4 | * Copyright (c) 2018 |
20 | mtmn
21 |
22 | |
23 |
| ▼ face_detection | |
| ▼ mtmn | |
| ▼ include | |
| face_detection_forward.h | |
| mtmn.h |
62 | 1.8.11
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/components/esp-face/face_recognition/fr_flash.c:
--------------------------------------------------------------------------------
1 | #include |
20 | mtmn
21 |
22 | |
23 |
#include <mtmn.h>
55 | Data Fields | |
| dl_matrix3d_t * | category |
| dl_matrix3d_t * | offset |
| dl_matrix3d_t * | landmark |
| dl_matrix3d_t* category | 70 |
| dl_matrix3d_t* landmark | 82 |
| dl_matrix3d_t* offset | 94 |
108 | 1.8.11
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/components/esp32-camera/conversions/include/img_converters.h:
--------------------------------------------------------------------------------
1 | // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 | #ifndef _IMG_CONVERTERS_H_
15 | #define _IMG_CONVERTERS_H_
16 |
17 | #ifdef __cplusplus
18 | extern "C" {
19 | #endif
20 |
21 | #include |
20 | mtmn
21 |
22 | |
23 |
#include "image_util.h"#include "dl_lib.h"
Go to the source code of this file.
64 |66 | Macros | |
| #define | MAX_DETECTION 1 |
71 | Functions | |
| box_array_t * | face_detect (dl_matrix3du_t *image_matrix) |
| Do MTMN face detection, return box and landmark infomation. More... | |
| #define MAX_DETECTION 1 | 83 |
| box_array_t* face_detect | 96 |( | 97 |dl_matrix3du_t * | 98 |image_matrix | ) | 99 |100 | |
Do MTMN face detection, return box and landmark infomation.
105 || image_matrix | Image matrix, rgb888 format |
120 | 1.8.11
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/components/esp-face/docs/en/api-reference/mtmn/html/index.hhk:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |