基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)三

news2024/10/6 10:41:36

1.简介

1.1 2D测量技术

基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。

工业制造:在工业制造过程中,精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数,进而实现自动化生产和质量控制。通过实时监测并反馈测量结果,可以快速发现和纠正生产中的偏差,提高产品的一致性和合格率。

计算机视觉:单目相机作为计算机视觉的传感器之一,能够捕捉并记录场景中的图像信息。基于单目相机的2D测量技术可以通过对图像进行处理和分析来提取目标物体的特征和参数。这种技术在目标检测、物体跟踪、姿态估计等计算机视觉任务中起着至关重要的作用。

地理测绘和导航:基于单目相机的2D测量技术可以应用于地理测绘和导航领域。通过获取地面或航空图像,并利用图像处理和计算机视觉算法,可以实现地表特征的提取、地形建模、数字地图的生成等工作。这对于城市规划、农业管理、导航系统等方面具有重要的应用价值。

医学影像:在医学领域,基于单目相机的2D测量技术可以用于医学影像的分析和测量。通过对医学图像进行处理和分析,可以提取器官、病灶的形状、大小、位置等信息,辅助医生进行诊断和治疗决策。这种技术在影像学、放射学、眼科等医学专业中得到广泛应用。

综上所述,基于单目相机的2D测量技术在工业制造、计算机视觉、地理测绘和导航、医学影像等领域都有着重要的背景和意义。它可以提高生产效率、产品质量,推动科学研究和医学进步,为各个领域带来更多的机遇和挑战。

1.2 yolo算法

YOLO(You Only Look Once)是一种实时目标检测算法,它的主要思想是将目标检测问题转化为一个回归问题。相较于传统的目标检测算法,YOLO具有更快的处理速度和较高的准确性。

YOLO算法的基本原理如下:

将输入图像划分为一个固定大小的网格。每个网格负责预测该网格中是否包含目标以及目标的边界框。

每个网格预测多个边界框(一般为5个)以适应不同形状的目标。

每个边界框预测目标类别的概率。

对每个边界框的位置和类别进行综合预测。

使用非极大值抑制(NMS)处理重叠的边界框,以获取最终的目标检测结果。

YOLO算法相较于其他目标检测算法的优势在于其端到端的设计,能够实现实时目标检测,并且减少了检测过程中的多次重复计算。然而,由于YOLO将图像划分为网格,对于小尺寸目标和密集目标的检测效果可能会稍差。

此外,YOLO还有不同版本的改进,如YOLOv2、YOLOv3和YOLOv4等,这些改进版本在准确性和速度方面有所提升,同时也引入了一些新的技术和网络结构,如多尺度预测、锚框、Darknet-19等。

 2.功能实现 

今天在上一章的项目测量上加入了新的功能。具体直接看视频

甲方给的场地视频,因为没有参照物,所以无法测量尺寸。

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)二_哔哩哔哩_bilibili

 代码暂不开源,贴上来大家讨论讨论。顺便记录一下项目。

主函数

import utlis
from ours import *

import cv2
import time



onnx_path = 'yolov5s.onnx'
model = Yolov5ONNX(onnx_path)

cap = cv2.VideoCapture('./3.mp4')
pTime = 0
while True:
    success, img = cap.read()

    # top_coords = (0, int(img.shape[0] / 2))
    # bottom_coords = (img.shape[1], int(img.shape[0] / 2))
    bottom_coordsleft = (800, int(img.shape[0] / 2)+100)
    top_coordsleft = (800, int(img.shape[0] / 2)-500)
    bottom_coordsright = (img.shape[1]-600, int(img.shape[0] / 2)+100)
    top_coordsright = (img.shape[1]-600, int(img.shape[0] / 2)-500)


    img1 = img.copy()
    # 画出线
    # cv2.line(img1, top_coords, bottom_coords, (0, 255, 0), thickness=2)
    cv2.rectangle(img1, (800, int(img.shape[0] / 2)+100), (img.shape[1]-700, int(img.shape[0] / 2)-500), (0, 255, 0), 3)
    # cv2.line(img1, top_coordsleft, top_coordsright, (255, 0, 0), thickness=3)  # 蓝色

    or_img, box_coords = model.detect(img)


    img2 = utlis.judgeshow_zong(img1, box_coords, top_coordsleft, bottom_coordsright)

    cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime
    cv2.putText(img2, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3, (255, 0, 255), 3)

    # 在窗口中显示目标检测结果
    cv2.imshow('result', img2)
    # 等待用户按键,如果按下 'q' 键或者 Esc 键,则退出循环
    c = cv2.waitKey(1) & 0xFF
    if c == 27 or c == ord('q'):
        break

