网络协议分析仪tcpdump和wireshark使用

article/2025/10/16 8:59:49

网络协议分析仪

  • 网络协议分析仪介绍
    • 命令行抓包工具:tcpdump
      • tcpdump工具使用
      • tcpdump表达式
      • tcpdump应用示例
    • 图形界面网络分析仪:wireshark
      • wireshark工具使用
        • wireshark捕获数据分析
        • wireshark窗口介绍
        • wireshark过滤规则

网络协议分析仪介绍

网络协议分析仪的作用:

网络协议抓包工具主要用于对网络协议的数据进行捕获,对捕获后的数据的结构及其封装内容进行分析查看,以便了解数据在网络传输时的状态。

  • 对网络协议的数据进行捕获
  • 对捕获的网络协议数据进行分析

网络协议分析仪所处位置:

  • 对于服务器之间的通信数据包抓包,可以选择在网络接口卡上操作
  • 如果需要捕获局域网数据包,需要网络设备的配合,例如使用集线器或交换机(需要完成端口镜像配置)

网络协议分析仪工具分类:

根据抓包工具应用环境的不同,抓包工具可以分为:

  • 命令行抓包工具
  • 图形界面抓包工具

命令行抓包工具:tcpdump

tcpdump特点:

相当于复制了一份网络数据信息,tcpdump并没有拦截数据的发送

工作在网络接口位置,可以直接在终端使用

可以对数据报文进行筛选,且只能抓取流经本机的数据报文

tcpdump工具使用

安装:

# yum provides *bin/tcpdump		=>	查看系统哪个文件提供tcpdump命令
# yum install -y tcpdump	=>	安装tcpdump工具

抓包选项使用:

-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口需要使用 tcpdump -i lo),一旦找到第一个符合条件的接口,搜寻马上结束。可以使用"any"关键字表示网络接口# tcpdump -i ens33-c:指定要抓取的包数量。注意:是最终要获取这么多个包。例如:指定"-c 10" 将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包# tcpdump -i ens33 -c 10-n:对地址以数字方式显示,否则显示主机名,也就是说"-n"选项不做主机名解析# tcpdump -i ens33 -n-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名# tcpdump -i ens33 -nn-N:不打印出host的域名部分。例如tcpdump将会打印"nic"而不"nic.ddn.mil"# tcpdump -i ens33 -N-P:(大写)指定要抓取的包是流入还是流出的包。可以给定值为"in""out""inout",默认为"inout"即流入流出的包都抓取# tcpdump -i ens33 -P in-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,len设置不够可能会产生截断,若出现包截断,输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包处理时间越长,并且会减少tcpdump可缓存的数据包的数量,从而导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好

输出选项使用:

-e:输出的每行中都将包含数据链路层头部信息,例如源mac和目标mac地址# tcpdump -i ens33 -e-q:快速打印输出,即打印很少的协议相关信息,从而输出行都比较简短# tcpdump -i ens33 -q-X:(大写)输出包的头部数据,会以16进制和ascii码两种方式同时输出# tcpdump -i ens33 -X-XX:(大写)输出包的头部数据,会以16进制和ascii码两种方式同时输出,更详细# tcpdump -i ens33 -XX-v:当分析和打印的时候,产生更详细的输出# tcpdump -i ens33 -v-vv:产生比-v更详细的输出# tcpdump -i ens33 -vv-vvv:产生比-vv更详细的输出	# tcpdump -i ens33 -vvv

其他功能选项:

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口号,他们都可以用于"-i"# tcpdump -i ens33 -D-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效# tcpdump -r 数据包文件# tcpdump -r /home/file2.tcpdump=>	或者直接在wireshark上打开,更加直观-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印# tcpdump -i ens33 -nn -c 10 -w /home/file1.tcpdump	=>	将抓到的数据包输出保存到文件中-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取# tcpdump -nn -vvv -e -r /home/file1.tcpdump	=>	读取抓包数据文件

tcpdump表达式

表达式作用:

表达式用于筛选输出哪些类型的数据包,如果给定表达式,只输出表达式为true的包。否则所有数据包都将输出。在表达式中出现的shell元字符建议使用单引号包围

表达式格式:

tupdump的表达式由一个或多个"单元"组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)。
有三种修饰符:

