计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

news2024/11/20 20:40:13

车辆跟踪及测距

  • 该项目一个基于深度学习和目标跟踪算法的项目,主要用于实现视频中的目标检测和跟踪。
  • 该项目使用了 YOLOv5目标检测算法和 DeepSORT
    目标跟踪算法,以及一些辅助工具和库,可以帮助用户快速地在本地或者云端上实现视频目标检测和跟踪!

教程博客_传送门链接------->单目测距和跟踪
在这里插入图片描述

yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)

  • 实现了局域的出/入 分别计数。
  • 显示检测类别,ID数量。
  • 默认是 南/北 方向检测,若要检测不同位置和方向,需要加以修改
  • 可在 count_car/traffic.py 点击运行
  • 默认检测类别:行人、自行车、小汽车、摩托车、公交车、卡车、船。
  • 检测类别可在 objdetector.py 文件修改。

原文链接:https://blog.csdn.net/ALiLiLiYa/article/details/131819630

yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)

  • 实现了局域的出/入 分别计数。
  • 显示检测类别,ID数量。
  • 默认是 南/北 方向检测,若要检测不同位置和方向,需要加以修改
  • 可在 count_car/traffic.py 点击运行
  • 默认检测类别:行人、自行车、小汽车、摩托车、公交车、卡车、船。
  • 检测类别可在 objdetector.py 文件修改。

原文链接:https://blog.csdn.net/ALiLiLiYa/article/details/131819630
在这里插入图片描述

目标跟踪

  • YOLOv5是一种流行的目标检测算法,它是YOLO系列算法的最新版本。
  • YOLOv5采用了一种新的架构,可以在保持高准确性的同时提高检测速度。
  • 在本文中,我们将介绍如何使用YOLOv5_deepsort算法来进行船舶跟踪和测距。

教程博客_传送门链接------->目标跟踪
在这里插入图片描述

车道线识别

  • 本文主要讲述项目集成:从车道线识别、测距、到追踪,集各种流行模型于一体!
  • 不讲原理,直接上干货!
  • 把下文环境配置学会,受益终生!
  • 各大项目皆适用

教程博客_传送门链接------->车道线识别+目标检测
看下本项目的效果:
在这里插入图片描述

语义分割

  • MMsegmentation是一个基于PyTorch的图像分割工具库,
  • 它提供了多种分割算法的实现,包括语义分割、实例分割、轮廓分割等。
  • MMsegmentation的目标是提供一个易于使用、高效、灵活且可扩展的平台,以便开发者可以轻松地使用最先进的分割算法进行研究和开发


教程博客_传送门链接------->语义分割
在这里插入图片描述

姿态识别

  • 体姿态估计是计算机视觉中的一项重要任务
  • 具有各种应用,例如动作识别、人机交互和监控。
  • 近年来,基于深度学习的方法在人体姿态估计方面取得了显著的性能。
  • 其中最流行的深度学习方法之一是YOLOv7姿态估计模型


程博客_传送门链接------->:姿态识别https://blog.csdn.net/ALiLiLiYa/article/details/129482358
在这里插入图片描述

图像分类

  • 在本教程中,您将学习如何使用迁移学习训练卷积神经网络以进行图像分类。您可以在 cs231n 上阅读有关迁移学习的更多信息。
  • 本文主要目的是教会你如何自己搭建分类模型,耐心看完,相信会有很大收获。废话不多说,直切主题…
  • 首先们要知道深度学习大都包含了下面几个方面:

1.加载(处理)数据
2.网络搭建
3.损失函数(模型优化)
4 模型训练和保存

  • 把握好这些主要内容和流程,基本上对分类模型就大致有了个概念。

