YOLO学习-API尝试

YOLO-V2实现识别单类

源码修改

修改cfg/voc.data

classess=20 改成 classes = 1
1

修改data/voc.names

只留下person这一类
2

修改examples/detector.c

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

3
2.修改test_detector函数

void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh, float hier_thresh, char *outfile, int fullscreen)
//函数中,第line=604行
draw_detections(im, dets, nboxes, thresh, names, alphabet, l.classes); //l.classes改成 1 

4

重新编译和测试

  1. 编译
make clean
make
  1. 测试
./darknet detect cfg/yolov3.cfg  cfg/yolov3.weights /home/it/Yolo/crop001007.png 

参考文献

YOLO2论文介绍
YOLOV2回顾
YOLO-V2识别单物体
YOLO-V2代码详解
yolo v2文件结构和源码的简单梳理
yolo-v2只识别person
YOLO 9000论文翻译

### 如何在 NanoPi 上部署和运行 YOLO 模型 #### 准备工作环境 为了使NanoPi能够支持YOLO模型的运算,需要安装一系列依赖库以及框架。确保操作系统是最新的,并且已安装必要的构建工具链。 对于基于Debian/Ubuntu系统的NanoPi设备而言,可以通过以下命令来更新软件包列表并安装基本开发工具: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential cmake git pkg-config libopencv-dev python3-pip -y ``` #### 安装 Darknet 或 PyTorch YOLO最初是在Darknet框架下实现的;然而,现在也有许多版本被移植到了PyTorch等其他机器学习平台上。这里提供两种不同的方法来进行YOLO模型的部署[^1]。 ##### 方法一:使用 Darknet 部署 YOLO 如果选择原始的Darknet作为YOLO的工作平台,则需先克隆官方GitHub仓库到本地计算机上,并按照给定说明编译源码文件: ```bash git clone https://github.com/pjreddie/darknet.git cd darknet make ``` 下载预训练权重文件至`darknet/data/`目录内,并通过如下指令测试图片检测效果(假设已经获取了对应配置文件与类别名称表): ```bash ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg ``` ##### 方法二:利用 PyTorch 实现 YOLOv5 的快速入门指南 另一种更现代的选择是采用由Ultralytics团队维护和支持的PyTorch版YOLOv5项目。此方式具有更好的社区活跃度和技术文档质量,在大多数情况下推荐优先考虑这种方法。 首先创建一个新的虚拟环境用于隔离Python包管理器pip所安装的内容,接着激活该环境之后再继续操作: ```bash python3 -m venv yolo-env source yolo-env/bin/activate # Linux/MacOS; Windows用户应执行 `.\yolo-env\Scripts\activate.bat` ``` 随后可以依照下面给出的操作流程完成YOLOv5项目的初始化及其后续处理过程: ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt ``` 最后一步是从网络地址处拉取预训练好的模型参数集,并调用API接口进行目标识别任务尝试: ```python from pathlib import Path import requests import torch from PIL import Image from yolov5 import YOLOv5 model = YOLOv5('yolov5s.pt', device='cpu') # 加载模型 img_url = "https://raw.githubusercontent.com/ultralytics/yolov5/master/data/images/zidane.jpg" image_path = Path("zidane.jpg") if not image_path.exists(): with open(image_path, 'wb') as f: f.write(requests.get(img_url).content) results = model.predict(str(image_path)) print(results.pandas().xyxy[0]) # 打印预测框坐标信息 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

piepis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值