type:指定ID类型

可以给定的值有host/net/port/portrange。例如:“host foo”,“net 128.3(网段)”,“port 20”,“portrange 6000-6008”。默认的type为host

dir:指定ID方向
可以给定的值包括src/dst or dst/src and dst,默认为src or dst。例如:"src foo"表示源主机为foo的数据包,"dst net 128.3"表示目标网络(网段)为128.3的数据包,"src or dst port22"表示源或目的端口为22的数据包

proto:通过给定协议限定匹配的数据包类型
常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。
例如:“tcp port 21”,“udp portrange 7000-70009”

所以一个基本的表达式单元格式为"proto dir type ID"
在这里插入图片描述
操作符:[not]

  • 表达式单元之间可以使用操作符" and / && “、” or / ||"、 " not / ! "进行连接,从而组成复杂的条件表达式。

  • 如"host foo and not port ftp and not port ftp-data"。表示筛选的数据包要满足"主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包"

  • 常用端口和名字的对应关系可在linux系统中的/etc/service文件中找到

优先级:()

  • 使用括号"()“可以改变表达式的优先级,但需要注意的是括号会被shell解释,所以应该使用反斜线”“转义为”()",在需要的时候,还需要包围在引号中

修饰符可省略:

  • 如"tcp dst port ftp or ftp-data or domain“与”tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain"意义相同,都表示包的协议为tcp且目的端口为ftp或ftp-data或domain(端口53)。

除了使用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。

tcpdump应用示例

应用准备:
配置三台主机:

主机名主机ip写法
node110.1.1.10主机A
node210.1.1.11主机B
node310.1.1.12主机C

设置主机名机主机名解析:

# vim /etc/hosts	=>	在node1上的主机hosts文件配置ip与主机名快速解析10.1.1.10 node110.1.1.11 node210.1.1.12 node3通过rsync命令快速复制到其他主机:# rsync -av /etc/hosts node2:/etc/hosts# rsync -av /etc/hosts node3:/etc/hosts

案例:抓取离开或进入主机的数据包(在node1)

命令格式:# tcpdump -i ens33 host 主机B的主机名命令演示:# tcpdump -i ens33 host node2		=>	只抓取进出node2主机的数据包# tcpdump -i ens33 -nn host node2 	=>	只抓取进出node2主机的数据包打开node1另外一个终端去ping 主机B

案例:抓取当前主机与指定主机之间的通信数据包(在node1)

命令格式:# tcpdump -i ens33 -nn host 当前主机名 and 主机B# tcpdump -i ens33 -nn host 当前主机名 and \(主机B or 主机C\)命令演示:当前主机与一台主机:# tcpdump -i ens33 -nn host node1 and node2=>	只抓取当前主机node1与node2之间的数据包通信当前主机与多台主机:# tcpdump -i ens33 -nn host node1 and \(node2 or node3\)	=>	抓取当前主机node1与node2和node3两台主机之间的数据包=>	注意:括号会被shell解释,需要在()前需要添加" \ "进行转

案例:抓取当前主机(A)与其它主机通信IP数据包,但不包含主机node3(在node1)

命令格式:# tcpdump -i ens33 ip host 当前主机名 and not 主机C命令演示:# tcpdump -i ens33 -nn ip host node1 and not node3=>	不抓取当前主机node1和node3之间的通信=>	注意:加入了type类型:"ip"

案例: 抓取当前主机发送的所有数据包(在node1)

命令格式:# tcpdump -i ens33 -nn src host 当前主机名命令演示:# tcpdump -i ens33 -nn src host node1=>	只抓取当前主机node1发送出去的所有数据包=>	注意:加入了dir类型:"src"代表源主机为node1发送出去的请求数据包=>	抓取的是node1发送的请求包假设在node1上抓取node2发送的数据包# tcpdump -i ens33 -nn src host node2=>	只抓取node2发送出去的所有数据包=>	如果1ping2,在node1上tcpdump抓取的是node2返回的数据包=>	看指定的"src"源主机是哪一台

案例: 抓取当前主机(指定主机名)接受的所有数据包(在node1)

