五月婷婷欧美视频_少女频道在线观看高清_欧美日韩视频一区二区三区_7777精品伊久久久大香线蕉语言

首頁 > 機器人資訊 > 三分鐘搞懂深度學習:物體的識別和檢測,以“找椅子”為例

三分鐘搞懂深度學習:物體的識別和檢測,以“找椅子”為例

日期:2019-03-05   人氣:  來源:互聯網
簡介:為什么選擇椅子問題? 問題簡單化:在清晰的圖像中進行椅子識別 進一步的挑戰:找到椅子的位置 一個先進的對象識別技術YOLO概述 將YOLO應用于椅子識別 面臨的挑戰以及未來將采取的步驟 為什么選擇椅子問題? 首先我將闡述我為什么想要在一張照片中數椅子。……

為什么選擇椅子問題?

問題簡單化:在清晰的圖像中進行椅子識別

進一步的挑戰:找到椅子的位置

一個先進的對象識別技術YOLO概述

將YOLO應用于椅子識別

面臨的挑戰以及未來將采取的步驟

為什么選擇椅子問題?

首先我將闡述我為什么想要在一張照片中數椅子。

在AnalyticsVidhya的辦公室里,通常會有10到15個人。但到了夏天,實習生們就會涌入我們的辦公室。所以,如果我們要在夏天開全員大會,機器人維修,我們就必須要從其他房間里拉出所有空的椅子。

我是一個特別懶的人,所以我想,有沒有一種算法能夠直接告訴我們哪間房間有空閑的椅子。這樣一來,我們就不用挨個房間找椅子了,省時又省力。

這看上去是個再簡單不過的問題,但我可以用它來嘗試我獲得的新技能。深度學習能夠解決這個問題嗎?老實說,我也不確定深度學習究竟能不能用來解決這一問題,但是試一下總沒有壞處,不是嗎?

問題中需完成的任務

既然你已經了解了我們需要解決的問題,那么接下來我會向你介紹我解決問題的過程。我會把這個問題分解為四個不同的任務

假如我們有一個房間的視頻資源,那么在視頻中有沒有出現一把椅子?

如果視頻中出現了椅子,那么這把椅子在房間的什么位置呢?

這把椅子是否被占用了?如果有未被占用的椅子,那么未被占用的椅子數量是多少呢?

我們應該從哪間房間里搬空椅子?

我決定先解決一個相對簡單的問題,然后再嘗試解決更復雜的問題。循序漸進,一步步達到我的目標。這也是我將這個問題分解為四個不同的任務的原因。在本文,我將詳細介紹前兩個任務的完成過程;在后續文章中,我會繼續介紹后兩個任務的完成過程。

問題簡單化:在清晰的圖像中進行椅子識別

解決椅子問題的第一步,也是最簡單的一步,就是判斷圖片中的房間內是否有椅子。現在,我將這個問題進一步簡化我將網絡對視頻資源的需求忽略,給網絡輸入了我拍攝的幾張照片。

假設我給你兩張照片,你能告訴我哪一張照片中有椅子嗎?

答案是第一張,而你究竟是怎么知道的呢?

因為你見過椅子很多很多次了,所以對你來說判斷圖片里有沒有椅子并不難。換言之,你對于現實中的椅子長什么樣已經有了了解。同樣的,我們可以訓練一個神經網絡,讓網絡幫我們完成這個識別的工作。

順便提一下,我們之所以使用神經網絡而不用其他的算法,是因為神經網絡是在圖像處理問題方面最強大、最先進的技術。

所以,我將一個經過ImageNet數據集預訓練的神經網絡應用到這些圖像上。

但是當我讓模型識別圖像中的對象時,出現了一個問題它不能準確地分別圖像中的對象。例如,下圖是模型針對圖像的輸出結果。

[[('n03179701','desk',0.56483036),('n03337140','file',0.14689149),('n04550184','wardrobe',0.03918023)]]

它將圖片中的椅子錯誤地判斷成了書桌。這樣的結果實在令人很失望,因為書桌和椅子的相似度不高,按理來說是非常容易區分的。

解決椅子還是書桌的問題

正如我在之前的文章中提到的,每當我在建立神經網絡時遇到問題,我就會逐步解決這個問題。我會將每個步驟列成一個清單:

