探索如何通過(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è)畫
布-用于繪制邊界框,以及
網(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ù)。通過(guò)使用邊界框數(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)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?