命令格式:# tcpdump -i ens33 -nn dst host 当前主机名命令演示:# tcpdump -i ens33 -nn dst host node1=>	只抓取当前主机node1接受到的数据包=>	注意:加入了dir类型:"dst"代表目的主机为node1接受到的数据包=>	假设1ping2,在node1上tcpdump抓取的是node2返回的数据包假设在node1上抓取目的主机node2接受的数据包# tcpdump -i ens33 -nn dst host node2=>	只抓取node2接受的所有数据包=>	如果1ping2,在node1上tcpdump抓取的是node1请求的数据包=>	看指定的"dst"目的主机是哪一台

案例:抓取当前主机与指定主机之间指定协议、指定端口的数据包(在node1)

命令格式:# tcpdump -i ens33 -nn tcp port 22 and host 主机B=>	捕获流经ens33接口当前主机与主机B及其tcp 22端口的所有数据命令演示:# tcpdump -i ens33 -nn tcp port 22 [and host node1]		=>	[]内可加可不加,相当于抓取本地主机协议端口的数据包=>	在当前主机node1上可以不写"and host node1"选项,因为前面"tcp port 22"捕获的就是node1上流经tcp:22端口上的数据包=>	语句代表捕获当前主机node1上所有与其他主机tcp:22端口之间的数据包假设需要捕获当前主机node1和主机node2之间ssh的数据包:# tcpdump -i ens33 -nn tcp port 22 and host node2=>	捕获当前主机node1与node2上tcp:22端口之间的所有数据包=>	不管是在noed1 ssh node2或是node2 ssh node1,都可以捕获到它们之间的数据包=>	注意:但是node1或者node2与其他主机ssh连接,就不能捕获到假设需要捕获当前主机node1和主机node2、主机node3之间ssh的数据包:# tcpdump -i ens33 -nn tcp port 22 and host \(node2 or node3\)=>	代表捕获当前主机node1与node2/node3之间的ssh数据包=>	注意:如果node2和node3之间相互ssh,在当前主机node1上是捕获不到的

案例:抓取本地主机指定协议、指定端口的数据包(在node1)

命令格式:# tcpdump -i ens33 -nn PROTO [DIR] TYPE 命令演示:# tcpdump -i ens33 -nn udp port 123  =>	只抓取当前主机udp协议:123端口与其他主机之间的数据包

案例:抓取指定当前主机与某一网段(例如:192.168)通信的数据包,仅抓取10个(在node1)

命令格式:# tcpdump -i ens33 -nn -c 10  net 网段命令演示:# tcpdump -i ens33 -nn -c 10 net 10.1=>	捕获10个当前主机node1与10.1.0.0/16网段通信的数据包=>	注意:如果当前主机noed1 ping 其他网段,也会抓取。因为node1的地址属于10.1网段当指定dir类型:指定源或目方向时候:# tcpdump -i ens33 -nn -c 10 src net 10.1# tcpdump -i ens33 -nn -c 10 dst net 10.1=> 上面语句捕获当前主机node1与源为10.1网段或目的为10.1网段之间的数据包# tcpdump -i enss -nn -c 10  src net 192.168# tcpdump -i enss -nn -c 10  dst net 192.168=>	上面语句捕获当前主机node1与源为192.168网段或目的为192.168网段之间的数据包

案例:基于协议抓取ping包(在node1上)

命令格式:# tcpdump -i ens33 -c 10 -nn 协议名=>	注意:icmp是网络层协议,tcp、udp是传输层协议,"不能直接抓取应用层协议"命令演示:# tcpdump -i ens33 -nn  -c 10 icmp=>	捕获当前主机node1与其他主机之间的icmp协议之间的数据包

案例:基于协议抓取来自于某一主机的ping包(在node1上)

命令格式:# tcpdump -i ens33 -c 10 -nn icmp and src 某一主机名或IP命令演示:# tcpdump -i ens33 -c 10 -nn icmp and src noed2[10.1.1.11]=>	捕获当前主机node1与node2之间的icmp协议数据包=>	注意:捕获的是源为node2的数据包=>	如果不加src 需要加host,相当于"host" = "src or dst"

案例:基于端口 抓取到某主机某一端口的数据包(在node1上)

