无须搭建环境只需十分钟使用Google Colab平台,基于YOLOv4和Darknet来实现的物体检测

网友投稿 908 2022-05-30

@Author:Runsen

YOLO

最近,了解计算机视觉的都知道YOLO 很火,从2016年的v1版本开始到现在的v5,YOLO 是一种实时目标检测算法,算法模型不需要训练,直接用就可以了。YOLO 是英文You Only Look Once的缩写。

You Only Look Once说的是只需要一次CNN运算,Unified指的是这是一个统一的框架,提供end-to-end的预测。

基于Pytorch实现的YOLOV5的官方Github

darknet

目前关于目标检测四大开源神器,分别是Detectron2、mmDetection、darknet和SimpleDet。‘

Darknet是一个用C和CUDA编写的开源的神经网络框架。安装起来非常快速、简单,并同时支持CPU和GPU。源码托管在github,

darknet和yolo的关系,就像和tensorflow和yolo的关系,torch和yolo的关系一样。你也会听说基于YOLOv4和tensorflow来实现的物体检测。

在这里,我选择基于YOLOv4和Darknet来实现的物体检测。

如果需要准备darknet运行环境:cuda、cudnn,

opencv三者很复杂。所以直接使用Google Colab平台,这样会节省很多难度。

Google Colab

Google Colab 是一个免费的 Jupyter 环境,用户可以用它创建 Jupyter notebook,提供免费的 GPU

十分钟实现

在这里,我们就开心新建一个Jupyter notebook

点击笔记本左上方的“编辑”,选择GPU

下一步就是克隆和构建Darknet

在官方文档中,有对应的教程来[编译Darknet](,选择是Linux平台

在Linux上进行编译(使用make)

只需make在darknet目录中进行即可。(您可以尝试在Google Colab的云链接中编译并运行它(按左上角的“在操场上打开”按钮)并观看视频链接)制作之前,您可以在Makefile:链接中设置此类选项

这个视频就是本次博文的所有内容。

!git clone https://github.com/AlexeyAB/darknet %cd darknet !sed -i 's/OPENCV=0/OPENCV=1/' Makefile !sed -i 's/GPU=0/GPU=1/' Makefile !sed -i 's/CUDNN=0/CUDNN=1/' Makefile !sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile # verify CUDA !/usr/local/cuda/bin/nvcc --version !make

执行make的过程有点久,但是没有问题。

无须搭建环境,只需十分钟使用Google Colab平台,基于YOLOv4和Darknet来实现的物体检测

下一步,下载经过预先训练的YOLOv4权重

YOLOv4已经在coco数据集中进行了训练,该数据集可以预测80个类。 我们将获取这些预训练的权重,以便我们可以在这些预训练的类上运行YOLOv4并进行检测。

!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights

下面代码是实现具体的预测和图片上传

import cv2 import matplotlib.pyplot as plt %matplotlib inline # define helper functions def imShow(path): image = cv2.imread(path) height, width = image.shape[:2] resized_image = cv2.resize(image,(3*width, 3*height), interpolation = cv2.INTER_CUBIC) fig = plt.gcf() fig.set_size_inches(18, 10) plt.axis("off") plt.imshow(cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB)) plt.show() # use this to upload files def upload(): from google.colab import files uploaded = files.upload() for name, data in uploaded.items(): with open(name, 'wb') as f: f.write(data) print ('saved file', name) # use this to download a file def download(path): from google.colab import files files.download(path)

当下载完了YOLOv4权重,会在Darknet文件夹中。

Darknet现在已构建,可以在云中使用YOLOv4来运行检测! 您可以通过单击此处了解预训练的YOLOv4权重可以检测哪些类别

!./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg imShow('predictions.jpg')

!./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/eagle.jpg imShow('predictions.jpg')

在此,我上传一张学校的图片

感想:感觉Google Colab平台很强大,人工智能领域很高深,还有自己很水,只会用轮子。

参考

YOLOv4 in the CLOUD: Install and Run Object Detector (FREE GPU)

机器学习 深度学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云驻共创】消息队列(mq)是什么?
下一篇:多个库,多条路,Python 到底有多少命令行参数解析库?
相关文章