iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
AI & Data

初學者介紹TensFlow.js系列系列 第 20

[Day20]介紹mobileNet模型

  • 分享至 

  • xImage
  •  

今天我們要再來談談模型的一些特性和問題
我們之前有提到當我們使用Tensorflow Hub時可以更改裡面的模型來查看定界框及關連,但是在這裡根據模型的不同我們有時候可能會碰到一些問題。
例如當我們試著修改TFHub.dev中一個名為ssd_mobilenet_v2的mobilenet版本裡的模型時,會得到錯誤訊息並且要求說要使用model.executeAsync而不是使用model.predict。

首先我們要先了解何謂mobile SSD部分
Mobile
Mobilenet 是一種用於低延遲低功耗模型的特定架構,這使得他非常適合用於裝置和web。雖然Inpection會更為準確一些但MobileNet的速度和大小,使其成為邊緣裝置上進行物件偵測的標準工具,更重要的是雖然MobileNet的準確度稍低了一些,但是跟ipection的性能延遲及消耗比起來這稍低的準確度是可以接受的。
上述的兩種架構都經過數百萬張的影像進行訓練過,可以識別那些特定的資料及類別(1001個來自ImageNet的資料集),因此這修模型經過調整後便可立即使用。
執行物件偵測
我們可以透過調整將上述的兩種模型從分類修改為物件偵測,而物件偵測有分為兩種方法去實行
R-CNN跟完全捲積(fully convolutional)
R-CNN是透過滑動式窗查看影像區塊進行偵測物件的一種方式,速度慢但是精確,不過應為慢的關係導致他不是用於網站和移動裝置,這也突顯了SSD的重要性。
SSD MobileNet
他代表單次偵測器,當SSD類型的模型被架構成完全捲積模型時便可一次性的識別整體影像的特徵,也因為它單次的特性所以效率會高於R-CNN。
SSD有兩個主要的原件,一個是用來識別物件的骨幹模型,另一個則是用於定位物件的SSD端頭。

於是我們會需要一個方法將SSD和mobileNet進行結合使我們有條件地在模型中進行運算,而這方法稱之為控制流(control flow)。這是導致無法使用predict的原因,因為模型實做控制流時predict是無法運作的,因此我們需要非同步呼叫executeAsync。

順帶一提SSD MobileNet還有一個優點,就是為我們省下控制流操作的麻煩,因為javascript中的條件敘述需要unload優化的張量並重新載入它

今天我就介紹到這裡,謝謝大家


上一篇
[Day19]疊加模型
下一篇
[Day21] 定界輸出
系列文
初學者介紹TensFlow.js系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言