命令格式:# tcpdump -i ens33 -nn -c 10  PROTO DIR TYPE命令演示:# tcpdump -i ens33 -nn -c 10  tcp dst port 22=>	捕获当前主机node1与其他主机目的端口为tcp:22的数据包=>	不管是当前主机ssh其他主机或者是其他主机ssh当前主机=>	注意:dir类型:dst可改为src,说明捕获的是源端口为tcp:22的数据包

案例:解析被抓取数据包(在node1上)

命令演示:# tcpdump -i ens33 -c 2 -q -XX -vvv -nn tcp dst port 22=>	解析流经ens33接口,方向为dst,tcp 22端口的数据。取2个,简短显示,并输出包头部信息。

案例:抓取数据包保存至指定名称文件和解析文件中的数据包(在node2上)

命令格式:# tcpdump -i ens33 -nn -w 保存路径 [表达式]命令演示:# tcpdump -i enss33 -nn -w /home/file1.tcpdump=>	捕获流经ens33接口所有数据,写入file.cap文件中# tcpdump -i ens33 -nn -w /home/file2.tcpdump host 10.1.1.11 and tcp port 80=>	node2上安装了apache软件=>	捕获当前主机node2(host 10.1.1.11) tcp 80端口通信数据,使用-w 选项指定将监听到的数据包写入文件中保存=>	当其他主机访问node2主机上的80网页时就会捕获数据包#l 查看捕获到的数据包文件# tcpdump -r 数据包文件# tcpdump -r /home/file2.tcpdump=>	或者直接在wireshark上打开,更加直观

案例: 通过文件指定条件进行数据捕获(在node1上)

把表达式写入文件,通过文件的条件去捕获数据包:# vim condition.txthost 10.1.1.10 and tcp port 22		命令演示:# tcpdump -i ens33 -w /home/file.tcpdump -F condition.txt=>	"-F" 从文件中读取抓包的表达式=>	"-w" 将捕获的数据包保存下来 =>	以上命令是捕获当前主机node1上tcp:22端口相关的数据包

图形界面网络分析仪:wireshark

工作在网络接口位置,可以对数据报文进行筛选,捕获的数据包结构分层清晰易于对数据包进行分析

必须有图形界面配合使用

wireshark工具使用

安装:

# yum install wireshark* -y		=>	加*号可以安装的东西多一点

使用方法:

# wireshark		=>	直接在终端使用命令打开,但是关闭终端wireshark也随之关闭#l 所以建议直接在应用程序的internet中打开

直接在应用程序中打开:在这里插入图片描述

wireshark权限不足解决方法

wireshark捕获数据分析

Wireshark官方用户指南

wireshark窗口介绍

在这里插入图片描述
数据包详细信息介绍:

第一个:在这里插入图片描述
第二个
在这里插入图片描述
第三个
在这里插入图片描述
第四个
在这里插入图片描述
第五个和第六个
在这里插入图片描述

wireshark过滤规则

  • Filter过滤工具栏中填写,Apply应用(或者直接回车应用), Clear清除过滤,

过滤主机IP:

命令格式:# ip.src eq ip		=>	过滤源ip,eq是"等于"的意思# ip.dst eq ip		=>	过滤目的ip# ip.src eq ip1 or ip.dst eq ip2	=>	过滤源ip1或者目的ip2的数据包,注意:or和and是不同的# ip.addr eq ip		=>	源ip或者是目的ip数据,都可以筛选出来

过滤端口:

命令格式:# tcp.port eq 80	=>	找出tcp协议且是80端口的数据包,"eq"等价于"==(比较)"#tcp.port == 80		# tcp.port eq 80 or udp.port eq 80		=>	过滤tcp:80和udp:80的数据包# tcp.srcport eq 80		=>	过滤源端口为tcp:80的数据包# tcp.dstport eq 80		=>	过滤目端口为tcp:80的数据包# tcp.port >= 1 and tcp.port <= 80		=>	表示搜索tcp:1~80的端口数据包

过滤协议:

命令格式:# tcp		=>	直接输入协议名称筛选# udp# arp#l !arp		=>	两者等价,筛选不属于arp协议的其他协议数据包# not arp

http过滤:

