教女友學會keras-yolov3目標檢測詳解——適合新手

現在網上能找到的博客我現在看起來很明白,雖然講的很詳細,但是對於幾天前的我真的看不明白,因爲新手會遇到各種各樣毫無徵兆的問題,所以我決定寫一篇面向新手的如何去使用 yolo 和如何去做自己的數據集來訓練屬於自己的模型。因爲我也是新手,所以不說原理,只談操作方法。

2020/5/30:
近日每天都有十幾個很明顯的小號加羣,而且有的大號進羣竟然打廣告和賣不良物品,經我和羣友討論後,加羣需要1元錢,但是進羣后我會將錢退還給大家,只是爲了過濾一些不好的人。

因爲東西很雜,我會把小東西分出去寫,並且在本文中附上鍊接。

一、準備工作

1、事件前言:

簡單介紹下情況,本人本科二年級,機器學習小白,操作系統:windows10

前陣子用 matlab 做圖像識別項目時發現了 yolov3 算法,覺得很有意思,但是無奈當時還沒有基於matlab 的版本(聽說現在有了),所以就用 python 運行,我的電腦裏有 python_3.7、anaconda_3.6、pycharm。

有心人應該可以發現我大概幾天前的博客都是在凌晨一點發的,當時幾乎每天都弄到凌晨三點多去配置環境(新手運行報錯的原因幾乎都是版本的兼容性問題)。

不過經過三天左右的時間,我解決了無窮多的報錯之後,終於把 yolo 在 anaconda 和 pycharm 中成功運行,而且在昨晚 10:30分 成功訓練出了自己標註的數據集的模型。

所以在接下來的幾天,我會站在新手的層面上解釋我使用 yolo 的過程。

2、需要的文件:

1、yolov3源代碼:github_keras-yolo3

2、權重文件:官網_yolov3.weights (點擊直接下載)或者 我的百度網盤文件 鏈接:

https://pan.baidu.com/s/1YD5dtSrEkcBO0PRHO7eLlw 
提取碼:1uub 

3、python 或 anaconda 或 pycharm
注意:版本需要在3.7以下,3.7版本不支持 tensflow 的庫

3、python的環境配置:

很多的庫之間都會存在兼容性問題,如果你運行中出現的報錯不常見,或者一個錯誤接着一個錯誤,那麼八成是配置的庫存在兼容性問題,把庫的版本換了就行

下面介紹一下重要的需要配置的庫的版本:

庫名稱 版本
tensorflow-gpu 2.1.0
keras 2.2.4
tensorflow (可有可無) 1.12.0
Pillow 5.1.0
matplotlib 2.2.2
ffmpeg 1.4
opencv opencv-contrib-python

建議使用鏡像源下載,下載的方法可以參照我的這篇博文:

anaconda 配置 yolov3 環境(該文章中的版本也可以,但是最好換成我上面表格中寫的)

大家也可以看下我的 python 的各個庫的配置:python絕對兼容的庫配置——機器學習
(建議大家保留一份,萬一哪天不小心改了一個庫的版本,很可能就會導致一系列的問題,這裏的版本不存在兼容性問題)
.
.

二、正式開始yolo之旅

1、用官方權重識別圖像

接下來先教大家去用官方的權重文件 yolov3.weights 去識別圖像

先用 pycharm 或 spyder 打開 keras-yolo3 文件夾,用 pycharm 或 spyder 是爲了看文件夾更方便,直接在 anaconda 裏運行也是可以的

這裏用 pycharm 先演示一下:
在這裏插入圖片描述
打開文件後是這樣的。

1、我們將下載的 yolov3.weights 文件放在 keras-yolo3-master 文件夾下:
在這裏插入圖片描述
2、把 yolov3.weights 文件轉換成 keras 適用的 h5 文件

首先點擊左下方的 Terminal (和IDLE一個功能,就是命令行)

輸入 python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
在這裏插入圖片描述
在這裏插入圖片描述
等待一會。。。直到命令行顯示 Saved Keras model to model_data/yolo.h5

就可以看到文件夾的 model_data 中多了個 yolo.h5 文件
在這裏插入圖片描述
3、在文件夾下添加一個啓動 yolo 函數的代碼

在文件夾下新建一個py文件,我取名爲 yolostart.py ,代碼如下:

from yolo3.model import yolo_body
from keras.layers import Input
from yolo import YOLO
from PIL import Image

yolo = YOLO()

while True:
    img = input('Input imagename:')
    try:
        image = Image.open(img)
    except:
        print('Open Error!')
        continue
    else:
        rel_image = yolo.detect_image(image)
        rel_image.show()
yolo.close_session()

在這裏插入圖片描述
4、在文件夾下新建名爲 img 的文件夾,裏面放想要進行識別的圖片
在這裏插入圖片描述
5、運行 yolostart.py

運行 yolostart.py 文件

提示:Input imagename:
在這裏插入圖片描述
現在輸入想要識別的圖片的文件路徑,這裏我輸入 img/q.jpg(識別 img 文件夾下名爲 q 的 jpg 格式的圖片)
在這裏插入圖片描述

在這裏插入圖片描述
成功識別出圖上人物

現在運行人數較多的圖片試一下:
在這裏插入圖片描述

2、訓練自己的數據集模型

time:3/22
這篇先發,我學校的作業還沒寫,
我先把作業寫了,再回來補下面的東西
。。。
見諒

Time:2020/3/23/22:19
我回來啦:

介於訓練自己的數據集模型比這篇文章的兩倍還要長,我就將它化爲一篇文章來寫了,很詳細,均是我剛剛親自一步步操作的,有任何問題均可以提出

文章鏈接:keras-yolov3目標檢測訓練自己的模型詳解

總結:

文章中有任何問題都可以直接評論,我一般都在

趁着我剛剛解決好多的報錯,腦子裏還有記憶的時候趕快問,我怕我時間久了沒法回答你們一些很生僻的報錯了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章