# 释放视频对象并关闭窗口
cap.release()
cv2.destroyAllWindows()

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

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

相关文章

腾讯云国际站-阿里云OSS如何迁移到腾讯云COS?腾讯云cos迁移教程

下面小编将介绍当源对象存储部署在阿里云国际版OSS 时,如何配置全托管迁移任务和半托管迁移任务,实现顺利迁移数据至腾讯云国际版COS。 准备工作 阿里云对象存储 OSS 创建 RAM 子账号并授予相关权限: 登录 RAM 控制台。选择人员管理 > …

吃瓜神奇!企查查、天眼查、天眼销,到底哪家强?

最近,我发现很多人在讨论查企业信息的工具,什么企查查、天眼查、天眼销等,到底哪家强呢? 首先,我们来简单了解一下这些工具。企查查是一款可以帮助用户查询企业信息的工具,通过输入关键词,可以搜…

VPN基础

1.VPN简介 VPN即虚拟专用网,泛指通过VPN技术在公用网络上构建的虚拟专用网络。VPN用户在此虚拟网络中传输私网流量,在不改变网络现状的情况下实现安全、可靠的连接。 专用:VPN网络是专门供VPN用户使用的网络,对于VPN用户&#xf…

Redis魔法:点燃分布式锁的奇妙实现

分布式锁是一种用于在分布式系统中控制对共享资源的访问的锁。它与传统的单机锁不同,因为它需要在多个节点之间协调以确保互斥访问。 本文将介绍什么是分布式锁,以及使用Redis实现分布式锁的几种方案。 一、前言 了解分布式锁之前,需要先了…

太顶了!文心大模型落地文旅行业不仅能业生成潮玩、还可补文物残卷!

10月11日,文化和旅游部公布了2023年文化和旅游数字化创新示范十佳案例和优秀案例。百度文心大模型创新文化产品生产方式入选十佳案例,也是唯一一个入选的大模型应用案例。文心大模型获奖类型为运用数字化工具助力艺术创作生产,促进文化机构数…

产品升级!全球尺度下原核基因组关键基因共进化无标题

微生物是群落型的生存方式,高通量测序时代到来后,掀起了针对微生物群落整体研究的高潮,比如基于功能基因/16S/ITS/扩增子、宏基因组等进行群落多样性分析。但是,我们基于分离培养等方法获得单菌落,针对单菌开展基因组、…

xxx.ko 驱动模块加载报错 “unknown symbol in module or invalid parameter”

一、问题 在对单独驱动模块进行测试时,我们要进行动态编译,生成对应驱动的.ko模块。然后进行手动加载和卸载。但是在进行驱动模块加载时遇到了unknown symbol in module or invalid parameter问题,对此进行排查解决。 二、解决 首先进行dmes…

IEJoin: 提高 Databend range join 性能

作者:王旭东 Databend 研发工程师 xudong963 (xudong.w) GitHub IEJoin 算法可以高效的处理时序场景中的 Range(ASOF) Join。 Join conditions Equi condition 在 下面 SQL 中 SELECT * FROM employee JOIN department ON employee.DepartmentID department.D…

Spring 方法升级 在hellospring接口里面

