2
2
< html lang ="en ">
3
3
< head >
4
4
< meta charset ="utf-8 ">
5
- < meta name ="viewport " content ="width=device-width, initial-scale=1, minimum-scale=1 " / >
6
- < meta name ="generator " content ="pdoc 0.10.0 " / >
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1, minimum-scale=1 ">
6
+ < meta name ="generator " content ="pdoc3 0.11.1 " >
7
7
< title > facetorch.analyzer.detector.core API documentation</ title >
8
- < meta name ="description " content ="" / >
9
- < link rel ="preload stylesheet " as =" style " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11 .0.1 /sanitize.min.css " integrity ="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs = " crossorigin >
10
- < link rel ="preload stylesheet " as =" style " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11 .0.1 /typography.min.css " integrity ="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg = " crossorigin >
11
- < link rel ="stylesheet preload " as =" style " href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1 /styles/github.min.css " crossorigin >
12
- < style > : root {--highlight-color : # fe9 }.flex {display : flex !important }body {line-height : 1.5em }# content {padding : 20px }# sidebar {padding : 30px ;overflow : hidden}# sidebar > * : last-child {margin-bottom : 2cm }# lunr-search {width : 100% ;font-size : 1em ;padding : 6px 9px 5px 9px ;border : 1px solid silver}.http-server-breadcrumbs {font-size : 130% ;margin : 0 0 15px 0 }# footer {font-size : .75em ;padding : 5px 30px ;border-top : 1px solid # ddd ;text-align : right}# footer p {margin : 0 0 0 1em ;display : inline-block}# footer p : last-child {margin-right : 30px }h1 , h2 , h3 , h4 , h5 {font-weight : 300 }h1 {font-size : 2.5em ;line-height : 1.1em }h2 {font-size : 1.75em ;margin : 1em 0 .50em 0 }h3 {font-size : 1.4em ;margin : 25px 0 10px 0 }h4 {margin : 0 ;font-size : 105% }h1 : target , h2 : target , h3 : target , h4 : target , h5 : target , h6 : target {background : var (--highlight-color );padding : .2em 0 }a {color : # 058 ;text-decoration : none;transition : color .3s ease-in-out}a : hover {color : # e82 }.title code {font-weight : bold}h2 [id ^= "header-" ]{margin-top : 2em }.ident {color : # 900 }pre code {background : # f8f8f8 ;font-size : .8em ;line-height : 1.4em }code {background : # f2f2f1 ;padding : 1px 4px ;overflow-wrap : break-word}h1 code {background : transparent}pre {background : # f8f8f8 ;border : 0 ;border-top : 1px solid # ccc ;border-bottom : 1px solid # ccc ;margin : 1em 0 ;padding : 1ex }# http-server-module-list {display : flex;flex-flow : column}# http-server-module-list div {display : flex}# http-server-module-list dt {min-width : 10% }# http-server-module-list p {margin-top : 0 }.toc ul , # index {list-style-type : none;margin : 0 ;padding : 0 }# index code {background : transparent}# index h3 {border-bottom : 1px solid # ddd }# index ul {padding : 0 }# index h4 {margin-top : .6em ;font-weight : bold}@media (min-width : 200ex ){# index .two-column {column-count : 2 }}@media (min-width : 300ex ){# index .two-column {column-count : 3 }}dl {margin-bottom : 2em }dl dl : last-child {margin-bottom : 4em }dd {margin : 0 0 1em 3em }# header-classes + dl > dd {margin-bottom : 3em }dd dd {margin-left : 2em }dd p {margin : 10px 0 }.name {background : # eee ;font-weight : bold;font-size : .85em ;padding : 5px 10px ;display : inline-block;min-width : 40% }.name : hover {background : # e0e0e0 }dt : target .name {background : var (--highlight-color )}.name > span : first-child {white-space : nowrap}.name .class > span : nth-child (2 ){margin-left : .4em }.inherited {color : # 999 ;border-left : 5px solid # eee ;padding-left : 1em }.inheritance em {font-style : normal;font-weight : bold}.desc h2 {font-weight : 400 ;font-size : 1.25em }.desc h3 {font-size : 1em }.desc dt code {background : inherit}.source summary , .git-link-div {color : # 666 ;text-align : right;font-weight : 400 ;font-size : .8em ;text-transform : uppercase}.source summary > * {white-space : nowrap;cursor : pointer}.git-link {color : inherit;margin-left : 1em }.source pre {max-height : 500px ;overflow : auto;margin : 0 }.source pre code {font-size : 12px ;overflow : visible}.hlist {list-style : none}.hlist li {display : inline}.hlist li : after {content : ',\2002' }.hlist li : last-child : after {content : none}.hlist .hlist {display : inline;padding-left : 1em }img {max-width : 100% }td {padding : 0 .5em }.admonition {padding : .1em .5em ;margin-bottom : 1em }.admonition-title {font-weight : bold}.admonition .note , .admonition .info , .admonition .important {background : # aef }.admonition .todo , .admonition .versionadded , .admonition .tip , .admonition .hint {background : # dfd }.admonition .warning , .admonition .versionchanged , .admonition .deprecated {background : # fd4 }.admonition .error , .admonition .danger , .admonition .caution {background : lightpink}</ style >
13
- < style media ="screen and (min-width: 700px) "> @media screen and (min-width : 700px ){# sidebar {width : 30% ;height : 100vh ;overflow : auto;position : sticky;top : 0 }# content {width : 70% ;max-width : 100ch ;padding : 3em 4em ;border-left : 1px solid # ddd }pre code {font-size : 1em }.item . name {font-size : 1em }main {display : flex;flex-direction : row-reverse;justify-content : flex-end}.toc ul ul , # index ul {padding-left : 1.5 em }.toc > ul > li {margin-top : .5em }}</ style >
8
+ < meta name ="description " content ="">
9
+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13 .0.0 /sanitize.min.css " integrity ="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA= = " crossorigin >
10
+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13 .0.0 /typography.min.css " integrity ="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA= = " crossorigin >
11
+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0 /styles/github.min.css " crossorigin >
12
+ < style > : root {--highlight-color : # fe9 }.flex {display : flex !important }body {line-height : 1.5em }# content {padding : 20px }# sidebar {padding : 1.5em ;overflow : hidden}# sidebar > * : last-child {margin-bottom : 2cm }# lunr-search {width : 100% ;font-size : 1em ;padding : 6px 9px 5px 9px ;border : 1px solid silver}.http-server-breadcrumbs {font-size : 130% ;margin : 0 0 15px 0 }# footer {font-size : .75em ;padding : 5px 30px ;border-top : 1px solid # ddd ;text-align : right}# footer p {margin : 0 0 0 1em ;display : inline-block}# footer p : last-child {margin-right : 30px }h1 , h2 , h3 , h4 , h5 {font-weight : 300 }h1 {font-size : 2.5em ;line-height : 1.1em }h2 {font-size : 1.75em ;margin : 2em 0 .50em 0 }h3 {font-size : 1.4em ;margin : 1.6em 0 .7em 0 }h4 {margin : 0 ;font-size : 105% }h1 : target , h2 : target , h3 : target , h4 : target , h5 : target , h6 : target {background : var (--highlight-color );padding : .2em 0 }a {color : # 058 ;text-decoration : none;transition : color .2s ease-in-out}a : visited {color : # 503 }a : hover {color : # b62 }.title code {font-weight : bold}h2 [id ^= "header-" ]{margin-top : 2em }.ident {color : # 900 ;font-weight : bold}pre code {font-size : .8em ;line-height : 1.4em ;padding : 1em ;display : block}code {background : # f3f3f3 ;font-family : "DejaVu Sans Mono" , monospace;padding : 1px 4px ;overflow-wrap : break-word}h1 code {background : transparent}pre {border-top : 1px solid # ccc ;border-bottom : 1px solid # ccc ;margin : 1em 0 }# http-server-module-list {display : flex;flex-flow : column}# http-server-module-list div {display : flex}# http-server-module-list dt {min-width : 10% }# http-server-module-list p {margin-top : 0 }.toc ul , # index {list-style-type : none;margin : 0 ;padding : 0 }# index code {background : transparent}# index h3 {border-bottom : 1px solid # ddd }# index ul {padding : 0 }# index h4 {margin-top : .6em ;font-weight : bold}@media (min-width : 200ex ){# index .two-column {column-count : 2 }}@media (min-width : 300ex ){# index .two-column {column-count : 3 }}dl {margin-bottom : 2em }dl dl : last-child {margin-bottom : 4em }dd {margin : 0 0 1em 3em }# header-classes + dl > dd {margin-bottom : 3em }dd dd {margin-left : 2em }dd p {margin : 10px 0 }.name {background : # eee ;font-size : .85em ;padding : 5px 10px ;display : inline-block;min-width : 40% }.name : hover {background : # e0e0e0 }dt : target .name {background : var (--highlight-color )}.name > span : first-child {white-space : nowrap}.name .class > span : nth-child (2 ){margin-left : .4em }.inherited {color : # 999 ;border-left : 5px solid # eee ;padding-left : 1em }.inheritance em {font-style : normal;font-weight : bold}.desc h2 {font-weight : 400 ;font-size : 1.25em }.desc h3 {font-size : 1em }.desc dt code {background : inherit}.source summary , .git-link-div {color : # 666 ;text-align : right;font-weight : 400 ;font-size : .8em ;text-transform : uppercase}.source summary > * {white-space : nowrap;cursor : pointer}.git-link {color : inherit;margin-left : 1em }.source pre {max-height : 500px ;overflow : auto;margin : 0 }.source pre code {font-size : 12px ;overflow : visible}.hlist {list-style : none}.hlist li {display : inline}.hlist li : after {content : ',\2002' }.hlist li : last-child : after {content : none}.hlist .hlist {display : inline;padding-left : 1em }img {max-width : 100% }td {padding : 0 .5em }.admonition {padding : .1em 1em ;margin-bottom : 1em }.admonition-title {font-weight : bold}.admonition .note , .admonition .info , .admonition .important {background : # aef }.admonition .todo , .admonition .versionadded , .admonition .tip , .admonition .hint {background : # dfd }.admonition .warning , .admonition .versionchanged , .admonition .deprecated {background : # fd4 }.admonition .error , .admonition .danger , .admonition .caution {background : lightpink}</ style >
13
+ < style media ="screen and (min-width: 700px) "> @media screen and (min-width : 700px ){# sidebar {width : 30% ;height : 100vh ;overflow : auto;position : sticky;top : 0 }# content {width : 70% ;max-width : 100ch ;padding : 3em 4em ;border-left : 1px solid # ddd }pre code {font-size : 1em }.name {font-size : 1em }main {display : flex;flex-direction : row-reverse;justify-content : flex-end}.toc ul ul , # index ul ul {padding-left : 1 em }.toc > ul > li {margin-top : .5em }}</ style >
14
14
< style media ="print "> @media print{# sidebar h1 {page-break-before : always}.source {display : none}}@media print{* {background : transparent !important ;color : # 000 !important ;box-shadow : none !important ;text-shadow : none !important }a [href ]: after {content : " (" attr (href) ")" ;font-size : 90% }a [href ][title ]: after {content : none}abbr [title ]: after {content : " (" attr (title) ")" }.ir a : after , a [href ^= "javascript:" ]: after , a [href ^= "#" ]: after {content : "" }pre , blockquote {border : 1px solid # 999 ;page-break-inside : avoid}thead {display : table-header-group}tr , img {page-break-inside : avoid}img {max-width : 100% !important }@page {margin : 0.5cm }p , h2 , h3 {orphans : 3 ;widows : 3 }h1 , h2 , h3 , h4 , h5 , h6 {page-break-after : avoid}}</ style >
15
- < script defer src ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js " integrity ="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8= " crossorigin > </ script >
16
- < script > window . addEventListener ( 'DOMContentLoaded' , ( ) => hljs . initHighlighting ( ) ) </ script >
15
+ < script defer src ="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js " integrity ="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ== " crossorigin > </ script >
16
+ < script > window . addEventListener ( 'DOMContentLoaded' , ( ) => {
17
+ hljs . configure ( { languages : [ 'bash' , 'css' , 'diff' , 'graphql' , 'ini' , 'javascript' , 'json' , 'plaintext' , 'python' , 'python-repl' , 'rust' , 'shell' , 'sql' , 'typescript' , 'xml' , 'yaml' ] } ) ;
18
+ hljs . highlightAll ( ) ;
19
+ } ) </ script >
17
20
</ head >
18
21
< body >
19
22
< main >
22
25
< h1 class ="title "> Module < code > facetorch.analyzer.detector.core</ code > </ h1 >
23
26
</ header >
24
27
< section id ="section-intro ">
25
- < details class ="source ">
26
- < summary >
27
- < span > Expand source code</ span >
28
- </ summary >
29
- < pre > < code class ="python "> import torch
30
- from codetiming import Timer
31
- from facetorch.base import BaseDownloader, BaseModel
32
- from facetorch.datastruct import ImageData
33
- from facetorch.logger import LoggerJsonFile
34
-
35
- from .post import BaseDetPostProcessor
36
- from .pre import BaseDetPreProcessor
37
-
38
- logger = LoggerJsonFile().logger
39
-
40
-
41
- class FaceDetector(BaseModel):
42
- @Timer(
43
- "FaceDetector.__init__", "{name}: {milliseconds:.2f} ms", logger=logger.debug
44
- )
45
- def __init__(
46
- self,
47
- downloader: BaseDownloader,
48
- device: torch.device,
49
- preprocessor: BaseDetPreProcessor,
50
- postprocessor: BaseDetPostProcessor,
51
- **kwargs
52
- ):
53
- """FaceDetector is a wrapper around a neural network model that is trained to detect faces.
54
-
55
- Args:
56
- downloader (BaseDownloader): Downloader that downloads the model.
57
- device (torch.device): Torch device cpu or cuda for the model.
58
- preprocessor (BaseDetPreProcessor): Preprocessor that runs before the model.
59
- postprocessor (BaseDetPostProcessor): Postprocessor that runs after the model.
60
- """
61
- self.__dict__.update(kwargs)
62
- super().__init__(downloader, device)
63
-
64
- self.preprocessor = preprocessor
65
- self.postprocessor = postprocessor
66
-
67
- @Timer("FaceDetector.run", "{name}: {milliseconds:.2f} ms", logger=logger.debug)
68
- def run(self, data: ImageData) -> ImageData:
69
- """Detect all faces in the image.
70
-
71
- Args:
72
- ImageData: ImageData object containing the image tensor with values between 0 - 255 and shape (batch_size, channels, height, width).
73
-
74
- Returns:
75
- ImageData: Image data object with Detection tensors and detected Face objects.
76
- """
77
- data = self.preprocessor.run(data)
78
- logits = self.inference(data.tensor)
79
- data = self.postprocessor.run(data, logits)
80
-
81
- return data</ code > </ pre >
82
- </ details >
83
28
</ section >
84
29
< section >
85
30
</ section >
@@ -174,26 +119,6 @@ <h2 id="returns">Returns</h2>
174
119
< dt > < code > ImageData</ code > </ dt >
175
120
< dd > Image data object with Detection tensors and detected Face objects.</ dd >
176
121
</ dl > </ div >
177
- < details class ="source ">
178
- < summary >
179
- < span > Expand source code</ span >
180
- </ summary >
181
- < pre > < code class ="python "> @Timer("FaceDetector.run", "{name}: {milliseconds:.2f} ms", logger=logger.debug)
182
- def run(self, data: ImageData) -> ImageData:
183
- """Detect all faces in the image.
184
-
185
- Args:
186
- ImageData: ImageData object containing the image tensor with values between 0 - 255 and shape (batch_size, channels, height, width).
187
-
188
- Returns:
189
- ImageData: Image data object with Detection tensors and detected Face objects.
190
- """
191
- data = self.preprocessor.run(data)
192
- logits = self.inference(data.tensor)
193
- data = self.postprocessor.run(data, logits)
194
-
195
- return data</ code > </ pre >
196
- </ details >
197
122
</ dd >
198
123
</ dl >
199
124
< h3 > Inherited members</ h3 >
@@ -256,7 +181,6 @@ <h3>Inherited members</h3>
256
181
} ) . setContent ( '<iframe src="' + url + '"></iframe>' ) . open ( ) ;
257
182
}
258
183
</ script >
259
- < h1 > Index</ h1 >
260
184
< div class ="toc ">
261
185
< ul > </ ul >
262
186
</ div >
@@ -280,7 +204,7 @@ <h4><code><a title="facetorch.analyzer.detector.core.FaceDetector" href="#faceto
280
204
</ nav >
281
205
</ main >
282
206
< footer id ="footer ">
283
- < p > Generated by < a href ="https://pdoc3.github.io/pdoc " title ="pdoc: Python API documentation generator "> < cite > pdoc</ cite > 0.10.0 </ a > .</ p >
207
+ < p > Generated by < a href ="https://pdoc3.github.io/pdoc " title ="pdoc: Python API documentation generator "> < cite > pdoc</ cite > 0.11.1 </ a > .</ p >
284
208
</ footer >
285
209
</ body >
286
- </ html >
210
+ </ html >
0 commit comments