-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.html
84 lines (74 loc) · 3.41 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>강아지 고양이 분류기</h1>
<button type="button" onclick="init()">모델 읽어오기</button>
<button type="button" onclick="predict()">예측</button>
<input type="file" name="" id="inputimg" onchange="preview()">
<img alt="" id="animalimg" style="width: 100px; height: 100px;">
<div id="webcam-container"></div>
<div id="label-container"></div>
</body>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]/dist/tf.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@teachablemachine/[email protected]/dist/teachablemachine-image.min.js"></script>
<script type="text/javascript">
// More API functions here:
// https://github.com/googlecreativelab/teachablemachine-community/tree/master/libraries/image
//미리보기 이미지 출력하기
function preview() {
var imgfile = document.getElementById("inputimg")
var url = window.URL.createObjectURL(imgfile.files[0])
var imgdom = document.getElementById("animalimg")
imgdom.src = url
}
// the link to your model provided by Teachable Machine export panel
const URL = "https://teachablemachine.withgoogle.com/models/Ghi6IBAoz/";
let model, webcam, labelContainer, maxPredictions;
// Load the image model and setup the webcam
async function init() {
const modelURL = URL + "model.json";
const metadataURL = URL + "metadata.json";
// load the model and metadata
// Refer to tmImage.loadFromFiles() in the API to support files from a file picker
// or files from your local hard drive
// Note: the pose library adds "tmImage" object to your window (window.tmImage)
model = await tmImage.load(modelURL, metadataURL);
maxPredictions = model.getTotalClasses();
// Convenience function to setup a webcam
// const flip = true; // whether to flip the webcam
// webcam = new tmImage.Webcam(200, 200, flip); // width, height, flip
// await webcam.setup(); // request access to the webcam
// await webcam.play();
// window.requestAnimationFrame(loop);
// append elements to the DOM
// document.getElementById("webcam-container").appendChild(webcam.canvas);
labelContainer = document.getElementById("label-container");
for (let i = 0; i < maxPredictions; i++) { // and class labels
labelContainer.appendChild(document.createElement("div"));
}
alert("로딩완료")
}
// async function loop() {
// webcam.update(); // update the webcam frame
// await predict();
// window.requestAnimationFrame(loop);
// }
// run the webcam image through the image model
async function predict() {
// predict can take in an image, video or canvas html element
var imgdom = document.getElementById("animalimg")
// const prediction = await model.predict(webcam.canvas);
const prediction = await model.predict(imgdom);
for (let i = 0; i < maxPredictions; i++) {
const classPrediction =
prediction[i].className + ": " + prediction[i].probability.toFixed(2);
labelContainer.childNodes[i].innerHTML = classPrediction;
}
}
</script>
</html>