日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

yolov3安卓实现_YOLOv3 的 TensorFlow 实现,GitHub 完整源码解析

發(fā)布時(shí)間:2023/12/2 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolov3安卓实现_YOLOv3 的 TensorFlow 实现,GitHub 完整源码解析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來(lái)自華盛頓大學(xué)的 Joseph Redmon 和 Ali Farhadi 提出的YOLOv3 通過在 YOLO 中加入設(shè)計(jì)細(xì)節(jié)的變化,這個(gè)新模型在取得相當(dāng)準(zhǔn)確率的情況下實(shí)現(xiàn)了檢測(cè)速度的很大提升,一般它比 R-CNN 快 1000 倍、比 Fast R-CNN 快 100 倍。

這里附上 YOLOv3 的論文地址:

本文的項(xiàng)目作者是 wizyoung,原 GitHub 項(xiàng)目地址為:

1. 介紹

本文將介紹 YOLO3 的完整 TensorFlow 實(shí)現(xiàn)。可在自己的數(shù)據(jù)集上進(jìn)行完整的訓(xùn)練和驗(yàn)證操作,pipeline 完整。其特點(diǎn)包括:

高效的 tf.data 管道

權(quán)重轉(zhuǎn)換

GPU 提速,無(wú)限制

完整的訓(xùn)練管道

使用 kMeans 算法來(lái)選擇 anchor boxes

多 GPU 同步訓(xùn)練

2. 需求

tensorflow >= 1.8.0(不排除低版本也能工作)

opencv-python

3. 權(quán)重轉(zhuǎn)換

預(yù)訓(xùn)練的 darknet 權(quán)重文件可從下方鏈接下載:

https://pjreddie.com/media/files/yolov3.weights

把下載好后的文件放在 ./data/darknet_weights/ 目錄下,運(yùn)行下面的命令:

然后,轉(zhuǎn)換后的 TensorFlow checkpoint 文件將被保存在 ./data/darknet_weights/ 目錄下。

4. 運(yùn)行 demos

在 ./data/demo_data/ 目錄里有一些圖像和視頻的 demos 可以運(yùn)行。

單個(gè)圖像測(cè)試 demo:

視頻測(cè)試 demo:

結(jié)果展示:

5. 運(yùn)行速度

圖片尺寸為 416×416,論文實(shí)現(xiàn)與我的模型運(yùn)行速度比較如下:

為什么會(huì)這么快呢?我們看一下論文中 ImageNet 分類情況:

6. 模型結(jié)構(gòu)

為了更好地理解模型體系結(jié)構(gòu),可以參考下圖:

7. 訓(xùn)練

首先是數(shù)據(jù)準(zhǔn)備,分為三步。

1)annotation file

在 ./data/my_data/ 目錄下生成 train.txt/val.txt/test.txt 文件。txt 文件中一行表示一張圖片,形式為:圖片絕對(duì)路徑 + box_1 + box_2 + … + box_n。Box 的形式為:label_index + x_min + y_min + x_max + y_max,原始坐標(biāo)為圖片左上角。

例如:

xxx/xxx/1.jpg 0 453 369 473 391 1 588 245 608 268

xxx/xxx/2.jpg 1 466 403 485 422 2 793 300 809 320

注意:每個(gè) txt 文件最后一行為空白行。

2)class_names file

在 ./data/my_data/ 目錄下生成 data.names 文件,每一行代表一個(gè)類別名稱。例如:

bird

person

bike

3)prior anchor file

使用 kMeans 算法來(lái)選擇 anchor boxes:

然后,你將得到 9 個(gè) anchors 和評(píng)價(jià) IOU,把 anchors 保存在 txt 文件中。

準(zhǔn)備完數(shù)據(jù)之后就可以開始訓(xùn)練了。

使用 train.py 文件,函數(shù)參數(shù)如下:

8. 評(píng)價(jià)

使用 eval.py 來(lái)評(píng)估驗(yàn)證集和測(cè)試集,函數(shù)參數(shù)如下:

函數(shù)返回 loss、召回率 recall、精準(zhǔn)率 precision,如下所示:

recall: 0.927, precision: 0.945

total_loss: 0.210, loss_xy: 0.010, loss_wh: 0.025, loss_conf: 0.125, loss_class: 0.050

9. 其它技巧

訓(xùn)練的時(shí)候可以嘗試使用下面這些技巧:

Data augmentation:使用 ./utils/data_utils.py 中的 data_augmentation 方法來(lái)增加數(shù)據(jù)。

像 Gluon CV 一樣混合和 label 平滑。

正則化技巧,例如 L2 正則化。

多尺度訓(xùn)練:你可以像原稿中的作者那樣定期改變輸入圖像的尺度(即不同的輸入分辨率)。

完整代碼請(qǐng)見 GitHub:

參考文獻(xiàn):

https://github.com/YunYang1994/tensorflow-yolov3

https://github.com/qqwweee/keras-yolo3

https://github.com/eriklindernoren/PyTorch-YOLOv3

https://github.com/pjreddie/darknet

總結(jié)

以上是生活随笔為你收集整理的yolov3安卓实现_YOLOv3 的 TensorFlow 实现,GitHub 完整源码解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。