iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
自我挑戰組

Tensorflow.js初學筆記系列 第 20

Day19 TensorFlow.js 即時物件辨識(背後的技術)

  • 分享至 

  • xImage
  •  

前兩天都是直接實作,今天回來看背後的技術。
這次的Model是根據SSD(Single Shot MutilBox Detector)
然後因為一開始看不懂
所以先從最簡單的物件辨識RCNN開始看

基本上物件辨識就是在圖片中找到物體所在位置並標出類別
簡單來說有兩件事要做

  1. 分類
  2. 定位
    如果只要只有要辨識一樣物體的話
    做法其實可以很簡單
    取各種不同大小的框,依序從左上到右下,看哪個框得分最高。
    不過這樣做非常耗時,而且如果要擴增成偵測多個物體,真的會等到天亮。

所以就有RCNN
簡單來說就是先挑好候選的框框
只對候選的框框去算分類與得分
至於怎麼挑框框
論文上是說用的是SelectiveSearch
Selective的簡化版步驟如下

  1. 先用這個論文的方法 (感覺有點離題,這篇我就沒看下去)把圖片分n區
  2. 計算分區的相似度(顏色、紋理、大小….)一次一個進行合併,所以會執行n-1次,得到n-1個合併框,從中挑選
    這個參考的表格1來看Edge Boxes好像是最好的方式,而且也比上一個好理解多了,先做邊緣檢測,接下來看每個框框完全包含完整的邊緣個數,也就是用邊緣代表完整物體,然後只看有包含完整物體的框框。
    不過這樣還是所有挑好的框框都要用CNN去算一遍

所以就有人想出偷懶的辦法
先做CNN再把選好的框框帶進去
就變成了Fast RCNN
這裡面牽扯到一個問題
就是每個框框因為不一樣大,所以論文裡說要透過ROI pooling layer去讓每個框框可以跟接下來的全連接層做連接

接下來就是更偷懶,乾脆把SelectiveSearch取消,直接把選框框的動作交給神經網路(稱為Region Proposal Network)去做,然後框框只有幾種固定比例的大小,稱之為anchors,這樣又變快了,所以也懶得取名,就叫Faster R-CNN

時間不太夠,後面打得有點草,明天再補完整一點,還要再講YOLO,才會到SSD。


上一篇
Day18 TensorFlow.js 即時物件辨識
下一篇
Day20 TensorFlow.js 即時物件辨識(背後的技術)Part2
系列文
Tensorflow.js初學筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言