命令格式:# http.request.method eq "GET"		=>	筛选HTTP协议"GET"请求的数据包# http.request.method eq "POST"		=>	筛选HTTP协议"POST"请求的数据包# http.request.uri eq "/index.html"		=>	筛选HTTP协议中访问"/index.html"的数据包# http.host eq ip		=>	查看HTTP协议中存在这个ip的数据包

tcp过滤:

命令格式:# tcp.flags		=>	显示包含TCP标志的数据包# tcp.flags.syn eq 0x02		=>	显示包含TCP SYN标志的数据包

过滤mac地址:

命令格式:# eth.src eq mac地址	=>	筛选源Mac地址的数据包# eth.dst eq mac地址	=>	筛选目的Mac地址的数据包# eth.addr eq mac地址	=>	不管是源还是目的mac地址,存在都筛选出来

http://chatgpt.dhexx.cn/article/7jS5YsMh.shtml

相关文章

总结各种物体检测算法

第一&#xff0c;覆盖所有基于区域的目标检测算法&#xff0c;包括&#xff1a;Fast RCNN, Faster-RCNN, Mask RCNN, R-FCN, FPN. 第二&#xff0c; 介绍SSD算法&#xff08;single shoot detectors&#xff09; 第三&#xff0c;介绍所有算法的表现和实现细节。 Part1 我们…

深度学习和目标检测系列教程 13-300:YOLO 物体检测算法

Author&#xff1a;Runsen YOLO&#xff0c;是目前速度更快的物体检测算法之一。虽然它不再是最准确的物体检测算法&#xff0c;但当您需要实时检测时&#xff0c;它是一个非常好的选择&#xff0c;而不会损失太多的准确性。 YOLO 框架 在本篇博客中&#xff0c;我将介绍 YO…

3D物体检测(一)

title: 3D物体检测(一) date: 2020-02-21 16:40:40 categories: 3D物体检测 tags:3D物体检测点云 总结一下在bilibili上看到的基于点云场景的三维物体检测算法及应用,有兴趣的也可以去看看这个视频。 这一部分主要总结一下&#xff0c;结合雷达点云数据和相机采集的二维图像数…

OpenCV-Python视频分析(移动物体检测,物体追踪)

1.概述 该文章介绍OpenCV-Python中关于视频分析的两个主要内容&#xff0c;分别为&#xff1a; &#x1f41f;背景差分法移动物体检测&#x1f41f;Meanshift和Camshift算法物体追踪 PS&#xff1a;视频分析还要一个重要的内容&#xff1a;光流法运动轨迹绘制&#xff0c;在…

百度EasyDL物体检测在安卓上测试

EasyDL:EasyDL定制化模型 1.创建模型。 2.创建数据集&#xff0c;上传图片。 3.标注图片 。 4.训练数据 5.发布模型 6.APP部署测试 7.APP上测试

基于OpenCV实战:动态物体检测

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达最近&#xff0c;闭路电视安全系统运行着多种算法来确保安全&#xff0c;例如面部识别&#xff0c;物体检测&#xff0c;盗窃检测&#xff0c;火灾警报等。我们在运动检测…

【opencv学习】【运动物体检测】

今天学习运动物体检测 一&#xff1a;帧差法 捕获摄像头的运动的手 import cv2 import numpy as np# 如果我们想捕获一些运动的物体&#xff0c;每一帧图像中&#xff0c;不动的部分称之为背景&#xff0c;运动的物体称之为前景 # 假如我们的视频捕捉窗口是不动的&#xff0c;…

K210物体检测(利用Maixpy、在线模型训练、串口通信)

无论从性能还是价格上&#xff0c;K210都给我带来了很多惊喜。搭载了Maixpy的K210开发非常便利&#xff0c;加上Maixhub的加持&#xff0c;使得K210的生态更加完善。Maixpy完全兼容openmv&#xff0c;在拥有openmv的基础上&#xff0c;短时间内就可以上手K210。 目录 前言一、烧…

小样本物体检测

Few-shot Object Detection via Feature Reweighting&#xff08;MetaYOLO&#xff09; 出发点&#xff1a;不同属性以不同的权重组合&#xff0c;可以定义一个类别&#xff0c;所以检测特征是否属于某一类&#xff0c;只要检测特征对属性的响应度就可以。特征 —> 属性 —…

自动驾驶:MOD 移动物体检测概述

