首頁 > web前端 > js教程 > 主體

使用 JavaScript 進行圖像分類

WBOY
發布: 2023-09-09 13:01:02
轉載
617 人瀏覽過

使用 JavaScript 进行图像分类

影像分類的意義就是從影像中提取盡可能多的信息。例如,當您將圖像上傳到 Google 相簿時,它會從圖像中提取資訊並根據該資訊建議位置。

我們可以使用OpenCV檢測影像中的每一個微小資訊並預測影像。

使用 JavaScript 從頭開始訓練和測試模型需要付出大量的努力,而且還需要包含不同圖像的正確資料集。因此,在本教程中,我們將使用ml5.js的預訓練模型對影像進行分類。

ml5.js 函式庫包含各種預先訓練的模型,讓開發人員的工作更輕鬆。此外,它還使用瀏覽器的 GPU 來執行數學運算,使其更有效率。

文法

使用者可以依照以下語法使用ml5.js庫對影像進行分類。

image_classifier.predict(image, function (err, outputs) {
   if (err) {
      return alert(err);
   } else {
      output.innerText = outputs[0].label;
   }
});
登入後複製

在上述語法中,「image_classifier」是從 ml5.js 庫導入的預訓練影像分類模型。我們透過傳遞圖像作為第一個參數和回調函數作為第二個參數來呼叫「預測」方法。在回調函數中,我們得到輸出或錯誤。

步驟

  • 第 1 步 - 使用 CDN 在網頁程式碼中新增「ml5.js」函式庫。

  • 第 2 步 - 新增輸入以上傳檔案並分類按鈕。

  • 第 3 步 - 在 JavaScript 中,從 ml5.js 存取所需的 HTML 元素和「MobileNet」模型。另外,模型載入完成後執行 modelLoad() 函數。

  • 步驟 4 - 之後,每當使用者上傳圖像時,都會觸發事件並在回調函數中讀取圖像。另外,在螢幕上顯示影像。

  • 步驟 5 - 當使用者按下分類影像按鈕時,使用影像分類器的預測方法來預測有關影像的資訊。

範例 1

在下面的範例中,我們透過 CDN 將「ml5.js」庫加入到 部分。之後,每當用戶上傳圖像時,我們都會讀取它並將其顯示在螢幕上。接下來,當使用者按下分類按鈕時,我們使用預測方法從影像中提取特徵。在輸出中,使用者可以在圖像下方顯示有關圖像的資訊。

<html>
<head>
   <script src="https://unpkg.com/ml5@latest/dist/ml5.min.js"></script>
</head>
<body>
   <h2>Creating the <i> Image classifier </i> using the ml5.js in JavaScript.</h2>
   <h4 id = "content"> Wait until model loads. </h4>
   <input type = "file" name = "Image" id = "upload_image" accept = "jpg,jpeg,png">
   <br> <br>
   <img src = "" class = "image" id = "show_image" width = "300px" height = "300px">
   <br>
   <button class = "button" id = "triggerClassify"> Classify the image </button>
   <br>
   <h2 id = "output"> </h2>
   <script>
      window.onload = function () {
         // access all HTML elements and image classifier
         const image_classifier = ml5.imageClassifier("MobileNet", modelLoaded);
         const triggerClassify = document.getElementById("triggerClassify");
         const upload_image = document.getElementById("upload_image");
         const show_image = document.getElementById("show_image");
         const output = document.getElementById("output");
         
         // when the model is loaded, show the message
         function modelLoaded() {
            let content = document.getElementById("content");
            content.innerText = "Model is loaded! Now, test it by uploading the image.";
         }
         
         // When the user uploads the image, show it on the screen
         upload_image.onchange = function () {
            if (this.files && this.files[0]) {
            
               // using FileReader to read the image
               var reader = new FileReader();
               reader.onload = function (e) {
                  show_image.src = e.target.result;
               };
               reader.readAsDataURL(this.files[0]);
            }
         };
         
         // classify the image when the user clicks the button
         triggerClassify.onclick = function (e) {
         
            // predict the image using the model
            image_classifier.predict(show_image, function (err, outputs) {
               if (err) {
                  return err;
               } else {
               
                  // show the output
                  output.innerText = outputs[0].label;
               }
            });
         };
      }
   </script>
</body>
</html>
登入後複製

範例

在下面的範例中,使用者可以將圖像連結貼到輸入欄位中。之後,每當他們按下獲取圖像按鈕時,它就會在網頁上顯示圖像。接下來,當使用者點擊分類圖像按鈕時,他們可以在螢幕上看到包含圖像資訊的輸出。

<html>
<head>
   <script src="https://unpkg.com/ml5@latest/dist/ml5.min.js"></script>
</head>
<body>
   <h2>Creating the <i> Image classifier </i> using the ml5.js in JavaScript.</h2>
   <h4 id = "content"> Wait until model loads. </h4>
   <input type = "text" id = "link_input" placeholder = "Paste image link here">
   <button id = "fetch_image"> Fetch Image </button>
   <br> <br>
   <img src = "" id = "show_image" width = "300px" height = "300px" crossorigin = "anonymous">
   <img src = "" class = "image" id = "imageView">
   <br>
   <button class = "button" id = "triggerClassify"> Classify the image </button>
   <br>
   <h2 id = "output"> </h2>
   <script>
      window.onload = function () {
         // access all HTML elements and image classifier
         const image_classifier = ml5.imageClassifier("MobileNet", modelLoaded);
         const triggerClassify = document.getElementById("triggerClassify");
         let link_input = document.getElementById("link_input");
         const show_image = document.getElementById("show_image");
         const output = document.getElementById("output");
         
         // when the model is loaded, show the message
         function modelLoaded() {
            let content = document.getElementById("content");
            content.innerText = "Model is loaded! Now, test it by uploading the image.";
         }
         fetch_image.onclick = function (e) {
            let link = link_input.value;
            console.log(link);
            if (link != null && link != undefined) {
               show_image.src = link;
            }
         };
         triggerClassify.onclick = function (e) {
            image_classifier.predict(show_image, function (err, outputs) {
               if (err) {
                  console.error(err);
               } else {
                  output.innerText = outputs[0].label;
               }
            });
         };
      }
   </script>
</body>
</html>
登入後複製

使用者學會了使用 JavaScript 中的預訓練模型對影像進行分類。我們使用“ml5.js”庫來提取圖像特徵。我們可以使用現實生活中的圖像分類來對圖像進行分類。此外,影像分類還有許多其他用例。

以上是使用 JavaScript 進行圖像分類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!