YOLO_V2教程

自我感觉YOLO_v2检测效果还是可以的,目前的用于检测的yolo,ssd都是还不错的,我将yolo_v2尝试了一下,下面我就说说用法。
yolo_v2下载地址:https://github.com/pjreddie/darknet
https://pjreddie.com/darknet/yolo/官网地址,里面有安装的方法以及步骤可以借鉴
https://pjreddie.com/darknet/install/#cuda必要软件安装的地址
https://pjreddie.com/darknet/imagenet/#reference数据集的地址
下载安装包进行编译

git clone https://github.com/pjreddie/darknet.git
cd darknet
make

编译到make就可以啦
还需要对openc以及gpu的调用的话,需要对makefile文件进行修改:

#######原始#########
GPU=0
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0
#######修改后#########
GPU=1
CUDNN=0
OPENCV=1
OPENMP=0
DEBUG=0

yolo_v2训练好的模型下载:

wget https://pjreddie.com/media/files/yolo.weights

测试一张狗的图片

./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg

Tiny YOLO

wget https://pjreddie.com/media/files/tiny-yolo-voc.weights
./darknet detector test cfg/voc.data cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights data/

实时视频检测以及视频检测
实时视频检测

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights

视屏检测

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

换成自己要检测视频的路径
对于yolo没有提供保存视频的函数,对视频不好保存,因而想了一个办法就是一帧一帧的保存,保存方法

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights /home/ccf/CCF/math_model_2017/D/2017_FuJian/download_video/4p-c3.avi -prefix /home/ccf/CCF/math_model_2017/D/2017_FuJian/test_5/4p_c3_result_person/

这篇博客说可以直接保存,但是我没有弄出来,还望有人搞出来,留个言,博客网址:http://blog.youkuaiyun.com/hrsstudy/article/details/60876451
对于利用yolo训练好的模型只检测人的方法:
修改源代码:
cfg/coco.data

classes= 1     #修改成1
train  = /home/pjreddie/data/coco/trainvalno5k.txt
valid  = coco_testdev
#valid = data/coco_val_5k.list
names = data/coco.names
backup = /home/pjreddie/backup/
eval=coco

examples/detector.c

void run_detector(int argc, char **argv)//该函数中,倒数第三行.line=542
int classes = option_find_int(options, "classes", 1);//最后一个参数修改成1

void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh)函数中
draw_detections(im, l.w*l.h*l.n, thresh, boxes, probs, names, alphabet, 1); //最后一个参数修改成1。line=481

重新编译和测试

make clean
make

对将视频变成单张后,可以将图片组合成demo,组合方式如下(matlab代码):

clear
clc

file_name = '/home/ccf/CCF/math_model_2017/D/2017_FuJian/download_video/6p-c0.avi';        
obj = VideoReader(file_name);     

numFrames = obj.NumberOfFrames;  
for k = 1: numFrames
    frame = read(obj,k);
    %imshow(frame);                
%     gray_frame = rgb2gray(frame);
%     imshow(frame);               
    imwrite(frame,strcat('/home/ccf/CCF/math_model_2017/D/2017_FuJian/test_5/6p_c0/',num2str(k),'.jpg'),'jpg');
end

对于如何训练自己数据我还没有不过大家可以参考这篇博客:
http://lib.youkuaiyun.com/article/deeplearning/57863?knId=1726

### YOLO V2 模型下载与使用教程 #### 1. 模型简介 YOLO V2 是一种实时目标检测算法,旨在解决其前代版本 YOLO V1 中存在的低召回率和定位误差问题[^1]。通过引入多个技巧(tricks),该模型不仅提高了性能,还扩展了可检测类别的数量至超过9000种[^2]。 #### 2. 模型架构特点 YOLO V2 的核心在于 Darknet-19 基础模型的设计以及一系列优化策略的应用。以下是几个关键特性: - **Darknet-19 架构**:由 19 层卷积层和 5 层最大池化层组成,类似于 VGG 和 NIN 的设计思路。每层均加入 Batch Normalization 来提升训练稳定性并减少过拟合[^4]。 - **动态输入尺寸支持**:由于仅依赖于卷积和池化操作,因此能够灵活调整输入图片的分辨率[^3]。 #### 3. 数据集准备 为了实现多类别检测功能,作者采用了 Pascal VOC 和 ImageNet 数据集进行联合训练,并利用 WordTree 方法构建层次化的标签体系[^5]。这使得模型具备跨领域泛化能力。 #### 4. 安装环境配置指南 要运行 YOLO V2 ,需先搭建好开发环境: ##### (a)安装必要的库文件 确保已安装 Python 及相关科学计算框架如 NumPy、TensorFlow 或 PyTorch 。如果计划直接调用官方预编译权重,则推荐选用 OpenCV 进行图像处理任务。 ```bash pip install numpy opencv-python matplotlib tensorflow pytorch torchvision ``` ##### (b)克隆项目源码仓库 访问 Joseph Redmon 提供的 GitHub 页面获取最新版代码资源链接地址 https://github.com/pjreddie/darknet.git 并执行如下命令完成拉取动作: ```bash git clone https://github.com/pjreddie/darknet.git cd darknet make ``` 注意:上述步骤假设读者熟悉 Linux/MacOS 终端操作;对于 Windows 用户而言可能需要额外设置 MinGW 工具链或者切换到 WSL 子系统下继续后续流程。 #### 5. 预训练权值加载方式说明 Joseph Redmond 开放共享了一套基于 COCO 数据集预先学习得到的结果参数可供快速验证效果之用,请前往 http://pjreddie.com/media/files/yolov2.weights 下载对应二进制格式文档存放到本地路径 ./backup/ 文件夹内部即可自动识别读入。 加载完成后可通过修改 cfg/yolo-voc.cfg 配置项自定义测试选项比如 batch size 设置为 1 表示单张推理模式等等细节参见 README.md 文档描述内容。 #### 6. 推理演示脚本编写实例 下面给出一段简单的 Python 调用接口用于展示如何加载模型并对新样本实施预测分析工作流逻辑: ```python import cv2 from utils import load_class_names, plot_boxes_cv2 from yolov2 import detect_objects_yolo_v2 if __name__ == '__main__': image_file = 'data/dog.jpg' weight_file = './backup/yolov2.weights' config_file = 'cfg/yolo-voc.cfg' class_names = load_class_names('data/voc.names') img = cv2.imread(image_file) boxes, scores, classes = detect_objects_yolo_v2(img, weight_file, config_file) result_img = plot_boxes_cv2(img, boxes, scores, classes, class_names) cv2.imshow("Detection Results", result_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此段程序片段实现了从加载权重直至可视化标注框全过程封装好的函数调用形式便于初学者理解掌握整个管道运作机制。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值