深度學習“吃雞外掛”——目標檢測 SSD 實驗
來自:魏鴻鑫
原文連結:https://zhuanlan.zhihu.com/p/32714614
“臥槽,又被 LYB 幹了!” 背後傳來一聲哀嚎。
哈哈,看來,沉迷吃雞的室友又被戒網癮了。作為一個充滿著正義的 LYB 的遊戲,這人不長點眼力還真的不行啊。不過這時候一張圖片吸引了我的興趣:
網易《荒野行動》的車輛檢測
能識別出視訊中的汽車和人,這,不是外掛麼?想到專業制裁 LYB 們的透視掛,這波我很強好吧。為探祕這 “外掛” 效果有多強,那我就來複現這個深度學習界的 “吃雞掛”——SSD 目標檢測。
SSD 目標檢測介紹
SSD 是一種 Object Detection 方法。本文的原始碼是基於論文 SSD: Single Shot MultiBox Detector(https://arxiv.org/abs/1512.02325 ),實現的 keras 版本。
該文章在既保證速度,又要保證精度的情況下,提出了 SSD 物體檢測模型,與現在流行的檢測模型一樣,將檢測過程整個成一個 single deep neural network。便於訓練與優化,同時提高檢測速度。 SSD 將輸出一系列離散化(discretization)的 bounding boxes,這些 bounding boxes 是在不同層次(layers)上的 feature maps 上生成的,並且有著不同的 aspect ratio。
使用 RussellCloud 復現
做深度學習的,大家都知道最糾結的莫過於配置環境了。那麼多框架那麼多庫那麼多版本,稍有不注意,成倍的時間都花在踩坑上了。這在做復現的時候尤為明顯,我不過是想跑一下別人的程式碼看看效果,結果完全搞不定。
使用 RussellCloud,輕鬆搞定環境問題,要啥,寫個 requirement 就行了!
復現前準備:
註冊 RussellCloud 賬號
(註冊邀請碼可至論壇跟帖求助獲取,每位已經註冊的使用者也有五枚好友邀請碼)
安裝 russell-cli 終端工具
$ sudo pip install -U russell-cli
Clone 專案程式碼,Git 地址 RussellCloud/SSD_keras
# clone程式碼 $ git clone https://github.com/RussellCloud/SSD_keras.git
使用命令列登入:
# 使用russell login命令 $ russell login
輸入 y,網頁登入後在網頁端拷貝賬戶的 Token,貼上進終端,回車。如果你使用 Windows 的命令列,可能會出現貼上不進的情況,請右鍵視窗貼上(或者點選左上角圖示)。
成功登入輸出:
Login Successful as XXX
新建專案:
來到 RussellCloud 主頁,進入控制檯,新建一個專案。專案名隨便起一個,很多都可以不填,比較重要的是預設容器環境一定要選擇:keras 。
RussellCloud 建立專案頁
初始化專案:
專案建立完成後記得在專案主頁複製概覽 ID,用於專案初始化。
# 繫結遠端專案,此處<project_id>是在網頁上覆制的專案概覽 ID $ russell init --id <project_id>
初始化成功輸出:
Project "XXX" initialized in current directory
執行專案:
初始化完成後我們就可以用 russell run 命令執行專案了,這裡我們專案下實現的是一個 IPython Notebook 工程,所以我們要使用 Jupyter 模式來啟動我們的專案。
# russell run 以Jupyter模式啟動專案 $ russell run --mode jupyter --data df2750d1f1624857a27c7802494c6e39:model
成功執行 task 輸出:
RUN ID NAME VERSION -------------------------------- ------------------ --------- 780a8e053f2244cb9ea03faabc9f2694 RussellCloud/ssd:1 1 Setting up your instance and waiting for Jupyter notebook to become available ... Path to jupyter notebook: http://cpu.russellcloud.com/notebook/780a8e053f2244cb9ea03faabc9f2694/ To view logs enter: russell logs 780a8e053f2244cb9ea03faabc9f2694
然後我們就會瀏覽器自動開啟一個頁面,這就進入到了我們的 Jupyter 環境下。
線上的 jupyter
然後我們可以看到我們所有的專案檔案都展現在這個網頁中了,當然我們還有掛載的 SSD_Weight 資料集在 / input/model 目錄下沒有顯示出來。接下來我們就是開啟這個 SSD.ipynb 開始執行啦!不過這裡的程式碼有一些目錄還還沒有對應改好哦,所以我們這裡按 cell 執行時候要及時查錯,把相應的目錄修改好。
成功執行完一遍,OK!
檢測效果演示
小記
“小編你這不是耍我麼,吃雞掛呢?”
當然我是有做測試的啦!只是效果不太理想(哭臉)。先上兩張圖感受一下。
這兩張圖都是來源於《絕地求生:大逃殺》的官方宣傳片。第一張圖算是識別出了人,可是,你識別自己有啥用喂喂喂。雖然玩家面前還有另一個人開著一輛跑車疾馳而來,但是它並沒有識別出來。第二張圖,穿著吉利服的 LYB,結果確實識別出來是一個鳥…… 好吧這還看著是有點像個鳥頭。
我這裡做的都只是一個圖片的目標檢測。如果做視訊的目標檢測,我想它應該能識別出來那輛疾馳而來的車。至於這個吉利服選手,怕是識別不出來了哈哈哈。看來,這個 “吃雞掛” 的功力還遠遠不夠。
但在其他圖片上,這個 SSD 目標檢測還是有不錯的效果的:
檢測出來的小貓咪
參考資料
SSD: Single Shot MultiBox Detector(https://arxiv.org/abs/1512.02325 )
論文閱讀:SSD: Single Shot MultiBox Detector(http://t.cn/RcpBQvu )
kuhung/SSD_keras(http://t.cn/RQzkgR5 )
rykov8/ssd_keras(http://t.cn/Rf9wNaO )
《深度學習 集訓營》5月22日(週二)晚8點開營,BAT專家級講師上課,還原真實工業生產環境,全程實戰!提供GPU環境、考試1v1批改、就業指導及內推,2個月挑戰年薪50萬!掃下方二維碼立即試聽
相關文章
- 深度學習與CV教程(13) | 目標檢測 (SSD,YOLO系列)深度學習YOLO
- 深度學習之目標檢測深度學習
- 深度學習之目標檢測與目標識別深度學習
- 目標檢測之SSD
- 52 個深度學習目標檢測模型深度學習模型
- SSD 目標檢測 Keras 版Keras
- 深度學習之影像目標檢測速覽深度學習
- 深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD深度學習模型ASTCNN
- 深度學習 + OpenCV,Python實現實時視訊目標檢測深度學習OpenCVPython
- 深度學習目標檢測(object detection)系列(六)YOLO2深度學習ObjectYOLO
- 深度學習目標檢測(object detection)系列(五) R-FCN深度學習Object
- 深度學習目標檢測(object detection)系列(一) R-CNN深度學習ObjectCNN
- TF專案實戰(基於SSD目標檢測)——人臉檢測1
- 基於OpenCV和YOLOv3深度學習的目標檢測OpenCVYOLO深度學習
- 深度學習目標檢測(object detection)系列(四) Faster R-CNN深度學習ObjectASTCNN
- 目標檢測演算法學習演算法
- 使用深度學習的交通標誌檢測深度學習
- Pytorch 目標檢測學習 Day 2PyTorch
- 單級式目標檢測方法概述:YOLO與SSDYOLO
- 深度學習 + OpenCV,Python實現實時影片目標檢測深度學習OpenCVPython
- 《基於深度學習的目標檢測綜述》論文獲發表深度學習
- 基於深度學習的計算機視覺應用之目標檢測深度學習計算機視覺
- 深度學習與CV教程(12) | 目標檢測 (兩階段,R-CNN系列)深度學習CNN
- “吃雞”外掛黑產上億 遊戲“寄生者”暴利何來遊戲
- 目標檢測入門系列手冊六:SSD訓練教程
- 52 個深度學習目標檢測模型彙總,論文、原始碼一應俱全!深度學習模型原始碼
- 51 個深度學習目標檢測模型彙總,論文、原始碼一應俱全!深度學習模型原始碼
- 目標檢測
- 深度學習:乳腺x檢測深度學習
- 52 個深度學習目標檢測模型彙總,論文、原始碼一應俱全!(附連結)深度學習模型原始碼
- octobercms 外掛學習 驗證碼
- 深度剖析目標檢測演算法YOLOV4演算法YOLO
- 九、目標檢測
- 【目標檢測從放棄到入門】SSD / RCNN / YOLO通俗講解CNNYOLO
- 深入學習OpenCV檢測及分割影象的目標區域OpenCV
- 【深度學習】像玩樂高一樣拆解Faster R-CNN:詳解目標檢測的實現過程深度學習ASTCNN
- 使用深度學習檢測瘧疾深度學習
- 深度學習之瑕疵缺陷檢測深度學習