第一步:檢查網絡架構

第二步:檢查神經網絡的超參數

第三步:檢查網絡的復雜性

第四步:檢查輸入數據的結構

第五步:檢查數據的分布

在一番檢查評估之后,我發現模型的圖像輸入是不正確的,因為我沒有正確地處理圖像的縱橫比例。所以,為了解決這個問題,我添加了一個自定義代碼,該自定義代碼之前在GitHub上的一個keras問題中出現過。更新的圖像如下圖:

[[('n02791124','barber_chair',0.77817303),('n03179701','desk',0.090379775),('n03337140','file',0.033129346)]]

處理完這個問題以后,模型就能開始正常地工作,輸出正確的結果了。

進一步的挑戰:找到椅子的位置

現在,我們已經判斷出了圖像中有一把椅子,那么接下來我們就要識別這把椅子在什么位置。除了這把椅子,我們還要識別出圖像中的人。我們需要通過識別這個人來判斷這把椅子是否被占用了。這兩個任務(任務二和任務三)將有助于我們解決和處理更大的任務,判斷作這把椅子是否被占用了。

與前面的任務一樣,我們將使用一個預訓練的網絡,這個網絡將給我們提供一個可接受的分數。目前,YOLO網絡是對象檢測的最佳模型,它能夠實時地展示相當不錯的性能。在本文,我對YOLO網絡做了簡單的介紹。下面,我們來看看如何利用YOLO解決這個問題。

使用YOLO進行椅子檢測

在系統中設置YOLO網絡,我們可以按照以下簡單的步驟:

第一步:

gitclonehttps://github.com/pjreddie/darknet

cddarknet

make

第二步:

wgethttps://pjreddie.com/media/files/yolo.weights

用YOLO來解決我們的問題,你需要輸入以下指令,并且提供你自己圖像的位置

./darknetdetectcfg/yolo.cfgyolo.weights//data/image.jpg

在我們的圖像上應用了YOLO之后,我發現其結果非常不錯。下面是一些例子:

面臨的挑戰以及未來將采取的步驟

雖然開端進展得非常順利,但是仍然有問題會阻礙這個項目的發展。以下是其中一些問題:

問題一:這個YOLO模型還是會出現一些錯誤,它并不是一個100%正確的模型。比如,在下面的這張圖片中,一個垃圾桶竟然被錯誤地識別成了一個人!

問題二:如果在一張圖像中,一把椅子擋住了另外一把椅子,算法還能識別出這把被擋住的椅子嗎?這是個值得思考的問題。

除了這些可能出現的問題之外,還有一些更加實際的細節需要考慮,比如說,算法推薦一個解決方案需要多長時間?算法需要運行什么類型的硬件?等等。這些都是在把算法作為商品出售之前需要考慮和解決的問題。

同樣,像之前所說的,KUKA機器人維修,在這篇文章中只討論前面兩個任務,還沒有涉及到后面兩個任務。那么,庫卡機器人,接下來的任務就是計算出房間內的椅子數量,然后建立起一個端到端的產品。

尾注

本文內容涵蓋了圖像中的物體檢測和識別,其中的物體就是椅子。針對物體識別,我們用了一個簡單的預訓練的模型來識別圖像中的物體。另一方面,針對物體檢測,我們使用了YOLO網絡一項非常先進的對象實時檢測技術。

免責聲明:本網部分文章和信息來源于互聯網,本網轉載出于傳遞更多信息和學習之目的。如轉載稿涉及版權等問題,請立即聯系網站所有人,我們會予以更改或刪除相關文章,保證您的權利。
主站蜘蛛池模板: 綦江县| 西昌市| 微博| 平罗县| 延吉市| 嵊泗县| 平定县| 荔浦县| 格尔木市| 平潭县| 无为县| 马山县| 通城县| 安平县| 商都县| 贵港市| 永嘉县| 辽宁省| 长沙市| 黎城县| 旌德县| 沙湾县| 屏边| 长宁区| 浦东新区| 新源县| 洮南市| 大足县| 安仁县| 万源市| 奉节县| 信宜市| 大冶市| 和政县| 涡阳县| 库车县| 弥勒县| 南康市| 印江| 乐亭县| 贵州省|