探索如何通過向AI提供大量藥丸圖像來訓(xùn)練AI檢測(cè)定制藥丸
你有沒有聽說過有人用人工智能來解決他們的行業(yè)問題,比如醫(yī)生用人工智能來識(shí)別癌細(xì)胞,閉路電視識(shí)別貨架上的產(chǎn)品,甚至是貓檢測(cè)器?這些“AI”背后的基本邏輯是自定義對(duì)象檢測(cè)。
在這個(gè)故事中,我們將探索如何通過向AI提供大量藥丸圖像來訓(xùn)練AI檢測(cè)定制藥丸。(不到30分鐘。
你可以在家里用一顆簡(jiǎn)單的黃色藥丸在這里玩,或者訪問這里的代碼:https://github.com/manfye/react-tfjs-azure-objDetect。目標(biāo)檢測(cè)目標(biāo)檢測(cè)是一項(xiàng)計(jì)算機(jī)視覺任務(wù),涉及兩項(xiàng)主要任務(wù):在圖像中定位一個(gè)或多個(gè)對(duì)象,以及對(duì)圖像中的每個(gè)對(duì)象進(jìn)行分類圖像分類與目標(biāo)檢測(cè)(分類和定位)。
與圖像分類(圖2)相反,對(duì)象檢測(cè)的目標(biāo)是通過邊界框和定位對(duì)象的類別來預(yù)測(cè)對(duì)象在圖像中的位置,輸出可以超過1個(gè)類別。自定義對(duì)象檢測(cè)目前,在線提供各種預(yù)訓(xùn)練的模型,如COCO-SSD,它能夠檢測(cè)80多種常用對(duì)象,如檢測(cè)人、鉛筆和智能手機(jī)。但是,這個(gè)模型不能滿足檢測(cè)定制對(duì)象的需要,例如,我是一名藥劑師,我想制作一個(gè)能夠在網(wǎng)絡(luò)攝像機(jī)中檢測(cè)和計(jì)數(shù)藥丸的web應(yīng)用程序。傳統(tǒng)上,要訓(xùn)練自定義對(duì)象,你需要將標(biāo)簽圖像盡可能多地輸入訓(xùn)練框架,如tensorflow和pytorch。然后運(yùn)行該框架,以獲得能夠檢測(cè)對(duì)象的最終訓(xùn)練模型。訓(xùn)練自定義對(duì)象檢測(cè)模型的流程:
目前,最先進(jìn)的方法是使用Pytorch和tensorflow等訓(xùn)練框架來訓(xùn)練模型,但這種方法存在許多缺點(diǎn),如計(jì)算密集、設(shè)置時(shí)間長(zhǎng)、圖形卡要求高,不適合初學(xué)者。因此,出現(xiàn)了商業(yè)(可用的免費(fèi)層)方法來訓(xùn)練模型。在本文中,我將展示如何使用Microsoft Azure Custom Vision方法來訓(xùn)練tensorflow.js對(duì)象檢測(cè)模型,只需單擊幾下。目標(biāo)檢測(cè)模型訓(xùn)練Custom Vision是一項(xiàng)人工智能服務(wù),是Microsoft Azure應(yīng)用計(jì)算機(jī)視覺的端到端平臺(tái)。它為Azure用戶提供了一個(gè)免費(fèi)的層來訓(xùn)練他們的對(duì)象檢測(cè)或圖像分類器模型,并將其作為API。對(duì)于免費(fèi)層,它允許每個(gè)項(xiàng)目有多達(dá)5000張訓(xùn)練圖像,足夠大,可以檢測(cè)少數(shù)幾類對(duì)象。Azure自定義Vision的定價(jià):
注冊(cè)完成后,單擊“新建項(xiàng)目”,單擊“新建”以創(chuàng)建新產(chǎn)品。創(chuàng)建新項(xiàng)目:
然后,創(chuàng)建一個(gè)新的資源組并選擇種類:“CustomVision,Training”和“F0”,以使用CustomVision Training的免費(fèi)層創(chuàng)建新資源:
回到“創(chuàng)建新項(xiàng)目”頁面,你會(huì)注意到,一旦你選擇了資源,你就可以選擇項(xiàng)目類型和域,選擇“Object Detections”和 General (compact)。通過選擇壓縮,Microsoft Azure允許你以各種格式下載經(jīng)過訓(xùn)練的模型。
你將到達(dá)如下圖所示的訓(xùn)練平臺(tái),單擊圖像上傳。自定義視覺訓(xùn)練平臺(tái):
上傳未標(biāo)記的圖像以進(jìn)行標(biāo)記。對(duì)于本文,我的藥丸圖像資源就在這里。[2]就我的案例而言,我上傳了大約50-100張用于訓(xùn)練的圖像。
接下來,逐個(gè)標(biāo)記圖像(這是一個(gè)乏味的部分),幸運(yùn)的是,Custom Vision確實(shí)為你提供了一個(gè)非常用戶友好的標(biāo)記工具,可以簡(jiǎn)化標(biāo)記過程。
完成標(biāo)記后,單擊“Train”按鈕并等待幾分鐘,你將得到以下結(jié)果:訓(xùn)練結(jié)果:
單擊導(dǎo)出并選擇Tensorflow,然后選擇Tensorflow.js導(dǎo)出。恭喜,你在Tf.js中擁有了第一個(gè)自定義對(duì)象檢測(cè)模型輸出經(jīng)過訓(xùn)練的模型:
使用React with Tensorflow.js檢測(cè)自定義對(duì)象
1.設(shè)置你的CreateReact應(yīng)用程序
通過終端中的以下命令創(chuàng)建Create React應(yīng)用程序:
npx create-react-app tfjs-azureObject
cd tfjs-azureObject
安裝tensorflow.js和Microsoft Customvision,如下所示:
npm install @tensorflow/tfjs
npm install @m(xù)icrosoft/customvision-tfjs
安裝react-webcam,如下所示:
npm install react-webcam
然后啟動(dòng)應(yīng)用程序npm start
所有的代碼只會(huì)出現(xiàn)在App.js中,我只會(huì)顯示重要的代碼,完整的代碼可以參考我的GitHub存儲(chǔ)庫
2.導(dǎo)入所需的包
import React, { useEffect, useState, useRef } from "react";
import Webcam from "react-webcam";
import * as cvstfjs from "@m(xù)icrosoft/customvision-tfjs";
3.構(gòu)建用戶界面
此項(xiàng)目的UI包括:
按鈕-用于啟動(dòng)檢測(cè)畫
布-用于繪制邊界框,以及
網(wǎng)絡(luò)攝像頭-用于輸入圖像/視頻//
注意:畫布和網(wǎng)絡(luò)攝像頭必須具有相同的大小和位置,才能在HTML畫布中進(jìn)行繪制。
4.加載模型
將下載的模型提取到“Public”文件夾中,確保model.json與weights.bin一起正確放置在/model.json路徑中。要使用模型進(jìn)行預(yù)測(cè),代碼為:
async function predictionFunction() {
setVideoHeight(webcamRef.current.video.videoHeight);
setVideoWidth(webcamRef.current.video.videoWidth);
// 測(cè)試azure vision api
let model = new cvstfjs.ObjectDetectionModel();
await model.loadModelAsync("model.json");
const predictions = await model.executeAsync(
document.getElementById("img")
);
但是,當(dāng)預(yù)測(cè)的類必須顯示在照片中時(shí),事情會(huì)變得復(fù)雜,這就是使用HTML畫布的原因。整個(gè)預(yù)測(cè)功能如下所示:
此函數(shù)將創(chuàng)建一個(gè)邊界框,在該框上方顯示檢測(cè)到的對(duì)象類。它包括4個(gè)部分,其中第一部分是清除繪制的HTML畫布,然后啟動(dòng)對(duì)象的模型檢測(cè)。
如果模型檢測(cè)到對(duì)象,模型將返回預(yù)測(cè)數(shù)據(jù)。通過使用邊界框數(shù)據(jù),我們可以使用HTML畫布繪制邊界框。然后,500毫秒后重新運(yùn)行整個(gè)功能。
最后
在本文中,我們將介紹如何使用Microsoft custom Vision層創(chuàng)建自定義對(duì)象檢測(cè)模型,這將大大減少創(chuàng)建自定義對(duì)象檢測(cè)模型的工作量和障礙(我認(rèn)為減少了80%)。然后,我們使用react將該模型合并到Tensorflow.js中,并用不到100行代碼對(duì)整個(gè)web應(yīng)用程序進(jìn)行編碼。
每個(gè)行業(yè)對(duì)自定義對(duì)象檢測(cè)的需求都很高,在本文中,我用創(chuàng)建了一個(gè)藥丸計(jì)數(shù)器,希望在了解自定義檢測(cè)技術(shù)后,它可以啟發(fā)你為你的行業(yè)創(chuàng)建更多的工具。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 1 【一周車話】沒有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無人駕駛車,還未迎來“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國(guó)產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰是盈利最強(qiáng)企業(yè)?
- 8 比蘋果偉大100倍!真正改寫人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬億獨(dú)角獸,AI人才之爭(zhēng)開啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市