成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

新聞 前端
我借用的我女兒所有迪士尼公主人偶來建立一個機器學習模型,這個應用取名為“Princess Finder”,可以通過攝像頭將這些人偶的公主信息都識別出來。本文中我們將會學到這背后的一些知識以及擴展它們的可能性。

本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。

到了慶祝的時候了!我們剛剛送走了圣誕老人?,F在正等待新年的鐘聲敲響。所以我想到建立一個很酷的東西(至少我的七歲小公主會覺得)同時學一點機器學習。所以我們要做一個什么?

我借用的我女兒所有迪士尼公主人偶來建立一個機器學習模型,這個應用取名為“Princess Finder”,可以通過攝像頭將這些人偶的公主信息都識別出來。本文中我們將會學到這背后的一些知識以及擴展它們的可能性。

The Princess Finder

該 Princess Finder 應用是使用以下內容構建的:

  • The Teachable Machine:如何簡單,快速地創建models可直接在應用程序或網站中使用的機器學習?可教學機器允許您將train計算機與圖像,聲音和姿勢一起使用。我們使用迪士尼公主創建了一個模型,以便我們可以Image Classification在應用程序中使用它來執行。

  • ml5.js:這是使用您的Web瀏覽器進行的Web機器學習。它使用Web瀏覽器的內置圖形處理單元(GPU)進行快速計算。我們可以像使用,可以用API如imageClassifier(model),classify等來進行圖像分類。

  • React:這是一個用于構建用戶界面的JavaScript庫。我們可以ml5.js在React應用程序中使用它,只需安裝并將其作為依賴項導入即可。

這是應用程序顯示的截圖,有93%的概率表明,這個娃娃是Jasmine(茉莉公主),它有明顯的金戒指標記。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

鑒于我根本不像迪士尼公主(甚至沒有洋娃娃)。因此,我自己的圖像已正確分類,說No Dolls。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

這是一個很棒的簡單演示。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

幾個術語

如果您是機器學習的新手,您可能會發現其中一些術語有些不知所措。最好是從更高維的角度了解它們的含義以了解用法。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

您可以從此處閱讀有關這些和其他機器學習術語的更多信息。

我們的Princess Finder應用程序使用Supervised Machine learning,我們有trained將model有很多examples的公主的照片。每個示例數據還包含一個label,用于通過名稱標識特定的公主。

Teachable Machine

我們可以使用Teachable Machine用戶界面通過幾個簡單的步驟來創建ML模型。首先,瀏覽到此鏈接。(需要VPN)您可以選擇圖像,聲音或姿勢項目。在我們的例子中,它將是一個圖像項目。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

接下來,我們需要通過選擇示例(圖像和標簽)來定義分類。我們可以使用網絡攝像頭拍攝照片,也可以上傳圖像。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

加載示例后,我們便開始培訓。這將為我們創建一個模型。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

訓練完成后,您可以使用實時數據測試模型。滿意后,您可以導出模型以在應用程序中使用它。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

最后,我們可以下載模型以在我們的應用程序中使用它。您可以選擇將模型上傳到云中,以使用URL進行使用。您也可以將項目保存到Google Drive。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

如果您有興趣使用或擴展我創建的模型,則可以下載并將其導入“可教機器”界面。

使用ml5.js和React的用戶界面

現在我們有了一個模型。我們將使用該ml5.js庫導入模型,并使用實時流對圖像進行分類。我最熟悉的是React。您可以使用任何UI庫,框架或原始JavaScript。我已經使用create-react-app啟動應用程序的骨架并在一分鐘內運行。

安裝ml5.js依賴項

  1. # Or, npm install ml5  
  2. yarn add ml5 

將模型解壓縮public到項目文件夾下。我們可以model在公共目錄下創建一個名為的文件夾,然后提取文件。

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

使用ml5.js庫來加載模型。我們將使用該imageClassifier方法來傳遞模型文件。此方法調用返回一個分類器對象,我們將在一段時間內使用該對象對實時圖像進行分類。還要注意,一旦成功加載模型,我們將初始化網絡攝像頭設備,以便我們可以從實時流中收集圖像。

  1. useEffect(() => {     
  2.    classifier = ml5.imageClassifier("./model/model.json", () => {       
  3.        navigator.mediaDevices         
  4.            .getUserMedia({ video: true, audio: false })         
  5.            .then((stream) => {           
  6.                videoRef.current.srcObject = stream;           
  7.                videoRef.current.play();           
  8.                setLoaded(true);         
  9.             });     
  10.        });   
  11.     }, []); 


我們還需要在render函數中定義一個視頻組件

  1. <video       
  2.     ref={videoRef}       
  3.     style={{ transform: "scale(-1, 1)" }}       
  4.     width="200"       
  5.     height="150" /> 

接下來,我們在分類器上調用classify()方法以獲取結果。該results是所有比賽的目標參數標簽的數組。

  1. classifier.classify(videoRef.current, (error, results) => {    
  2.     if (error) {       
  3.         console.error(error);       
  4.         return;    
  5.     }    
  6.     setResult(results);  
  7. }); 

