11324物聯網系統設計應用 Week14 學習日誌
任課老師:王曉璿
學 生:林品彤
學 號:ADT110143
一、課程摘要
1.
線上機器學習模型+Javascript設計應用
2.
設計人員辨識系統:以3人 以上為一組,製作人員辨識系統
3.
Google AppSheet 基本設計與應用
二、課程網路資源
Teachable Machine:https://teachablemachine.withgoogle.com/
三、課程重要指令語法摘要
參考模型中Javascript
網頁程式
<div>Teachable Machine Image Model</div>
<button
type="button" onclick="init()">Start</button>
<div
id="webcam-container"></div>
<div
id="label-container"></div>
<script
src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/@teachablemachine/image@latest/dist/teachablemachine-image.min.js"></script>
<script
type="text/javascript">
// More API
functions here:
//
https://github.com/googlecreativelab/teachablemachine-community/tree/master/libraries/image
// the link to
your model provided by Teachable Machine export panel
const URL =
"https://teachablemachine.withgoogle.com/models/Apd4rBQ9o/";
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"));
}
}
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
const prediction = await model.predict(webcam.canvas);
for (let i = 0; i < maxPredictions; i++) {
const classPrediction
=
prediction[i].className + ": " +
prediction[i].probability.toFixed(2);
labelContainer.childNodes[i].innerHTML
= classPrediction;
}
}
</script>
四、學習心得
一下子下次上課就是大學的最後一堂了,這學期學了很多新的AI軟體,多接觸了很多不同的工具,很期待把這些知識帶到研究所的課程裡!