<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在計算機視覺領域,目標檢測是一個非常重要的任務。它可以應用於許多領域,如自動駕駛、安防、醫療等。在本文中,我們將介紹如何使用遷移學習構建一個基於JavaScript的目標檢測器。
遷移學習是一種將已訓練好的模型應用於新問題的方法。我們可以使用已經訓練好的模型作為起點,並在新資料集上進行微調來解決新問題。這種方法可以大大減少模型的訓練時間,並獲得更好的效能。
在本文中,我們將使用TensorFlow.js和預先訓練的模型來檢測影象中的物體。具體來說,我們將使用COCO-SSD模型,它是一個預先訓練的目標檢測模型,可以檢測80種不同的物體類別。
首先,我們需要安裝Node.js和npm。然後,在控制檯中執行以下命令來安裝TensorFlow.js:
npm install @tensorflow/tfjs
一旦我們安裝了TensorFlow.js,我們就可以載入預先訓練的模型來檢測影象中的物體。在控制檯中執行以下命令來載入模型:
const model = await tf.loadGraphModel('<https://tfhub.dev/tensorflow/tfjs-model/ssd_mobilenet_v2/1/default/1>', { fromTFHub: true });
這行程式碼將從TensorFlow Hub載入COCO-SSD模型,並將其儲存在一個變數中。我們將在後面的步驟中使用它來檢測影象中的物體。
在對影象進行檢測之前,我們需要對影象進行預處理,以使其與模型的輸入格式匹配。具體來說,我們需要將影象轉換為張量,並將其縮放到300x300大小。以下是預處理程式碼:
const img = await loadImage(imageUrl); const width = img.width; const height = img.height; const tensor = tf.browser.fromPixels(img).resizeNearestNeighbor([300, 300]).toFloat().expandDims();
在這些程式碼中,我們首先使用loadImage函數將影象載入到記憶體中。然後,我們使用tf.browser.fromPixels將影象轉換為張量,並使用resizeNearestNeighbor將其縮放到300x300大小。最後,我們使用expandDims將張量擴充套件到四個維度,以匹配模型的輸入格式。
現在,我們可以將處理過的影象傳遞給模型,並獲得檢測結果。以下是程式碼:
const predictions = await model.executeAsync(tensor); const boxes = predictions[0].dataSync(); const scores = predictions[1].dataSync(); const classes = predictions[2].dataSync();
在這些程式碼中,我們使用executeAsync方法將處理過的影象傳遞給模型,並獲得檢測結果。這些結果是一些張量,我們可以使用dataSync方法將它們轉換為JavaScript陣列。
最後,我們可以將檢測結果顯示在影象上。以下是程式碼:
const ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0, width, height); for(let i = 0; i < scores.length; i++) { if(scores[i] > scoreThreshold) { const bbox = [ boxes[i * 4] * width, boxes[i * 4 + 1] * height, (boxes[i * 4 + 2] - boxes[i * 4]) * width, (boxes[i * 4 + 3] - boxes[i * 4 + 1]) * height ]; drawBoundingBox(ctx, bbox); drawLabel(ctx, classes[i], scores[i], bbox[0], bbox[1]); } }
在這些程式碼中,我們首先獲取canvas的上下文,並使用drawImage方法將影象繪製到canvas上。然後,我們遍歷檢測結果,並將每個物體的邊界框和類別標籤繪製到canvas上。我們可以使用自定義的drawBoundingBox和drawLabel函數來實現這些功能。
本文介紹瞭如何使用遷移學習和TensorFlow.js構建一個基於JavaScript的目標檢測器。首先,我們載入了預先訓練的COCO-SSD模型,並對影象進行了預處理。然後,我們將處理過的影象傳遞給模型,並獲得檢測結果。最後,我們將檢測結果顯示在影象上。這種方法可以大大減少模型的訓練時間,並獲得更好的效能。
以上就是基於遷移學習的JS目標檢測器構建過程詳解的詳細內容,更多關於JS目標檢測器遷移學習的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45