探索如何通過(guò)向AI提供大量藥丸圖像來(lái)訓(xùn)練AI檢測(cè)定制藥丸
你有沒(méi)有聽(tīng)說(shuō)過(guò)有人用人工智能來(lái)解決他們的行業(yè)問(wèn)題,比如醫(yī)生用人工智能來(lái)識(shí)別癌細(xì)胞,閉路電視識(shí)別貨架上的產(chǎn)品,甚至是貓檢測(cè)器?這些“AI”背后的基本邏輯是自定義對(duì)象檢測(cè)。
在這個(gè)故事中,我們將探索如何通過(guò)向AI提供大量藥丸圖像來(lái)訓(xùn)練AI檢測(cè)定制藥丸。(不到30分鐘。
你可以在家里用一顆簡(jiǎn)單的黃色藥丸在這里玩,或者訪問(wèn)這里的代碼:https://github.com/manfye/react-tfjs-azure-objDetect。目標(biāo)檢測(cè)目標(biāo)檢測(cè)是一項(xiàng)計(jì)算機(jī)視覺(jué)任務(wù),涉及兩項(xiàng)主要任務(wù):在圖像中定位一個(gè)或多個(gè)對(duì)象,以及對(duì)圖像中的每個(gè)對(duì)象進(jìn)行分類圖像分類與目標(biāo)檢測(cè)(分類和定位)。
與圖像分類(圖2)相反,對(duì)象檢測(cè)的目標(biāo)是通過(guò)邊界框和定位對(duì)象的類別來(lái)預(yù)測(cè)對(duì)象在圖像中的位置,輸出可以超過(guò)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)練框架來(lái)訓(xùn)練模型,但這種方法存在許多缺點(diǎn),如計(jì)算密集、設(shè)置時(shí)間長(zhǎng)、圖形卡要求高,不適合初學(xué)者。因此,出現(xiàn)了商業(yè)(可用的免費(fèi)層)方法來(lái)訓(xùn)練模型。在本文中,我將展示如何使用Microsoft Azure Custom Vision方法來(lái)訓(xùn)練tensorflow.js對(duì)象檢測(cè)模型,只需單擊幾下。目標(biāo)檢測(cè)模型訓(xùn)練Custom Vision是一項(xiàng)人工智能服務(wù),是Microsoft Azure應(yīng)用計(jì)算機(jī)視覺(jué)的端到端平臺(tái)。它為Azure用戶提供了一個(gè)免費(fèi)的層來(lá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)目”頁(yè)面,你會(huì)注意到,一旦你選擇了資源,你就可以選擇項(xiàng)目類型和域,選擇“Object Detections”和 General (compact)。通過(guò)選擇壓縮,Microsoft Azure允許你以各種格式下載經(jīng)過(guò)訓(xùn)練的模型。
你將到達(dá)如下圖所示的訓(xùn)練平臺(tái),單擊圖像上傳。自定義視覺(jué)訓(xùn)練平臺(tái):
上傳未標(biāo)記的圖像以進(jìn)行標(biāo)記。對(duì)于本文,我的藥丸圖像資源就在這里。[2]就我的案例而言,我上傳了大約50-100張用于訓(xùn)練的圖像。
接下來(lái),逐個(gè)標(biāo)記圖像(這是一個(gè)乏味的部分),幸運(yùn)的是,Custom Vision確實(shí)為你提供了一個(gè)非常用戶友好的標(biāo)記工具,可以簡(jiǎn)化標(biāo)記過(guò)程。
完成標(biāo)記后,單擊“Train”按鈕并等待幾分鐘,你將得到以下結(jié)果:訓(xùn)練結(jié)果:
單擊導(dǎo)出并選擇Tensorflow,然后選擇Tensorflow.js導(dǎo)出。恭喜,你在Tf.js中擁有了第一個(gè)自定義對(duì)象檢測(cè)模型輸出經(jīng)過(guò)訓(xùn)練的模型:
使用React with Tensorflow.js檢測(cè)自定義對(duì)象
1.設(shè)置你的CreateReact應(yīng)用程序
通過(guò)終端中的以下命令創(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ǔ)庫(kù)
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è)畫(huà)
布-用于繪制邊界框,以及
網(wǎng)絡(luò)攝像頭-用于輸入圖像/視頻//
注意:畫(huà)布和網(wǎng)絡(luò)攝像頭必須具有相同的大小和位置,才能在HTML畫(huà)布中進(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畫(huà)布的原因。整個(gè)預(yù)測(cè)功能如下所示:
此函數(shù)將創(chuàng)建一個(gè)邊界框,在該框上方顯示檢測(cè)到的對(duì)象類。它包括4個(gè)部分,其中第一部分是清除繪制的HTML畫(huà)布,然后啟動(dòng)對(duì)象的模型檢測(cè)。
如果模型檢測(cè)到對(duì)象,模型將返回預(yù)測(cè)數(shù)據(jù)。通過(guò)使用邊界框數(shù)據(jù),我們可以使用HTML畫(huà)布繪制邊界框。然后,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è)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車研發(fā)中心重磅落地,寶馬家門口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 共探合作新機(jī)遇!江門市新會(huì)區(qū)(深圳)“AI + 機(jī)器人” 產(chǎn)業(yè)對(duì)接會(huì)成功舉辦