MOD全称为Moving Object Detection&#xff0c;中文“移动物体检测”。主要的作用是泊车时&#xff0c;周围有人或物体经过探测区域被检测到给驾驶员声音和视觉提醒。 以NISSAN MOD为例说明下基于环视相机的MOD系统&#xff1a; nissan 官网&#xff1a;​​​​​​Moving O…

UGUI射线检测与普通物体检测

UGUI物体检测与普通物体检测有所不同&#xff08;UGUI射线检测已经被封装好&#xff09;&#xff1a; 1.Graphic Raycaster 主要用于UI上的射线检测&#xff0c;挂有这个组件的物体&#xff0c;必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上)。 Ig…

多物体检测 RCNN

基于R-CNN的物体检测 原文地址&#xff1a;http://blog.csdn.net/hjimce/article/details/50187029 作者&#xff1a;hjimce 一、相关理论 本篇博文主要讲解2014年CVPR上的经典paper&#xff1a;《Rich feature hierarchies for Accurate Object Detection and Segmentation》…

自动驾驶感知——激光雷达物体检测算法

文章目录 1. 基于激光雷达的物体检测1.1 物体检测的输入与输出1.2 点云数据库1.3 激光雷达物体检测算法1.3.1 点视图1.3.1.1 PointNet1.3.1.2 PointNet1.3.1.3 Point-RCNN1.3.1.4 3D-SSD1.3.1.5 总结和对比 1.3.2 俯视图1.3.2.1 VoxelNet1.3.2.2 SECOND1.3.2.3 PIXOR1.3.2.4 AF…

物体检测之YOLO系列

业界对于目标检测的热度只增不减&#xff0c;但目前的框架也难于逾越RCNN系列、SSD、YOLO系列这三座大山&#xff0c;很多新的方法也是在此基础上做一些改进&#xff0c;所以有必要做一些整理&#xff0c;方便自己后续查看&#xff0c;这里先对YOLO系列做一些整理。没看过文章的…

物体检测难点 (多尺度检测, 遮挡与拥挤)

目录 多尺度检测降低下采样率与空洞卷积Anchor 设计多尺度训练 (Multi Scale Training&#xff0c;MST)特征融合尺度归一化: SNIP (Scale Normalization for Image Pyramids)Image Classification at Multiple ScalesData Variation or Correct Scale?Object Detection on an …

点云物体检测简介

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 本文由知乎作者Leon Wu授权转载&#xff0c;不得擅自二次转载。原文链接&#xff1a;https://zhuanlan.zhihu.com/p/81474133 深度学习的开始 人类的大脑是一个神秘的器官&#xff0c;它由无数的神经细胞组成…

物体检测

计算机视觉中目标检测、跟踪、识别是最基本的几个task&#xff0c;尤其又以检测最为重要和基础。同时基本上所有的检测任务都需要在给出物体的bounding box之后&#xff0c;给出物体的类别&#xff08;也就是给识别物体&#xff09;&#xff0c;所以文章中不区分检测和识别任务…

实时3D物体检测

谷歌发布的MediaPipe Objectron&#xff0c;是一个可以实时检测3D物体检测的模型框架&#xff0c;先在2D图像上检测物体&#xff0c;然后估算出3D坐标。 尽管目前2D物体检测已经相对成熟&#xff0c;但3D检测仍然是个挑战性的问题&#xff0c;主要是缺少大量有效的数据用于训练…

物体检测实战:使用 OpenCV 进行 YOLO 对象检测

使用 OpenCV 进行 YOLO 对象检测 本文将教你如何使用YOLOV3对象检测器、OpenCV和Python实现对图像和视频流的检测。用到的文件有yolov3.weights、yolov3.cfg、coco.names&#xff0c;这三个文件的github链接如下&#xff1a; GitHub - pjreddie/darknet: Convolutional Neura…

传统物体检测

传统物体检测 1. 特征2. 模板匹配3. 颜色直方图4. 空间分拣5. 梯度特征6. HOG 特征7. 特征融合8. 搭建分类器8.1 数据标注8.2 数据预处理8.3 训练分类器8.4 交叉验证 9. 滑动窗口9.1 多尺度窗口9.2 Hog子采样窗口搜索(Hog Sub-sampling Window Search) 10. Multiple Detections…