我們應該classify在指定的時間間隔內使用方法調用。您可以使用一個稱為React的React Hook,useInterval進行相同操作。結果數組可能看起來像這樣,

通過機器學習識別“迪士尼在逃公主”,程序員寵女的正確打開方式!

請從此處找到App.js文件的完整代碼。就是這樣,您現在可以使用此result數組提供您想要的任何UI表示形式。在我們的例子中,我們在兩個React組件中使用了這個結果數組,

1.列出公主并突出顯示最匹配的那個

  1. <Princess data={result} / 

2.顯示儀表圖以指示匹配的置信度。

  1. <Chart data={result[0]} / 

 

Princess組件循環遍歷結果數組,并使用一些CSS樣式突出顯示它們,并呈現它們。

  1. import React from "react"
  2. const Princess = (props) => {   
  3.    const mostMatched = props.data[0];   
  4.    const allLabels = props.data.map((elem) => elem.label);   
  5.    const sortedLabels = allLabels.sort((a, b) => a.localeCompare(b));   
  6.        return (     
  7.            <>       
  8.                <ul className="princes">         
  9.                    {sortedLabels.map((label) => (           
  10.                        <li key={label}>             
  11.                        <span>               
  12.                        <img                 
  13.                            className={`img ${                   
  14.                                label === mostMatched.label ? "selected" : null                 
  15.                        }`}                 
  16.                    src={                   
  17.                        label === "No Dolls"                     
  18.                            ? "./images/No.png"                     
  19.                            : `./images/${label}.png`                 
  20.                    }                 
  21.                    alt={label}               
  22.                    />               
  23.                    <p className="name">{label}</p>             
  24.                 </span>           
  25.               </li>         
  26.             ))}       
  27.          </ul>     
  28.        </>   
  29.       ); 
  30.    }; 
  31. export default Princess; 

圖表組件就是這樣

  1. import React from "react"
  2. import GaugeChart from "react-gauge-chart"
  3. const Chart = (props) => {   
  4.    const data = props.data;   
  5.    const label = data.label;   
  6.    const confidence = parseFloat(data.confidence.toFixed(2));   
  7.    return (     
  8.        <div>       
  9.            <h3>Classification Confidence: {label}</h3>         
  10.            <GaugeChart         
  11.                id="gauge-chart3"         
  12.                nrOfLevels={3}         
  13.                colors={["#FF5F6D""#FFC371""rgb(26 202 26)"]}         
  14.                arcWidth={0.3}         
  15.                percent={confidence}       
  16.            />     
  17.        </div>   
  18.    ); 
  19. }; 
  20. export default Chart; 


就是這樣。請從GitHub存儲庫中找到完整的源代碼。如果您喜歡這項工作,請隨時給項目加星號(⭐)。

https://github.com/atapas/princess-finder

 

責任編輯:張燕妮 來源: 雷鋒網
相關推薦

2017-03-14 15:00:47

2022-03-22 07:37:04

FeignSpringRibbon

2019-02-20 14:35:57

區塊鏈數字貨幣比特幣

2016-01-08 11:00:14

OpenStack云計算

2016-03-01 14:51:18

云計算DevOps

2021-11-25 07:43:56

CIOIT董事會

2017-08-02 10:43:39

深度學習TensorFlowRNN

2023-07-10 09:38:06

兼容性測試方案

2021-11-10 16:03:42

Pyecharts Python可視化

2025-04-30 08:20:58

2018-04-02 10:47:55

程序員AI打開方式

2021-06-07 10:05:56

性能優化Kafka

2021-10-09 15:49:00

5G網絡技術

2018-10-29 15:20:03

2020-06-04 15:16:46

云計算

2020-07-05 09:17:20

云桌面

2022-06-22 09:06:54

CSS垂直居中代碼

2022-08-16 08:33:06

DevOps實踐

2021-01-11 10:47:09

IT部門網絡管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品网站 | 国产区精品 | 欧美日韩精品久久久免费观看 | 最新日韩欧美 | 久草在线影 | 精品一区二区三区在线观看国产 | av一级久久 | 国产激情在线 | 久久久xxx| 五月婷婷丁香婷婷 | 欧美不卡 | 久久精品一区二区三区四区 | 免费黄色的视频 | 日韩一区二区精品 | 久久99精品久久久 | 国产成人一区二区 | 国产亚洲欧美另类一区二区三区 | 精品久久一区 | 99精品视频在线观看免费播放 | 亚洲高清在线 | 美国黄色一级片 | 久草青青草 | 日韩在线不卡视频 | 久久一区精品 | 欧美又大粗又爽又黄大片视频 | 羞羞网站免费观看 | 色网站在线免费观看 | 欧美激情久久久 | 黄色大片在线免费观看 | 成人h免费观看视频 | 久久久久一区二区三区 | 久久夜视频 | 亚洲人在线播放 | 国产精品一区二区不卡 | 国产欧美精品一区二区 | 亚洲传媒在线 | 国产成人精品久久二区二区91 | 国产精品入口久久 | 1000部精品久久久久久久久 | 久久精品免费一区二区 | 精品在线一区 |