首页 > 其他分享 >Jupyter笔记[4]-目标检测

Jupyter笔记[4]-目标检测

时间:2022-12-29 15:23:51浏览次数:53  
标签:yolov7 YOLOv7 py Jupyter -- 检测 work 笔记 False

需求

在 python 中进行目标检测

Haar级联

Haar 级联 是一种基于特征的对象检测算法,用于从图像中检测对象。Cascade 函数在大量正 负图像上进行训练以进行检测。
该算法不需要大量计算并且可以实时运行。我们可以为动物、汽⻋、自行⻋等自定义对象训练自己的级联函数。
Haar 级联使用 Cascade 函数和 Cascade 窗口。它尝试计算每个窗口的特征并进行正负分类。如果窗口可以是对象的一部分,则为正,否则为负。
Haar 级联可以理解为二进制分类器。它为那些可以成为我们对象一部分的级联窗口指定正 值,为那些不能成为我们对象的一部分的窗口指定负值。

YOLO算法系列

[https://zhuanlan.zhihu.com/p/538808226]
YOLO:v1,v2,v3,v4,v5,v6,v7
YOLO 算法是基于 one-stage 的主流目标检测算法,它不需要 region proposal阶段,可以直接产生目标物体的类别概率和位置坐标值,即输入待检测图像输出就是含有预测框的目标物体的类别概率和位置坐标值信息,真正实现了目标检测端到端的流程。YOLO 算法为了追求更快的检测速度,在检测准确率上做了一定的让步,但随着 YOLO 算法的不断更新迭代和优化,汲取了目前一些优秀的检测算法的优势,YOLO 算法在保持更快速度的同时也取得了较高的检测精度。
YOLOv7在5FPS到 160 FPS 范围内的速度和准确度都超过了所有已知的物体检测器,YOLOv7 在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器,并且在 GPU V100 上 30 FPS 或更高的所有已知实时目标检测器中具有最高的准确度 56.8% AP。
YOLOv7论文:[https://arxiv.org/abs/2207.02696]
YOLOv7源码:[https://github.com/WongKinYiu/yolov7]
YOLOv7架构图[https://zhuanlan.zhihu.com/p/543743278]

配置环境

[https://blog.csdn.net/qq_44824148/article/details/125736620]

#换源
pip install pqi
pqi use ustc
#正式安装
pip install yolov7
mkdir -p ~/work/temp/YOLOv7
cd ~/work/temp/YOLOv7
git clone https://github.com/WongKinYiu/yolov7.git

新建weights文件夹,放入[https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt]权重文件
修改yolov7-main/utils/wandb_logging/wandb_util.py

'''
try:
    import wandb
    from wandb import init, finish
except ImportError:
    wandb = None
'''
#不要登录wandb
wandb=None


测试

下载COCO数据集

由于网络不畅,所以需要手动操作
按照yolov7-main/scripts/get_coco.sh的指示,

#!/bin/bash
# COCO 2017 dataset http://cocodataset.org
# Download command: bash ./scripts/get_coco.sh

# Download/unzip labels
d='./' # unzip directory
url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
f='coco2017labels-segments.zip' # or 'coco2017labels.zip', 68 MB
echo 'Downloading' $url$f ' ...'
curl -L $url$f -o $f && unzip -q $f -d $d && rm $f & # download, unzip, remove in background

# Download/unzip images
d='./coco/images' # unzip directory
url=http://images.cocodataset.org/zips/
f1='train2017.zip' # 19G, 118k images
f2='val2017.zip'   # 1G, 5k images
f3='test2017.zip'  # 7G, 41k images (optional)
for f in $f1 $f2 $f3; do
  echo 'Downloading' $url$f '...'
  curl -L $url$f -o $f && unzip -q $f -d $d && rm $f & # download, unzip, remove in background
done
wait # finish background tasks

还有就是根据data/coco.yaml
下载[https://github.com/ultralytics/yolov5/releases/download/v1.0/coco2017labels-segments.zip]
解压到yolov7-main/
下载[http://images.cocodataset.org/zips/train2017.zip]
下载[http://images.cocodataset.org/zips/val2017.zip]
下载[http://images.cocodataset.org/zips/test2017.zip]
解压到yolov7-main/coco/images

使用自己的数据集

新建data.yaml文件,配置yolov7的数据集,数据集为 YOLO格式。

train: ~/work/dataset/YOLO-Dataset/train
val: ~/work/dataset/YOLO-Dataset/val 
test: ~/work/dataset/YOLO-Dataset/test

# number of classes
nc: 20
# class names
names: ["Akita_Dog", "Basset_Hound", "Beagle_Dog", "Border_Collie", "Chinese_Shar-pei", "Corgi","English_Cocker_Spaniel","English_Sheepdog","German_Shepherd_Dog","Golden_Hair","Labrador","Pomeranian","Redbone_Coonhound","Saint_Bernard","Samoyed","Schnauzer","Schnauzer","Siberian_Husky","Springer_Spaniel","Tibetan_Mastiff"]

使用--data data.yaml指定使用的数据集

检测detect

cd ~/work/temp/YOLOv7/yolov7-main
git config --global --add safe.directory /home/jovyan/work
#使用--device cpu指定使用cpu
python detect.py --weights weights/yolov7.pt --conf 0.25 --device cpu --img-size 640 --source inference/images/horses.jpg

效果

在线体验(无需配置环境):[https://huggingface.co/spaces/akhaliq/yolov7]

报错处理

(base) root@e83132972abd:~/work/temp/YOLOv7/yolov7-main# python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg
Namespace(weights=['yolov7.pt'], source='inference/images/horses.jpg', img_size=640, conf_thres=0.25, iou_thres=0.45, device='', view_img=False, save_txt=False, save_conf=False, nosave=False, classes=None, agnostic_nms=False, augment=False, update=False, project='runs/detect', name='exp', exist_ok=False, no_trace=False)
YOLOR 

标签:yolov7,YOLOv7,py,Jupyter,--,检测,work,笔记,False
From: https://www.cnblogs.com/qsbye/p/17012588.html

相关文章

  • 【深入理解LTE-A】学习笔记 - 上行同步过程
    1、为什么需要上行同步正交多址接入技术要求:不同UE的来自同一子帧但不同频域资源RB的信号到达enodeb的时间是对齐的,为了保证不同的UE到达nodeb后不会互相干扰,nodeb必须要......
  • Android笔记--图像显示
    imageView具体实现:注意:图片名称应当为小写的英文字母与数字的结合,当然,二者可以只存在其一图片的放置的比例:(通过scaleType属性设置)ImageButtonImageButton和Butto......
  • OpenCV自学笔记13. 训练自己的分类器
    训练自己的分类器本小节使用的图片为:最近在项目中遇到了一个问题,需要识别图像中的红色圆形。Hough变换的效果还可以,但是存在计算量大等问题,因此,还需要一种更为准确的方法,识......
  • 超全面的JavaWeb笔记day23<AJAX>
    AJAXAJAX概述1什么是AJAXAJAX(AsynchronousJavascriptAndXML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传......
  • computational complexity笔记
    thecomputationalmodel最初的目标是构造一个计算的模型。这个模型可以看作一个集合,这个集合中的每个元素相当于某一个具体问题的解决方案,也就是一个“程序”;这个集合整......
  • 物体检测中的评价指标
    对于一个检测器,我们需要制定一定的规则来评价其好坏,从而选择需要的检测器。对于图像分类任务来讲,由于其输出是很简单的图像类别,因此很容易通过判断分类正确的图像数量来进行......
  • LPCG:用激光点云指导单目的3D物体检测
    本文推荐浙大团队的一项研究成果:LPCG:LidarPointCloudGuidedMonocular3DObjectDetection,该论文被ECCV2022接收。LPCG:用激光点云指导单目的3D物体检测如果用激光点云......
  • 17篇点云处理综述-点云语义分割、点云物体检测、自动驾驶中的点云处理……
    三维点云是最重要的三维数据表达方式之一。从技术角度看,在三维重建、SLAM、机器人感知等多个领域,三维点云都是最简单最普遍的表达方式,因为三维点云直接提供了三维空间数据,而......
  • 笔记本默认设置125%或者150%缩放,导致布局错乱的解决方法
    目录一:为什么会出现有这个问题?二:有什么解决方案?三:vue项目utils下新建js四:全局导入App.vue五:重新进入项目六:注意事项一:为什么会出现有这个问题?因为现在很多14寸......
  • 现代通信理论与新技术 PPT笔记整理
    文章目录​​现代通信理论与新技术​​​​绪论​​​​概述​​​​卫星通信简介​​​​光纤通信简介​​​​移动通信简介​​​​光纤传输网技术​​​​基本概念​​​......