首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏技术汇总专栏

    基于YOLO的钢筋目标检测系统 | 钢筋计数识别与检测【完整源码+部署】

    基于YOLO的钢筋目标检测系统 | 钢筋计数识别与检测【完整源码+部署】源码包含:完整YOLOv8训练代码+数据集(带标注)+权重文件+直接可允许检测的yolo检测程序+直接部署教程/训练教程源码在文末哔哩哔哩视频简介处获取 项目摘要本项目基于 YOLOv8 深度学习模型,针对建筑工地常见的钢筋识别与计数任务进行优化,实现了高精度的目标检测系统。 使用YOLOv8训练模型进行目标检测钢筋计数 自动统计检测框中目标数量 可视化结果 输出带标签与置信度的结果图 模型训练功能 支持从零训练或基于预训练微调 PyQt5图形界面图形化操作 imread(str(save_path))cv2.imshow('Detection Result', img)cv2.waitKey(0)cv2.destroyAllWindows()预测结果包含类别 完整源码至项目实录视频下方获取:https://www.bilibili.com/video/BV1Lphuz7Ezd/包含:完整项目源码 预训练模型权重️ 数据集地址(含标注脚本)总结本项目围绕建筑行业中常见的钢筋识别与计数问题

    50110编辑于 2025-08-31
  • 使用pyqt5搭建yolov8钢筋计数一次性钢材计数系统

    钢筋计数任务中,Yolov8可以有效地识别和计数图像中的钢筋。下面是对如何使用Yolov8实现钢筋计数的介绍。 首先,需要收集包含钢筋的图像数据集。这些图像应该清晰地显示出钢筋,并且有适当的背景。 在训练过程中,模型会学习从图像中识别和计数钢筋的特征。为了提高模型的准确性,可以使用数据增强技术,如旋转、缩放和翻转等,来增加训练数据。 训练完成后,可以使用测试集对模型进行评估。 对于每个输入图像,模型会输出钢筋的数量和位置。这些信息可以用于自动化钢筋计数,提高生产效率和质量。 需要注意的是,Yolov8虽然是一种强大的目标检测模型,但在钢筋计数任务中可能仍然存在一些挑战。 总之,使用Yolov8实现钢筋计数是一种有效的方法。通过收集合适的数据集、训练模型、评估性能和调整参数,可以获得准确的钢筋计数结果,提高生产效率和质量。 , 'camera') self.picture.setPixmap(QPixmap("")) 【模型数据集】 模型采用yolov8n模型,数据集为250张钢筋计数数据集,数据集详情介绍如下

    24610编辑于 2025-07-17
  • 来自专栏数据魔术师

    AI数钢筋

    目前,工地现场是采用人工计数的方式对进场的车辆装载的钢筋进行计数,验收人员需要对车上的钢筋进行现场人工点根,在对钢筋进行打捆后,通过不同颜色的标记来区分钢筋是否计数,在确认数量后钢筋车才能完成进场卸货, 如图中所示: 这种人工计数的方式不仅浪费大量的时间和精力、效率低下,并且工人长时间高强度的工作使其视觉和大脑很容易出现疲劳,导致计数误差大大增加,人工计数已经不能满足钢筋生产厂家自动化生产和工地现场物料盘点精准性的需求 目标检测算法通过与摄像头结合,可以实现自动钢筋计数,再结合人工修改少量误检的方式,可以智能、高效地完成钢筋计数任务。 2 算法介绍 2.1 目标检测介绍 首先,让我们一起了解一下什么是“目标检测”。 、类别及置信度,并给出检测框的总个数,从而实现了钢筋自动计数。 对更多的图片场景进行钢筋计数,并将输入的实际位置与识别出的效果图进行对比,观察YOLO v5算法对于该场景的计数效果。 上图中,左图为输入成捆钢筋,右图为数识别出的效果图,方框上数字为置信度。

    2.8K50编辑于 2022-07-12
  • 钢筋计数检测数据集VOC+YOLO格式5610张1类别84万个框

    数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)

    15900编辑于 2025-07-17
  • 来自专栏毛利学Python

    智能盘点—钢筋数量AI识别

    赛题名称 https://www.datafountain.cn/competitions/332 智能盘点—钢筋数量AI识别 赛题背景 在工地现场,对于进场的钢筋车,验收人员需要对车上的钢筋进行现场人工点根 ,确认数量后钢筋车才能完成进场卸货。 目前现场采用人工计数的方式,如图1-1中所示: 上述过程繁琐、消耗人力且速度很慢(一般一车钢筋需要半小时,一次进场盘点需数个小时)。 针对上述问题,希望通过手机拍照->目标检测计数->人工修改少量误检的方式(如图1-2)智能、高效的完成此任务: 赛题任务 本赛题基于广联达公司提供的钢筋进场现场的图片和标注,希望参赛者综合运用计算机视觉和机器学习 /深度学习等技术,实现拍照即可完成钢筋点根任务,大幅度提升建筑行业关键物料的进场效率和盘点准确性,将建筑工人从这项极其枯燥繁重的工作中解脱出来。

    1.2K10编辑于 2022-12-20
  • 来自专栏小明的数据分析笔记本

    ggplot2:计数图(Counts Plot)

    自己也没有思路应该如何入手;今天刷知乎的时候发现了一篇文章 深度好文 |Matplotlib 可视化最有价值的 50 个图表(附完整 Python 源代码), 发现里面有一张图和自己没能画出来的非常像,才知道这类图叫计数图 (Counts plot),但是印象里ggplot2好像没有现成的函数来做这个事情,在不知如何下手之际突然想到之前看过一篇文章Top 50 ggplot2 Visualizations - The Master List (With Full R Code), 应该会有对应的内容,果不其然,发现了 ggplot2 包中的 geom_count() 函数,以下内容记录自己重复计数图的代码 绘制散点图的时候如果数据较多会出现散点重叠的情况 同样的数据集,图B看起来数据就多出来许多 代码 library(ggplot2) library(ggpubr) p1<-ggplot(mpg,aes(cty,hwy))+ geom_point() ncol=2,labels=LETTERS[1:2]) 上图使用的数据为R语言自带的数据包 mpg 另外一种解决办法就是文章开头提到的Counts Plot(计数图),散点重叠的位置只画一个点,用这个点的大小来代表这个位置重叠点的多少

    1.7K30发布于 2020-03-03
  • 来自专栏用户9688323的专栏

    钢筋与混凝土的相互作用

    这种材料上的不兼容性导致钢筋和混凝土间发生粘结破坏、钢筋滑移及局部变形等。  下图展示了几种重要的钢筋和混凝土相互作用的机理,分别为拔出效应、受拉刚化相应、销栓效应。 1.拔出效应  “拔出”通常发生在构件支座处,由于钢筋的锚固长度不足而导致粘结破坏,钢筋被拔出。可以用沿钢筋表面分布的一系列弹簧模拟钢筋和混凝土间的接触力,进而模拟拔出效应。 2.受拉刚化效应     受拉构件或梁受拉区混凝土开裂后,裂缝截面上的混凝土退出工作,但裂缝间的混凝土继续承受拉力,使得混凝土内钢筋的平均应变或总变形小于钢筋单独受力时的相应变形,有利于减小裂缝宽度和增大构件的刚度 、钢筋布置及数量等因素,方法三相对简单易用。 受拉刚化效应的大小与配筋率、钢筋与混凝土间的粘结力的大小等因素有关。在重复和反复荷载作用下,钢筋和混凝土的粘结状况会逐渐退化,受拉刚化效应也会因此减弱。

    1.4K50编辑于 2022-06-20
  • 来自专栏全栈程序员必看

    Vue(2计数器的实现「建议收藏」

    计数器的实现 在页面上简单实现一个计数器 <! /js/vue.js"></script> </head> <body>

    当前计数器:{{counter}}

    <button @click="add

    54610编辑于 2022-09-19
  • 来自专栏C/C++基础

    C++引用计数(reference counting)技术简介(2

    我们可以设计一个引用计数基类RCObject,供想拥有引用计数的类继承。RCObject将“引用计数器”本身以及用以增减引用数值的函数封装起来。 此外,还包括销毁对象值的函数,设置不可共享标的函数,返回共享标志的函数,查询是否在被共享的函数,查询引用计数的数目。 (2)RCObject::removeReference的责任不只在于将对象的refCount递减,而有当引用计数refCount为0时,销毁实值对象。 2.基于引用计数基类的String 基于引用计数的基类String设计如下: class String{ private: Struct StringValue:public RCObject{ [2]http://blog.csdn.net/ruan875417/article/details/48267527.

    93620发布于 2018-08-03
  • 来自专栏linjinhe的专栏

    计数据密集型应用(1-2

    假期宅家,这两天在看一本书:Designing Data-Intensive Application,书名翻译成中文是设计数据密集型应用 —— 大部分互联网应用都属于数据密集型应用。

    89320发布于 2020-02-18
  • 来自专栏SaaS加速器

    WakeData:算法提速2.3倍,速度决胜智慧经营|腾讯SaaS加速器·学员动态

    ▶  AI钢筋计数 在钢铁工业中,钢铁企业在钢筋的生产、运输、销售等环节都必须精确计算钢筋根数,此项工作在过去是由多方工作人员进行的,不仅费时费力,而且在精神疲劳的情况下还会出错。 AI钢筋计数功能,对各个钢筋截面形状、状态、颜色、光线等方面的差异进行数据记录,利用算法进行深度学习,可以对钢筋精确计数,大大减少人力与时间成本。 WakeData AI钢筋计数在 DCIC AI数钢筋比赛的数据集上进行了验证,F1值达99%以上,精度高、适用性强,而本次算法的优化亦将进一步提升计数的效率。  

    59810发布于 2020-06-15
  • 【HDU】5701 - 中位数计数计数 & 思维)

    51Nod题目链接:点击打开题目 HDU题目链接:点击打开题目 中位数计数 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536 Sample Input 5 1 2 3 4 5 Sample Output 1 2 3 2 1 Source 2016"百度之星" - 初赛(Astar Round2B ) 中文题: 1682 中位数计数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 中位数定义为所有值从小到大排序后排在正中间的那个数 Input示例 5 1 2 3 4 5 Output示例 1 2 3 2 1 还是思维的问题。 分别计算该数之前之后比它大的、比它小的数。 遇到一个大的就+1,一个小的就-1,遇到0就直接在ans上计数。 然后扫到右边的时候,如果碰到和前面的数互为相反数的时候,那么以这个数为右区间,可以和前面的每一个该数量的数都形成一个区间。

    26710编辑于 2025-08-27
  • 来自专栏学习

    【数据结构&&计数排序】计数排序

    ,随后对每个桶进行排序,最后再将所有桶的数据进行合并 基数排序 通过将待排序数值按位数分组,逐位进行排序,通常配合计数排序实现 计数排序 计数排序是一种非比较的排序算法,适用于特定条件下的排序,尤其是当待排序的元素范围较小其重复元素较多的时候 他的基本原理是利用一个额外的数组来记录每一个元素出现的次数,用次数来表达从而达到排序的目的,以下是排序的原理步骤 1.确定范围:首先确定待排序数组的元素的最大值和最小值 2.创建计数数组:根据范围创建一个技术数组 ,数组的大小通常为最大值和最小值的差+1,用于存放每个元素的出现次数 3.计数:遍历原始数组,统计每个元素相同的次数,对每个元素在计数数组中对应的位置进行计数。 即:若元素为x,则计数数组的第x位置加一。 4.计算位置:通过累加计数数组的数值,得到每个元素在已排序数组中的最终位置。 5.排序输出,根据计数数组生成的已排序数组,遍历计数数组,按次数将对应的元素输出到结果数组中 计数排序的时间复杂度O(n+k),其中n是待排序元素的数量,k是计数数组的大小。

    58910编辑于 2024-12-24
  • 来自专栏SeanCheney的专栏

    白话词嵌入:从计数向量到Word2Vec

    2 不同种类的词嵌入 2.1 词频嵌入 2.1.1 计数向量 2.1.2 TF-IDF 2.1.3 共现矩阵 2.2 预测嵌入 2.2.1 CBOW 2.2.2 Skip-gram 3 2 不同类型的词嵌入 可以将词嵌入大致分成两类: 基于频率嵌入 基于预测嵌入 2.1 基于频率嵌入 基于频率,有三种向量表示法: 计数向量 TF-IDF向量 共现向量 2.1.1 计数向量 一个包含D篇文档 根据计数矩阵的定义,就该表示成一个2 x 6的矩阵: ? 其中,每一列就是单词的词向量,例如,lazy的词向量就是[2,1]。 计数向量矩阵有几种变体,区别在于: 构成词典的方式不同 —— 因为在真实世界的案例中,语料库可能会包含数百万篇文档。从如此多的文档中,可以提取出数百万不同的单词。 每个单词的计数方法不同 —— 我们可以使用频率(某个单词在文档中出现的次数)或是否出现(出现就是1,否则是0)作为矩阵中的值。一般来说,词频方法用的更多。

    1.5K11发布于 2019-09-18
  • 来自专栏kyle的专栏

    计数质数

    示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2: 输入:n = 0 输出:0 示例 3: 输入:n = 1 输出:0 提示: 0 <= n <= 5 * 106 解题思路 埃氏筛 若一个数为质数,则它的n倍就一定是一个合数。 countPrimes = function(n) { const isPrimes = new Array(n).fill(1) let count = 0 for(let i = 2; function(n) { const isPrimes = new Array(n).fill(1) const primes = [] for(let i = 2;

    1.7K00发布于 2020-12-06
  • 来自专栏Tech Explorer

    Church计数

    my code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ;Church计数 (define zero (lambda (f) (lambda (x) x))) (define (add-1 n) (lambda multi (add one two) two)) (show-num (expon two two)) (show-num (expon (expon two two) two)) Church计数 Church计数就是这个思想。 show-num用来把Church计数方式的数字转换成普通数字。

    96820发布于 2021-06-25
  • 来自专栏算法与编程之美

    元素计数

    示例: 输入:nums=[11,7,2,15] 输出:2 解释:元素7:严格较小元素是元素2,严格较大元素是元素11。 元素11:严格较小元素是元素7,严格较大元素是元素15。 2 解决方法 首先对给定的数组去重以及升序得到一个新列表,去重是为了排除相同元素在枚举过程中的影响.随后利用for循环枚举出数组中的元素,再添加if 语句判断是否满足题意.若找到满足的元素,对此元素在原数组进行计数 j in range(len(nums2)-1): if nums2[j-1]<nums2[j]<nums2[j+1]: m=nums.count(nums2[j]) ans+= m print(ans) 4 结语 针对元素计数问题,提出利用枚举的方法,通过输入多组示例数据,最终能够得到题目给出的标准输出,证明该方法是有效的,本文的方法理解起来有点麻烦,尤其是步骤对数组去重 .但在后面的对满足题目要求的元素计数时,需要统计的是最初的数组中该元素的个数,这个疑问就迎刃而解了。

    1.1K20编辑于 2022-05-23
  • 来自专栏hotarugaliの技术分享

    计数排序

    简介 计数排序属于非比较排序算法类,故其时间复杂度不受比较排序算法时间复杂度下界的限制,可以达到 。其中, 为待排序序列的排序关键字的最大范围。 计数排序是稳定的、非原址的。 2. 思想 计数排序假设 个输入元素中的每一个的排序关键字都是在 0 到 区间(左闭右开)内的一个整数。 using namespace std; #ifndef _COUNTING_ #define _COUNTING_ #define ll int #define MAXN 100005 // 计数排序 template < typename T > struct Counting { ll C[MAXN]; T B[MAXN]; Counting() {} // 计数排序 ; ll *K = bK; // 判断关键字数组大小与元素数组大小是否吻合 assert(len_A == len_K); // 初始化计数数组

    2.4K10编辑于 2022-03-01
  • 来自专栏机器学习入门

    挑战程序竞赛系列(46):4.1Polya 计数定理(2

    挑战程序竞赛系列(46):4.1Polya 计数定理(2) 详细代码可以fork下Github上leetcode项目,不定期更新。 练习题如下: AOJ 2164: Revenge of the Round Table AOJ 2164: Revenge of the Round Table 思路: 首先能想到的是Polya计数 始终注意Polya计数定理是找寻状态在【置换】前后不变的个数,所以此题依旧如此,对于n个人,对应编号为0…n - 1,那么t = gcd(i,n)能够得到t条轨迹(单独的循环节),可以参考《挑战》P303 比如: n = 8, i = 4, t = gcd(4, 8) = 4 0 1 2 3 | 4 5 6 7 A A B B A A B B 对于最终dp[i]的提取,我们需要{0,1,2,3}的结尾信息和 而根据polya定理{4,5,6,7}实际就是{0,1,2,3} 所以在排列组合时,只需要考虑{0,1,2,3},但我们需要定义结尾状态和开头状态。

    42220发布于 2019-05-26
  • 来自专栏数据结构与算法

    计数排序

    算法思想 编辑 计数排序对输入的数据有附加的限制条件: 1、输入的线性表的元素属于有限偏序集S; 2、设输入的线性表的长度为n,|S|=k(表示集合S中元素的总数目为k),则k=O(n)。 在这两个条件下,计数排序的复杂性为O(n)。 计数排序的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数(此处并非比较各元素的大小,而是通过对元素值的计数计数值的累加来确定)。 1 #include <iostream> 2 using namespace std; 3 const int k=1000; // range 4 int a[1000],c[1000],ranked

    1.4K100发布于 2018-04-12
领券