首页 > 其他分享 >深度学习高频手撕代码

深度学习高频手撕代码

时间:2024-06-05 17:55:13浏览次数:20  
标签:bbox2 bbox1 代码 bboxes min 深度 test 100 高频

nms

def cal_iou(bbox1,bbox2):
    # x1,y1,x2,y2
    # min_x - max_x
    inter_x = min(bbox1[2],bbox2[2]) - max(bbox1[0],bbox2[0])
    # min_y - max_y
    inter_y = min(bbox1[3],bbox2[3]) - max(bbox1[1],bbox2[1])
    if inter_x <=0 or inter_y <=0:
        return 0
    inter_area = inter_x * inter_y
    area1 = (bbox1[2] - bbox1[0] +1)* (bbox1[3] - bbox1[1] +1)
    area2 = (bbox2[2] - bbox2[0] +1)* (bbox2[3] - bbox2[1] +1)
    #分母不会是0,面积最小是1
    iou = inter_area / (area1+area2 - inter_area)
    return iou


def nms(bboxes,scores,iou_thre=0.3):
    infos = list(map(list,zip(scores,bboxes)))
    print(infos)
    infos.sort(key=lambda x:x[0],reverse=True)
    #print(infos)
    for i in range(len(infos)):
        for j in range(i+1,len(infos)):
            iou = cal_iou(infos[i][1],infos[j][1])      
            print(iou)          
            if iou > iou_thre:
                #score置-1,后面清空
                infos[j][0] = -1
    #剔除score=-1的框
    new_bboxes = []
    for i in range(len(infos)):
        if infos[i][0] != -1:
            new_bboxes.append(infos[i][1])
    return new_bboxes

test_bboxes = [[0,0,100,100],[10,10,100,100],[100,100,200,200]]
test_scores = [0.98,0.3,0.7]
res = nms(test_bboxes,test_scores)
print(res)

标签:bbox2,bbox1,代码,bboxes,min,深度,test,100,高频
From: https://www.cnblogs.com/forrestr/p/18233507

相关文章

  • 还在拼冗长的WhereIf吗?100行代码解放这个操作
    通常我们在做一些数据过滤的操作的时候,经常需要做一些判断再进行是否要对其进行条件过滤。普通做法最原始的做法我们是先通过If()判断是否需要进行数据过滤,然后再对数据源使用Where来过滤数据。示例如下:if(!string.IsNullOrWhiteSpace(str)){query=query.Where(a=>......
  • 七种方法让 Python 代码更容易维护
    随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力,也能确保新的开发者能够快速了解项目的情况,同时能更好地全程保持应用程序的质量。使用外部库来检查代码的......
  • 代码随想录算法训练营第五天 | 哈希表基础、有效字母异位、两个数组交集、快乐数
    哈希表基础理论https://programmercarl.com/哈希表理论基础.html#哈希表242有效字母异位词题https://leetcode.cn/problems/valid-anagram/description/242代码随想录解析https://programmercarl.com/0242.有效的字母异位词.html#算法公开课349两个数组的交集https://leetc......
  • 代码随想录算法训练营第二十七天 | 39.组合总和
    39.组合总和题目链接文章讲解视频讲解classSolution{private:vector<int>combine;vector<vector<int>>result;intcount=0;public:vector<vector<int>>combinationSum(vector<int>&candidates,inttarget){......
  • Python深度学习实践:自动编码器在数据降维中的应用
    Python深度学习实践:自动编码器在数据降维中的应用1.背景介绍在现代数据科学和机器学习领域中,高维数据处理是一个常见的挑战。许多真实世界的数据集包含大量的特征,这些特征往往存在高度的冗余和噪声。高维数据不仅增加了计算复杂性,还容易导致维数灾难(curseofdimensio......
  • 【JS】JavaScript编程语言-谷歌浏览器调试之前端代码(2024-06-05)
    1、在浏览器中调试调试是指在一个脚本中找出并修复错误的过程。所有的现代浏览器和大多数其他环境都支持调试工具——开发者工具中的一个令调试更加容易的特殊用户界面。它也可以让我们一步步地跟踪代码以查看当前实际运行情况。在这里我们将会使用Chrome(谷歌浏览器)。2......
  • Docker部署深度学习模型
    Docker部署深度学习模型基础概念DockerDocker是一个打包、分发和运行应用程序的平台,允许将你的应用程序和应用程序所依赖的整个环境打包在一起。比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安......
  • DIYGW UniApp低代码可视化开发工具:构建移动应用的高效利器
    ​随着移动互联网的飞速发展,移动应用开发已成为当今技术领域的热点之一。然而,传统的移动应用开发方式需要编写大量的代码,这不仅提高了开发门槛,也延长了开发周期。为了解决这一问题,DIYGWUniApp低代码可视化开发工具应运而生,成为高效构建移动应用的利器。本文将详细介绍DIYGWUn......
  • 【华为OD】D卷真题100分:高矮个子排队 JavaScript代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、C、python、Java、C++代码实现:【华为OD】D卷真题100分:高矮个子排队JavaScript代码实现[思路+代码]-C......
  • LibDEEP:深度学习库
    介绍LibDEEP是一个用C语言开发的深度学习库,专注于人工智能技术的发展。该库旨在提供一种高效、灵活的工具,用于构建和训练神经网络。LibDEEP支持多种类型的神经网络,包括前馈神经网络(FNN)、卷积神经网络(CNN)和递归神经网络(RNN)。其设计目标是通过简洁的代码和高效的计算,提供强大的......