教程博客_传送门链接--------->:[图像分类](https://blog.csdn.net/ALiLiLiYa/article/details/127454333)
在这里插入图片描述

交通标志识别

  1. 项目是一个基于 OpenCV 的交通标志检测和分类系统
  2. 可以在视频中实时检测和分类交通标志。检测阶段使用图像处理技术,
  3. 在每个视频帧上创建轮廓并找出其中的所有椭圆或圆形。它们被标记为交通标志的候选项。

教程博客_传送门链接------->交通标志识别
在这里插入图片描述

表情识别、人脸识别

  • 面部情绪识别(FER)是指根据面部表情识别和分类人类情绪的过程。
  • 通过分析面部特征和模式,机器可以对一个人的情绪状态作出有根据的推断。
  • 这个面部识别的子领域高度跨学科,涉及计算机视觉、机器学习和心理学等领域的知识

教程博客_传送门链接------->表情识别
在这里插入图片描述

疲劳检测

  • 瞌睡经常发生在汽车行驶的过程中
  • 该行为害人害己,如果有一套能识别瞌睡的系统,那么无疑该系统意义重大!

教程博客_传送门链接------->疲劳检测
在这里插入图片描述

车牌识别

  • 用python3+opencv3做的中国车牌识别
  • 包括算法和客户端界面,只有2个文件,一个是界面代码,一个是算法代码
  • 点击即可出结果,方便易用!

链接:车牌识别
大致的UI界面如下,点击输入图片,右侧即可出现结果!
在这里插入图片描述

代码

额外说明:算法代码只有500行,测试中发现,车牌定位算法的参数受图像分辨率、色偏、车距影响。

--->qq 1309399183----------<代码交流
	def from_pic(self):
		self.thread_run = False
		self.pic_path = askopenfilename(title="选择识别图片", filetypes=[("jpg图片", "*.jpg")])
		if self.pic_path:
			img_bgr = predict.imreadex(self.pic_path)
			self.imgtk = self.get_imgtk(img_bgr)
			self.image_ctl.configure(image=self.imgtk)
			resize_rates = (1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4)
			for resize_rate in resize_rates:
				print("resize_rate:", resize_rate)
				r, roi, color = self.predictor.predict(img_bgr, resize_rate)
				if r:
					break
			#r, roi, color = self.predictor.predict(img_bgr, 1)
			self.show_roi(r, roi, color)

图像去雾去雨+目标检测+单目测距结合

  • 0.0实时感知本车周围物体的距离对高级驾驶辅助系统具有重要意义,当判定物体与本车距离小于安全距离时便采取主动刹车等安全辅助功,
  • 0.1这将进一步提升汽车的安全性能并减少碰撞的发生。上一章本文完成了目标检测任务,接下来需要对检测出来的物体进行距离测量。
  • 1.首先描述并分析了相机成像模型,推导了图像的像素坐标系与世界坐标系之间的关系。
  • 2.其次,利用软件标定来获取相机内外参数并改进了测距目标点的选取。
  • 3.最后利用测距模型完成距离的测量并对采集到的图像进行仿真分析和方法验证。
    传送门链接------------->:单目测距
    在这里插入图片描述

代码


        for path, img, im0s, vid_cap in dataset:
        img = torch.from_numpy(img).to(device)
        img = img.half() if half else img.float()  # uint8 to fp16/32
        img /= 255.0  # 0 - 255 to 0.0 - 1.0
        if img.ndimension() == 3:
            img = img.unsqueeze(0)

        # Warmup
        if device.type != 'cpu' and (old_img_b != img.shape[0] or old_img_h != img.shape[2] or old_img_w != img.shape[3]):
            old_img_b = img.shape[0]
            old_img_h = img.shape[2]
            old_img_w = img.shape[3]
            for i in range(3):
                model(img, augment=opt.augment)[0]

        # Inference
        t1 = time_synchronized()
        with torch.no_grad():   # Calculating gradients would cause a GPU memory leak
            pred = model(img, augment=opt.augment)[0]
        t2 = time_synchronized()
         distance=object_point_world_position(u, v, h, w, out_mat, in_mat):

路径规划

本节针对越野场景路径规划问题,采用栅格法建立障碍物、威胁物和越野道路模型,模拟真实的越野环境场景。

  • 引入方向变化惩罚和局部区域复杂度惩罚来优化A算法,使算法规划出的路径更平滑,算法效率更高效。

  • 采用改进 Floyd 算法对路径进行双向平滑,并且进行了防碰撞处理,来确保规划出路径的安全可靠性。

  • 仿真结果表明,所改进的 A算法与传统算法相比较,效率提高了 30%,拐点数减少了4
    倍,所提算法能够在越野环境多重因素综合影响以及不同车辆性能和任务的要求下快速的规划出安全的路径。
    传送门链接---------------->:A star
    在这里插入图片描述

代码

###############创建A-Star类############
class AStar:
    
    # 描述AStar算法中的节点数据
    class Node:  
        #初始化
        def __init__(self, point, startPoint,endPoint, g=0,w=1,p=1):
            self.point = point  # 自己的坐标
            self.father = None  # 父节点
            self.g = g       # g值,g值在用到的时候会重新算
            
            # 计算h值,采用曼哈顿距离
            #self.h = (abs(endPoint.x - point.x) + abs(endPoint.y - point.y)) * 10  
            
            #采用欧几里得距离
            #self.h = math.pow((math.pow((endPoint.x - point.x),2) + math.pow((endPoint.y - point.y),2)),0.5)*10
            
            #采用对角距离
            pp=(1-p)+0.2*math.exp((math.pow((math.pow((endPoint.x - point.x),2) + math.pow((endPoint.y - point.y),2)),0.5))/(math.pow((math.pow((endPoint.x - startPoint.x),2) + math.pow((endPoint.y - startPoint.y),2)),0.5)))
            Diagonal_step = min((endPoint.x - point.x),(endPoint.y - point.y))
            straight_step = (abs(endPoint.x - point.x) + abs(endPoint.y - point.y)) - 2*Diagonal_step
            self.h  =(straight_step + math.pow(2,0.5)*Diagonal_step)*10*pp
            #print(pp)


            
    #初始化A-start
    def __init__(self, map2d, startPoint, endPoint, passTag=1.0):#map2d地图信息,startPoint起点, endPoint终点, passTag=1.0为不可行驶区域

        # 开启表
        self.openList = []
        # 关闭表
        self.closeList = []
        # 寻路地图
        self.map2d = map2d
        # 起点终点
        if isinstance(startPoint, Point) and isinstance(endPoint, Point):
            self.startPoint = startPoint
            self.endPoint = endPoint
        else:
            self.startPoint = Point(*startPoint)
            self.endPoint = Point(*endPoint)
 
        # 不可行走标记
        self.passTag = passTag
 
    def getMinNode(self):
        """
        获得openlist中F值最小的节点
        :return: Node
        """
        currentNode = self.openList[0]
        for node in self.openList:
            if node.g + node.h < currentNode.g + currentNode.h:
                currentNode = node
        return currentNode#返回最小代价的点
 

停车位检测

  • 基于深度学习的鱼眼图像中的停车点检测和分类是为二维物体检测而开发的。我们的工作增强了预测关键点和方框的能力。这在许多场景中很有用,因为对象不能用右上的矩形“紧密”表示。
  • 一个这样的例子,道路上的任何标记,由于透视效果,在现实世界中的对象矩形不会在图像中保持矩形,所以关键点检测显得格外重要。鱼眼图像还呈现了观察到这种现象的另一种场景,由于鱼眼宽广的视角,可以扑捉更多画像

链接:停车位检测

在这里插入图片描述

代码

#全部代码可加qq1309399183
def train():
    #parses command line args
    args = parse_args()

    #parses args from file
    if args.config_file is not None:
        cfg_from_file(args.config_file)

    if (args.FIX_MODEL_CHECKPOINT):
      args.FIX_MODEL_CHECKPOINT = args.FIX_MODEL_CHECKPOINT.replace(" ", "")
      args.FIX_MODEL_CHECKPOINT = args.FIX_MODEL_CHECKPOINT.replace("=", "")
      cfg.RESUME_CHECKPOINT = args.FIX_MODEL_CHECKPOINT
      cfg.CHECK_PREVIOUS = False
      if (os.path.exists(cfg.RESUME_CHECKPOINT) == False):
          print('Exiting the process as asked model for resuming is not found')
          exit()

    if (args.RESUME_CHECKPOINT):
      cfg.RESUME_CHECKPOINT = args.RESUME_CHECKPOINT

    if (args.LOG_DIR):
      cfg.EXP_DIR = args.LOG_DIR

    cfg.LOG_DIR = cfg.EXP_DIR

    if (args.PHASE):
      cfg.PHASE = []
      cfg.PHASE.append(args.PHASE)

    if (args.EVAL_METHOD):
      cfg.DATASET.EVAL_METHOD = args.EVAL_METHOD

    #for backward compatibility
    if cfg.DATASET.DATASET == 'psd':
      cfg.DATASET.DATASET = 'tiod'

    if cfg.DATASET.BGR_OR_RGB == True:
        #cfg.DATASET.PIXEL_MEANS = (123.68, 116.78, 103.94)
        #cfg.DATASET.PIXEL_MEANS = (123, 117, 104)
        cfg.DATASET.PIXEL_MEANS = (128.0, 128.0, 128.0) # simpler mean subtraction to keep data in int8 after mean subtraction

    print("cfg: ", cfg)

    for phase in cfg.PHASE:
      cfg_dir = cfg.LOG_DIR + '/' + phase + '_cfg/'
      os.makedirs(os.path.dirname(cfg_dir), exist_ok=True)
      shutil.copy(args.config_file, cfg_dir)

    # to making every run consistent # TII
    np.random.seed(100)
    torch.manual_seed(100)
    torch.cuda.manual_seed(100)
    random.seed(100)
    torch.cuda.manual_seed_all(999)
    torch.backends.cudnn.enabled = False

    train_model()

if __name__ == '__main__':
    train()

图像雾去雨与目标检测

  • 针对不同的天气则采取不同的图像前处理方法来提升图像质量。
  • 雾天天气 时,针对当下求解的透射率会导致去雾结果出现光晕、伪影现象,本文采用加权最小二乘法细化透射率透。
  • 针对四叉树法得到的大气光值不精确的问题,改进四叉树法来解决上述问题。将上述得到的透射率和大气光值代入大气散射模型完成去雾处理;
  • 在图像处理后加入目标检测,提高了目标检测精度以及目标数量。

下图展现了雾天处理后的结果
图第一列为雾霾图像,第二列为没有加入图像处理的目标检测结果图,第三列为去雾后的目标检测结果图。

在这里插入图片描述

无人机检测

  • 反无人机目标检测与跟踪的意义在于应对无人机在现实世界中可能带来的潜在威胁,并保障空域安全。以下是这方面的几个重要意义:
  • 空域安全:无人机的广泛应用给空域安全带来了新的挑战。通过开展反无人机目标检测与跟踪研究,可以及时发现和追踪潜在的无人机入侵行为,确保空域的安全和秩序。
  • 防范恶意活动:无人机技术的快速发展也为一些恶意活动提供了新的工具和手段,如无人机进行窥探、非法监听、破坏等。反无人机目标检测与跟踪的研究可以帮助及时发现和阻止这些恶意活动,维护社会的稳定和安全


传送门链接-------------->:无人机检测

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1120045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新AI智能写作创作系统源码V2.6.4/AI绘画系统/支持GPT联网提问/支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

[深入浅出AutoSAR] SWC 设计与应用

依AutoSAR及经验辛苦整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入浅出AutoSAR》 全文 3100 字&#xff0c; 包含 1. SWC 概念 2. 数据类型&#xff08;Datatype&#xff09; 3. 端口&#xff08;Port&#xff09; 4. 端口接口&#xff08;Portinterface&…

【终极版】刷完这100行Python,从新人变成大佬

文章目录 基础入门菜鸟提升基础晋级高手之路内置包库奇技淫巧 基础入门 1 python 即在命令行输入python&#xff0c;进入Python的开发环境。 2 x 12*3-4/56**2 加减乘除四则混合运算&#xff0c;可当作计算器使用&#xff0c;其中**表示乘方。 3 print(x) 输出x的值&#x…

2023年中国跨境电商进出口数据及分布占比分析

中商情报网讯&#xff1a;据海关数据&#xff0c;2022年中国跨境电商进出口&#xff08;含B2B&#xff09;2.11万亿元&#xff0c;同比增长9.8%&#xff0c;跨境电商进出口规模首次突破2万亿元关口。其中&#xff0c;出口1.55万亿元&#xff0c;进口0.56万亿元。 2023上半年&a…

基于SSM的快递管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

RBAC——基于角色权限的模型

目录 1、RBAC是什么&#xff1f; 2、为什么要使用RBAC模型&#xff1f; 3、RBAC的适用场景 4、RBAC流程图 5、RBAC各模块功能 6、访问控制流程 7、数据库设计及相关表结构 8、RBAC模型的JPA简单实现-单表及多表查询 9、RBAC模型四级分级 10、总结&#xff08;优缺点&…

Spring Cloud Alibaba系列(6)之nacos集群搭建

传送门 Spring Cloud Alibaba系列之nacos&#xff1a;(1)安装 Spring Cloud Alibaba系列之nacos&#xff1a;(2)单机模式支持mysql Spring Cloud Alibaba系列之nacos&#xff1a;(3)服务注册发现 Spring Cloud Alibaba系列之nacos&#xff1a;(4)配置管理 Spring Cloud Al…

将本地的项目上传到Gitee

目录 1.先在Gitee新建一个仓库,提交即可 2.进入到要上传的项目里面&#xff0c;右键选择 Git Bash Here 3.右键后就打开了Git命令窗口 4.配置你的用户名和邮箱(已经配置过则可跳过) 5.查看你的用户名和邮箱配置&#xff08;可不查看&#xff09; 6.输入git init指令&#…

【第二天】C++类和对象解析:构造函数、析构函数和拷贝构造函数的完全指南

一、类的引出概述 在c语言结构体中&#xff0c;行为和属性是分开的&#xff0c;万一调用错误&#xff0c;将会导致问题发生。c中类将数据和方法封装在一起&#xff0c;加以权限区分&#xff0c;用户只能通过公共方法 访问 私有数据。 二、封装 封装特性包含两个方面&#xff0…

Java 中的 Default 关键字

default 关键字&#xff1a;是在 Java 8 中引入的新概念&#xff0c;也可称为 Virtual extension methods——虚拟扩展方法与public、private等都属于修饰符关键字&#xff0c;与其它两个关键字不同之处在于default关键字大部分都用于修饰接口。 default 修饰方法时只能在接口…

基于Java+Springboot+Vue前后端分离的商品库存销售管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 当今社会&#xff0c;…

混合专家模型 Mixture-of-Experts (MoE)

大纲 Mixture-of-Experts (MoE)Mixture of Sequential Experts&#xff08;MoSE&#xff09;Multi-gate Mixture-of-Experts (MMoE) 一、MoE 1. MoE架构 MoE&#xff08;Mixture of Experts&#xff09;层包含一个门网络&#xff08;Gating Network&#xff09;和n个专家网…

中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明

中文编程开发语言工具编程实际案例&#xff1a;台球棋牌混合计时计费软件使用的编程构件说明 上图说明&#xff1a;该软件可以用于桌球和棋牌同时计时计费&#xff0c;在没有开台的时候&#xff0c;图片是处于等待状态&#xff0c;这使用编程工具中的固定图像构件&#xff0c;在…

【经典 PageRank 】01/2 PageRank的基本原理

一、说明 PageRank是Google搜索算法中使用的一种算法&#xff0c;用于确定页面的重要性和排名。 它是通过对网页间的链接关系进行评估来计算的&#xff0c;具有较高的链接权重的网页将获得较高的PageRank值。 PageRank是一个0到10的指标&#xff0c;其中10是最高级别&#xff0…

正点原子嵌入式linux驱动开发——Linux并发与竞争

Linux是一个多任务操作系统&#xff0c;肯定会存在多个任务共同操作同一段内存或者设备的情况&#xff0c;多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护&#xff0c;也就是要处理对共享资源的并发访问。在Linux驱动编写过程中对于并发控制…

前端TypeScript学习day05-索引签名、映射与类型声明文件

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 索引签名类型 映射类型 索引查询&#xff08;访问&#xff09;类型 基本使用 同时查询多个索引的类型…

2023天猫双十一活动时间表 天猫淘宝双11预售几号开始付定金

双十一购物节是生活不可或缺的一部分&#xff0c;不论是满足基本需求还是享受生活乐趣&#xff0c;都需要购物。因此&#xff0c;双十一绝对是一个不容错过的绝佳机会&#xff0c;希望大家能善用这个机会&#xff0c;因为错过了就得再等一整年。 每日领红包&#xff1a;红包有…

基于袋獾优化的BP神经网络(分类应用) - 附代码

基于袋獾优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于袋獾优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.袋獾优化BP神经网络3.1 BP神经网络参数设置3.2 袋獾算法应用 4.测试结果&#xff1a;5.M…

MYSQL第一章节DDL数据定义语言的操作(DDL-数据库操作,DDL-操作表-查询,DDL-操作表-修改,数据库的基本类型)

c知识点合集已经完成欢迎前往主页查看&#xff0c;点点赞点点关注不迷路哦 点我进入c第一章知识点合集 MYSQL第一章节DDL数据定义语言的操作 目录 DDL-数据库操作 查询所有数据库 查询当前数据库 创建数据库 删除数据库 DDL-操作表-查询 查询当前数据库中的所有表 查询表结构…

基于斑马优化的BP神经网络(分类应用) - 附代码

基于斑马优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于斑马优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.斑马优化BP神经网络3.1 BP神经网络参数设置3.2 斑马算法应用 4.测试结果&#xff1a;5.M…