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


    一、机缘

    大一暑假的时候,老师让每周写自己学习了什么,然后以博客的形式记录下来,后来坚持的人很少,我也是其中之一,没有坚持下来。后来,有个同学经常分享自己学习成果,也就是把自己的博客发群,确实质量也不错,时间长了,他的粉丝什么的涨的就比较多,现在也是某一个领域的大佬了。我后来坚持发博客一方面受到了他的影响,另一方面我也在学习一些新的东西,也想以某种形式记录下来,这正好遇到了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
    
    
    • 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
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    憧憬

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

  • 相关阅读:
    多环境的axios配置和简易版配置
    数据可视化工具调研
    智慧安防视频监控系统EasyCVR平台突然运行异常,是什么原因?
    PostgreSQL之IOException
    工业I/O模块的功能和应用介绍
    Day1:面试必考题目
    C++-win32-SendMessage-最简单的进程间消息传递-消息钩子
    【博主已解决】【npm】npm publish 发布包报错 代码:ERR400
    webpack plugin
    3、动态标签详解: if、 where、trim、set、 foreach、choose、bind
  • 原文地址:https://blog.csdn.net/weixin_43722052/article/details/133165962