我的创作纪念日(从本科到研究生)

2023-09-22 14:04:46

一、机缘

大一暑假的时候,老师让每周写自己学习了什么,然后以博客的形式记录下来,后来坚持的人很少,我也是其中之一,没有坚持下来。后来,有个同学经常分享自己学习成果,也就是把自己的博客发群,确实质量也不错,时间长了,他的粉丝什么的涨的就比较多,现在也是某一个领域的大佬了。我后来坚持发博客一方面受到了他的影响,另一方面我也在学习一些新的东西,也想以某种形式记录下来,这正好遇到了CSDN,程序员的大本营,于是和CSDN日久生情了。。。。

二、收获

我见证了CSDN板块内容慢慢发展的过程,明显感觉的到,CSDN一直在注入新鲜血液,各种板块的升级与加入,让CSDN大家庭变得越来越适合程序员与开发者,同时CSDN也多了很多优质内容。
很荣幸作为其中的一名创作者,为CSDN的建设添砖加瓦。
同时CSDN也在我成长的过程中给与了很多帮助,比如一些优质的解答、优质的内容,帮助我解决了无数问题,也学习了很多令人振奋的知识!


三、日常

1、目前,创作已经是我生活的一部分了,我每天都会用到CSDN来记录我的学习历程与一些值得纪念的内容,一方面分享的同时,也让我对学习到的知识有了更深的理解。
2、有限的精力下,如何平衡创作和工作学习呢?其实,创造本身就是对学习的巩固与积累,二者并不矛盾。毛泽东同志也说过,好记性不如烂笔头。这里的创作更多的是对学习内容的总结与思考,因此,创造学习是很有必要的。


四、成就

嘿嘿,我会在这里记录很多程序的代码,比如yolo系列如何添加模块的,我会写的很详细,还有分析yolo源码的内容,我认为这些对学习者来说都受益匪浅。
下面粘贴一下DETR如何输出预测信息的,完全性的属于我个人原创写出来的,网上我是没有找到这段功能代码的实现:
希望对一些开发展者产生影响!

def prepare_for_coco_detection(self, predictions, output_dir='/home/rendoudou/detr-annotations-master/output'):
        results_by_image_id = {}
        for original_id, prediction in predictions.items():
            if len(prediction) == 0:
                continue

            boxes = prediction["boxes"]
            boxes = convert_to_xywh(boxes).tolist()
            scores = prediction["scores"].tolist()
            labels = prediction["labels"].tolist()

            for k, box in enumerate(boxes):
                category_id = labels[k]
                bbox = [int(x) for x in box]
                score = scores[k]

                result_str = f"{category_id} {' '.join(str(x) for x in bbox)} {score}"

                if original_id not in results_by_image_id:
                    results_by_image_id[original_id] = []

                results_by_image_id[original_id].append(result_str)

        # 转换为对象数组
        coco_results = []
        for image_id, results in results_by_image_id.items():
            for result in results:
                fields = result.split(" ")
                category_id = int(fields[0])
                bbox = [float(x) for x in fields[1:5]]
                score = float(fields[-1])

                coco_result = {
                    "image_id": int(image_id),
                    "category_id": int(category_id),
                    "bbox": bbox,
                    "score": float(score),
                }
                coco_results.append(coco_result)

        # 写入txt文件
        for image_id, results in results_by_image_id.items():
            filename = os.path.join(output_dir, f"{image_id}.txt")
            with open(filename, "w", encoding="utf-8") as f:
                f.writelines("\n".join(results))

        return coco_results


憧憬

我对未来的憧憬首先,就是,研究生期间好好发论文,争取以后能参与到CSDN的后台建设中,为CSDN的发展做出重要贡献!
其次,希望能创作出更优质的内容,帮助更多开发者解答疑惑!!!
谢谢各位粉丝支持,我会坚持下去,不忘初心,创造更多高质量内容!
最后,祝愿CSDN继续高速、高质量发展!

更多推荐

Socks5与HTTP的区别与应用场景