1.现在实现类Hellojava写一个构造方法 2.去配置文件那里 3.测试 就留下第一步 看下面测试情况 我们在这里并没有去getbean它 但是我们new了 那就说明 只要我们newl它该对象就已经创建好了

如何把电脑上的游戏串流助手设置为开机自启动?

注意:想要直接将 游戏串流助手 扔进“启动”文件夹里面,是没有用的,重启电脑根本打不开游戏串流助手! 步骤一:每次双击 游戏串流助手之后,都会弹出这个用户账户控制,我们第一步就是要把这个禁用…

uniapp小程序实现绘制内容,生成海报并保存截图(Painter和Canvas两种方式举例)

一、Painter方法 Painter插件传送门 1.下载资源包 2.将资源包的如下部分 3.使用页面引入组件 ui样式 <paintercustomStyle=margin-left: 40rpx; height: 1000rpx;palette="{{palette}}"bind:imgOK="onImgOK"/>data 中数据(绘制内容,替换区域) pai…

深圳想要开低佣金开户?怎么开股票账户佣金最低?

深圳想要开低佣金开户&#xff1f;怎么开股票账户佣金最低&#xff1f; 炒股开户的方法一般有两种&#xff1a; 在线开户&#xff1a;通过证券公司的官网或手机APP进行在线开户。具体流程一般为填写个人信息、进行身份认证、签署相关协议并上传相关材料&#xff0c;最后等待审…

【C语言】文件的操作与文件函数的使用(详细讲解)

前言&#xff1a;我们在学习C语言的时候会发现在编写一个程序的时候&#xff0c;数据是存在内存当中的&#xff0c;而当我们退出这个程序的时候会发现这个数据不复存在了&#xff0c;因此我们可以通过文件把数据记录下来&#xff0c;使用文件我们可以将数据直接存放在电脑的硬盘…

Pytorch深度学习—FashionMNIST数据集训练

文章目录 FashionMNIST数据集需求库导入、数据迭代器生成设备选择样例图片展示日志写入评估—计数器模型构建训练函数整体代码训练过程日志 FashionMNIST数据集 FashionMNIST&#xff08;时尚 MNIST&#xff09;是一个用于图像分类的数据集&#xff0c;旨在替代传统的手写数字…

各种小程序/PC/移动端修改代码/文件后, 不热重载问题修复

各种框架有各种的配置,首先检查是否配置了热更新, 打个比方,taro中底版本中配置热更新是在配置文件中开启mini.hot,高版本中,终端执行打包命令的时候,添加–watch参数, 如果以上检查都没有问题,依旧还是没有热更新,那么很有可能是依赖出了问题,可以通过以下方法,重新…

Spring 趣玩

1、修改控制台启动显示的图案 在SpringBoot项目的resources目录下新建一个banner.txt文本文件&#xff0c;然后将启动Banner粘贴到此文本文件中&#xff0c;启动项目即可。 在线制作banner ①、http://patorjk.com/software/taag/ ②、https://www.bootschool.net/ascii ③、ht…

mysql数据库创建及用户添加和权限管理

1、创建数据库&#xff1a; CREATE DATABASE database_name; 例如&#xff1a; CREATE DATABASE mydatabase; 2、创建用户&#xff1a; CREATE USER usernamehostname; 例如&#xff1a; CREATE USER myuserlocalhost; 注意&#xff1a;替换 username 为你想要创建的用户名&a…

香港云服务器使用的小误区

​  当前&#xff0c;在海外市场的发展下&#xff0c;香港云服务器被推的火热。一方面&#xff0c;您可以根据需要积极利用它的免备案和国际线路等特性&#xff0c;另一方面&#xff0c;也可以借助它&#xff0c;使用尽可能多或尽可能少的存储空间&#xff0c;您的业务也可以…

高校教务系统登录页面JS分析——合肥工业大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…

干货分享|超全项目管理流程PPT汇总

我是胖圆&#xff0c;欢迎大家关注留言~ 或者移步公众号【胖圆说PM】找我~