芝麻web文件管理V1.00
编辑当前文件:/home/paymbalq/demo.tamela.org/js/cardio-scripts-v4.js
let model, webcam, labelContainer, maxPredictions; // Load the image model and setup the webcam async function init(page_id) { var URL = ""; var modelURL = ""; var metadataURL = ""; if (page_id == "dip") { // Diagnostic-plane AI model URL = "https://teachablemachine.withgoogle.com/models/t_ORkivOo/"; modelURL = URL + "model.json"; metadataURL = URL + "metadata.json"; console.log("metadataURL1: ", metadataURL); } if (page_id == "feo") { // Fetus-orientation AI model URL = "https://teachablemachine.withgoogle.com/models/nWJTm0yUR/"; modelURL = URL + "model.json"; metadataURL = URL + "metadata.json"; console.log("metadataURL2: ", metadataURL); } if (page_id == "fea") { // Fetus-anatomy AI model URL = "https://teachablemachine.withgoogle.com/models/BWfhgioKP/"; modelURL = URL + "model.json"; metadataURL = URL + "metadata.json"; console.log("metadataURL3: ", metadataURL); } document.getElementById("modal-display").style.display = "inline-flex"; model = await tmImage.load(modelURL, metadataURL); maxPredictions = model.getTotalClasses(); var isMobile = false; //initiate as false // device detection if ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test( navigator.userAgent ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( navigator.userAgent.substr(0, 4) ) ) { isMobile = true; // Convenience function to setup a webcam const flip = false; // whether to flip the webcam webcam = new tmImage.Webcam(250, 250, flip); // width, height, flip await webcam.setup({ facingMode: "environment" }); // request access to the webcam await webcam.play(); window.requestAnimationFrame(loop); } else { // Convenience function to setup a webcam const flip = false; // whether to flip the webcam webcam = new tmImage.Webcam(250, 250, flip); // width, height, flip await webcam.setup(); // request access to the webcam await webcam.play(); window.requestAnimationFrame(loop); } // append elements to the DOM //modal-display document.getElementById("webcam-container").appendChild(webcam.canvas); document.getElementById("vid-placeholder").style.display = "none"; document.getElementById("webcam-container").style.display = "block"; document.getElementById("vid-scanner").style.display = "block"; document.getElementById("predict-win").style.display = "block"; document.getElementById("start-btn").style.display = "none"; document.getElementById("stop-btn").style.display = "block"; document.getElementById("modal-display").style.display = "none"; } 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() { var great = document.getElementById("cd-great"); var result = document.getElementById("cd-result"); var result_color = document.getElementById("result-container"); const prediction = await model.predict(webcam.canvas); for (let i = 0; i < maxPredictions; i++) { console.log( "prediction[i].className: ", prediction[i].probability.toFixed(0).trim(), prediction[i].className.trim() ); final_probablity = prediction[i].probability.toFixed(0).trim(); final_class = prediction[i].className.trim(); if ( final_class == "ac_plane" || final_class == "bpd_plane" || final_class == "fl_plane" || final_class == "no_plane" ) { if (final_class == "ac_plane" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to belong to a Abdominal Circumference Plane (AC Plane).\n The AC plane involves measuring the abdominal circumference, which is crucial for evaluating fetal abdominal growth and assessing fetal nutrition and well-being."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "bpd_plane" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to belong to a Biparietal Diameter Plane (BPD Plane).\n The BPD plane is a key measurement plane used in obstetric ultrasound to assess fetal growth and monitor fetal well-being."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "fl_plane" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to belong to a Femur Length Plane (FL Plane).\n The FL plane refers to the measurement of the femur length, which is an important indicator of fetal skeletal growth and development. It is used to estimate fetal age and evaluate fetal size during different stages of pregnancy."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "no_plane" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
We couldn't detect whose plane this image represent."; result_color.style.backgroundColor = "#f9ffd1"; } } else if ( final_class == "hdvb" || final_class == "hdvf" || final_class == "huvb" || final_class == "huvf" ) { if (final_class == "hdvb" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This sample depicts that the fetus is in the
head-down-view-back
orientation."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "hdvf" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This sample depicts that the fetus is in the
head-down-view-front
orientation."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "huvb" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This sample depicts that the fetus is in the
head-up-view-back
orientation."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "huvf" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This sample depicts that the fetus is in the
head-up-view-front
orientation."; result_color.style.backgroundColor = "#b5ffd6"; } } else if ( final_class == "abdomen" || final_class == "arm" || final_class == "head" || final_class == "leg" ) { if (final_class == "abdomen" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to depict an
abdomen
of a fetus."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "arm" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to depict an
arm
of a fetus."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "head" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to depict the
head
of a fetus."; result_color.style.backgroundColor = "#b5ffd6"; } else if (final_class == "leg" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "
This image seems to depict the
leg
of a fetus."; result_color.style.backgroundColor = "#b5ffd6"; } } else { if (final_class == "others" && final_probablity == 1) { great.innerHTML = "
"; result.innerHTML = "Sample must be an Ultrasound Image."; result_color.style.backgroundColor = "#ffc9cf"; } } } }