1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < script src ="face-api.js "> </ script >
5
+ < script src ="axios.min.js "> </ script >
6
+ < script src ="commons.js "> </ script >
7
+ < link rel ="stylesheet " href ="styles.css ">
8
+ < link rel ="stylesheet " href ="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.css ">
9
+ < script type ="text/javascript " src ="https://code.jquery.com/jquery-2.1.1.min.js "> </ script >
10
+ < script src ="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js "> </ script >
11
+ </ head >
12
+ < body >
13
+ < div class ="center-content page-container ">
14
+ < div id ="navbar "> </ div >
15
+
16
+ < div >
17
+ < div class ="progress " id ="loader ">
18
+ < div class ="indeterminate "> </ div >
19
+ </ div >
20
+ < div class ="row side-by-side ">
21
+ < div class ="center-content ">
22
+ < div id ="faceContainer "> </ div >
23
+ < div id ="selectList "> </ div >
24
+ </ div >
25
+ </ div >
26
+ </ div >
27
+ </ div >
28
+
29
+ < script >
30
+ let net
31
+
32
+ async function onSelectionChanged ( uri ) {
33
+ const imgBuf = await fetchImage ( uri )
34
+ const img = await faceapi . bufferToImage ( imgBuf )
35
+ const canvas = faceapi . createCanvasFromMedia ( img )
36
+ $ ( '#faceContainer' ) . empty ( )
37
+ $ ( '#faceContainer' ) . append ( canvas )
38
+
39
+ const landmarks = await net . detectLandmarks ( canvas )
40
+ faceapi . drawLandmarks ( canvas , landmarks , { lineWidth : 4 } )
41
+ }
42
+
43
+ async function run ( ) {
44
+ net = await initFaceLandmarkNet ( )
45
+ $ ( '#loader' ) . hide ( )
46
+ await onSelectionChanged ( $ ( '#selectList select' ) . val ( ) )
47
+ }
48
+
49
+ $ ( document ) . ready ( function ( ) {
50
+ renderNavBar ( '#navbar' , 'face_landmarks' )
51
+ renderFaceImageSelectList (
52
+ '#selectList' ,
53
+ onSelectionChanged ,
54
+ { className : 'sheldon' , imageIdx : 1 }
55
+ )
56
+ run ( )
57
+ } )
58
+
59
+ </ script >
60
+
61
+ </ body >
62
+ </ html >
0 commit comments