在网络访问中,代理服务器扮演着重要角色,用于保护用户隐私、提高访问速度等。Socks5代理和HTTP代理是两种常见的代理协议,它们在功能和应用场景上有所不同。本文将深入解析Socks5代理和HTTP代理的区别,帮助您更好地了解并选择适合自己需求的代理服务。一、Socks5代理1.功能特点:Socks5代理是一种通用的代

【笔试强训选择题】Day42.习题(错题)解析

作者简介:大家好,我是未央;博客首页:未央.303系列专栏:笔试强训选择题每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!!文章目录前言一、Day42习题(错题)解析总结前言一、Day42习题(错题)解析1.解析:C题目解析:选项A:选项B:不仅有单播地址,多播地址,还有广播地址;选项C:一个主机可以有

理解Nginx反向代理详解

什么是Nginx反向代理?Nginx是一个高性能的开源Web服务器,但它也可以用作反向代理服务器。反向代理是一种服务器配置,它允许Nginx接收客户端请求,然后将这些请求转发到后端服务器,最终将响应返回给客户端。这种配置对于负载均衡、安全性和性能优化非常有用。为什么前端需要理解Nginx反向代理?请求转发:Nginx转

趣解设计模式之《小王与他的Apple商店》

〇、小故事小王开了一个Apple商店,每天销售量都很不错,但是,近期却有一件事让他很苦恼,那就是针对不同的角色用户,商品的售价是各不同的。比如说,对于普通消费者来说,对于最新的Apple产品,都是原价销售的;那么,对于学生消费群体来说,由于每年开学都会有高校折扣的政策,为了减少学生客户群体的购买压力,是在原价的基础上打

C++之智能指针类型转换应用总结(二百二十九)

简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀人生格言:人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.更多原创,欢迎关注:Android系统攻城狮1.前言本篇目的:理解C+

CSS选择器练习小游戏

请结合CSS选择器练习小游戏进行阅读(网页的动态效果是没有办法通过静态图片展示的)网址:请点击有些题有多种答案,本文就不一一列出了第一题答案:plate第二题答案:bento第三题答案:#fancy第四题答案:plateapple或者plate>apple第五题答案:#fancypickle第六题答案:.small或者

【校招VIP】产品基础知识之学习渠道

考点介绍:产品经理是一项复合型的工作,需要学习掌握的知识很多,能否通过学习掌握并构建一套属于自己的产品知识体系,是成为一名优秀产品经理的重要条件。系统化学习方法,可以分为以下6个步骤:1、明确的学习目标。2、梳理知识框架,画出知识体系的枝干。3、各个击破,逐步学习掌握分支知识。4、在实践中应用,形成产品思维方式。5、在

WMS仓储管理系统:从集成到面向未来的策略

现代供应链需求对WMS仓储管理系统形成了一系列复杂而又严格的要求,并且面临的挑战日益增多。WMS仓储管理系统需要与不同地区、不同业务以及其他的合作伙伴进行交互,从供应商到制造商,再到运输商和客户,一切都需要与WMS系统进行交互。还有,仓库系统本身不是静态的,它即是物理的,又依赖众多的玩家和渠道,它也在不断进化以满足市场

【Java】JDK8 jvm参数配置及说明

参数说明1.堆内存参数设置-Xms或-XX:InitialHeapSize=n设置堆的初始值指令1:-Xms2g指令2:-XX:InitialHeapSize=2048m-Xmx或-XX:MaxHeapSize=n设置堆区最大值指令1:-Xmx2g指令2:-XX:MaxHeapSize=2048m-XX:NewSize

3D目标检测框架 MMDetection3D环境搭建 docker篇

本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。需要大家提前安装好docker,并且docker版本>=19.03。1、下载MMDetection3D源码https://github.com/open-mml

数据结构 第二章作业 线性表 西安石油大学

在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?在顺序表中插入和删除一个结点时,平均移动的结点数量取决于两个因素:插入/删除位置和当前顺序表的长度。插入/删除位置:如果要在顺序表的开头或末尾进行插入/删除操作,不需要移动其他结点,所以移动的结点数量较少。但是,如果要在顺序表的中间位置进

热文推荐