IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Day 14 - 安装与执行 YOLO -> 正文阅读

[人工智能]Day 14 - 安装与执行 YOLO

Day 14 - 安装与执行 YOLO

介绍影像辨识的处理流程 - Day 10 有提到 YOLO 模型是由 Joseph Redmon 所提出,而到了 YOLOV4 后才换成另外一群人继续发展,YOLOV4 的作者是 Alexey Bochoknovskiy, Chien-Yao Wang, 与 Hong-Yuan Mark Liao,YOLOV5 的作者 Glenn Jocher

安装 YOLO

今天会将 YOLOV3 安装在 Amazon Linux 2,首先从 Joseph Redmon 所建立的 Darknet 进入安装步骤,首先去 darknet 的 github 官网下载套件,接着修改 Makefile 编译组态档,将 GPU,CUDNN 打开,因为这个版本的 AMI 已经有安装 CUDA 等驱动程式,此外还要设定 GPU 架构,因为 gx4n 这类 EC2 使用的是 Tesla T4 的 GPU,所以要去查相对应的架构,可以在 Matching CUDA arch and CUDA gencode for various NVIDIA architectures 这个网站中查到,下图中一个显示 Makefile 的内容,一个透过指令来查 GPU 的使用状况。

git clone https://github.com/pjreddie/darknet.git
cd darknet
# 检查 GPU 的型号与记忆体容量
nvidia-smi
# 修改 Makefile 编译组态档
vi Makefile
make

Makefile

GPU=1 # enable GPU
CUDNN=1 # enable CUDNN
OPENCV=0
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52]\
      -gencode arch=compute_75,code=[sm_75,compute_75]
# for Tesla T4

在这里插入图片描述
图 1、修改 Makefile 设定

在这里插入图片描述
图 2、检查 GPU 的型号与记忆体容量

执行 YOLO

执行 yolov3 演算法,用来辨识 dog.jpg 这张图片,使用的是事先训练好的模型 yolov3.weights,采用 cfg/yolov3.cfg 的组态设定。

# 下载预先训练好的权重模型
wget https://pjreddie.com/media/files/yolov3.weights
# 注意一下执行的所在文件夹应为 /home/ec2-user/fishRecognition/fishsite/darknet
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

下图中可以看出来,总共辨识出三种物件,分别是狗、卡车跟脚踏车,所花的辨识时间为 0.0934 秒,主要是因为有开启 GPU。

在这里插入图片描述
图 3、利用预先训练好的模型来辨识图片

下图为待预测的图片 data/dog.jpg。

在这里插入图片描述
图 4、待预测的图片

下图为预测后的图片,预设会存为 predictions.jpg。

在这里插入图片描述
图 5、预测后的图片

而之所以会辨识为 dog, truck, bicycles,是在 cfg/coco.data 内定义的。

使用 Python 执行 YOLO

我们这里用的方法并不是全部用 Python 重写一遍,而是在 Python 中呼叫 c 语言所提供的呼叫介面,存取 libdarknet.a 这个静态函式库。

darknet 已经将 Python 呼叫 C 语言函式库的介面写好了,放在 python/darknet.py 这个档案里,唯一需要修改的是将 154 行中的语法改成 Python 3的语法,如下图所示。

在这里插入图片描述
图 6、修改 darknet.py 的代码

接着撰写 fishRecognition.py 这个档案,就是把命令列中的参数,都直接放到 Python原始码内就可以。最后呼叫 dn.detect 方法来进行预测。

fishRecognition.py

# 引入 python/darknet.py 
import python.darknet as dn
from datetime import datetime

print('load view model')
net = dn.load_net(str.encode("./cfg/yolov3.cfg"),
                  str.encode("./yolov3.weights"), 1)
meta = dn.load_meta(str.encode("./cfg/coco.data"))
print('start to predict...\n')
n = datetime.now()
r = dn.detect(net, meta, str.encode("./data/dog.jpg"))
print(r, '\n', datetime.now()-n)

下图是执行结果,不只是得到每个物件的名称,准确度,还有方块框的座标,最后一个是我们写来判断预测所花的时间,约 0.11 秒

在这里插入图片描述
图 7、使用 Python 语法呼叫 darknet 函式库

参考资料

  • YOLOv5 Documentation, https://docs.ultralytics.com/
  • Darknet, https://github.com/pjreddie/darknet
  • Installing Darknet, https://pjreddie.com/darknet/install/
  • Matching CUDA arch and CUDA gencode for various NVIDIA architectures, https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
  • Calculating Time Difference, https://stackoverflow.com/questions/3426870/calculating-time-difference
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:23:44  更:2021-10-28 12:25:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:46:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码