avatar
文章
112
标签
42
分类
35

Home
Tags
Categories
Music
港乐Live Show
Eden Mo Blog
搜索
Home
Tags
Categories
Music
港乐Live Show

Eden Mo Blog

数据结构算法题目(三):计算技巧方法
发表于2024-04-11|C/C++数据结构数据结构题目|数据结构与算法
记录了一些原理简单、但是具体实现方式要想一想的问题。 手搓函数系列 不是所有设备都有C库函数,会手搓一部分C库是基本素养。 strlen:字符串长度 12345678int strlen(char *str){ int len = 0; while((*str)!='\0'){ //或(*str++)!='\0' len++; str++; } return len;} strcpy:字符串复制函数 注意细节问题: 需要使用staddr保存起始地址,返回的也是该起始地址; 为什么要返回起始地址:其一是因为上述原因,需要起始地址,防止调用时没有保存起始地址;其二可以和其他函数嵌套使用,例如计算长度strlen(strcpy(dest,src));其三也方便进行错误检查。 1234567char* strcpy(char*dest,char*src){ if(src==NULL||dest==NULL) ...
Linux操作系统:网络编程
发表于2024-03-25|操作系统Linux操作系统理论|网络编程•Linux
Linux网络编程是在Linux操作系统上进行的,允许开发人员编写能够进行网络通信的应用程序,如文件传输服务(FTP)、Web服务器、即时通讯工具等;这种编程广泛利用了Linux提供的网络接口和协议栈,使得应用程序可以和不同主机、不同程序进行信息交互,Linux网络编程主要包括使用套接字(Sockets)、系统调用、各种网络协议(著名的TCP/IP协议、UDP协议)来处理各种网络数据。 Socket编程 Socket简介 Socket也是进程间通信方式之一,1982年,Berkeley Software Distributions操作系统引入了socket作为本地进程间的通信接口,1986年,其又扩展了socket使其能够支持UNIX下的TCP/IP通信;socket是一个编程接口,返回一个特殊的文件描述符,使得网络通信方法就像操作本地文件(OPEN--WRITE/READ--CLOSE)一样简便,其可以兼容不同的网络协议,包括TCP/IP、UDP协议等著名协议。 Socket类型 流式套接字(SOCK_STREAM):提供面向连接、可靠的数据传输服务,数据无差错、无重复发 ...
【Openpcdet】部署之二:训练VOD数据集
发表于2024-03-18|Python|3D目标检测
在上一篇文章中,我们在服务器上部署了Openpcdet并完成了KITTI数据集的训练、可视化操作,这篇文章记录了在同样环境下更换数据集过程。 概述 KITTI点云数据是一个四维数据(空间坐标、反射强度),而VOD点云是一个七维数据(空间坐标、反射界面RCS、径向速度、径向补偿速度、时间戳)。我们的起始目标是去除VOD的标定文件,使用纯点云进行训练。但是这个目标没有达成,最大的原因是对于具体空间坐标转换不明确,因此不能代替标定文件。我在kitti上做了尝试,理由是有一款开源软件labelcloud给出了代码,当用户选择kitti格式标注时,它会自动给出这样的转换关系。我把代码应用在VOD数据集上,然而虽然得到了最佳的数据库表现,但是还是不足以用于训练,因为无法得到有效的梯度。另一方面应该说的是,Openpcdet的模块化完成得很好,另一方面是开源团队同样采取了Openpcdet作为他们的框架网络,尽管更改了数据集,只需要对若干个配置文件进行修改即可,而无需过多的修改训练、测试、可视化等demo。以下介绍了基于pointpillars框架训练毫米波雷达数据集的过程。值得注意的是,该文章 ...
关于魔法的咒语
发表于2024-03-07|奇奇怪怪的实现
仅作个人学习与思考记录。 7.19更新 无法访问OpenAI等网站 Cloudflare访问一些网站,如OpenAI的gpt等,会发生频繁跳验证,阻断无法访问等情况,这是因为在国外Cloudflare是一个很大的网络安全厂商,许多大型网站本身就使用了它的安全服务,不仅能够识别恶意的IP,还能阻断自身的IP。所以不是所有的公开官方IP都能够访问,当然如果是非CF提供服务的网站完全没有问题,这也是这个项目最大的缺点,这里将项目的proxyIP设置为能够解锁安全验证的IP,能够解决该问题,如146.70.175.x段(已失效)。 另外,不建议使用Math.random()来随机选择IP,因为只要列表有多个域名解析的IP失效,就会造成丢包情况,表现在卡顿,经常需要刷新,很影响体验,建议固定一个proxyIP即可。 自定义反向代理IP 从网络解决方案厂商那里可以获取特定城市的CF的公开入网IP,以荷兰阿姆斯特丹城市为例子筛选: https://www.zoomeye.hk/: "country:"NL"+city:"Amsterdam"+app:"Cloudflare"+po ...
【OpenPCDet】部署与【Open3d】可视化
发表于2024-03-03|Python|3D目标检测
在此前一篇文章【PointPillars】环境部署全纪实中介绍了原始Pointpillars作者部署模型的方法,由于仓库代码较老软件包版本适配上带来了很多麻烦。更糟糕的是,作者提供了KITTIVIEW可视化方法,利用web进行可视化,然而web集成度高,数据替换难,为后续更换数据带来很多不便。因此今天尝试使用Openpcdet部署pointpillars并实现数据的可视化。 基于KITTI集OpenPCDet框架Pointpillars训练 版本信息 成功验证版本: 显卡型号:3080ti cuda:11.3 python:3.8 pytorch:1.12.0 kornia:0.6.8 open3d:0.18.0(有说0.11.0好的,但是实际上过旧的包scikit-learn包报错会出问题) numpy:1.24.x Deploy Cuda安装 见之前的文章,不同版本同理,wget+sh安装,不赘述。 Pytorch环境搭建 新建环境 1conda create -n opcnet python==3.8 激活环境 12source activateco ...
Linux操作系统:进程与线程
发表于2024-03-02|操作系统Linux操作系统理论|Linux•进程与线程
Linux进程 进程和程序的区别 程序:指的是编译好的可执行文件,存放在磁盘上指令和数据的有序集合,程序是静态的,没有任何执行的概念,例如编译源文件之后的a.out文件、exe文件等。 进程:一个独立可调度的任务,执行一个程序所分配资源的总称,进程是程序的一次执行过程,进程是动态的,包括创建、调度、执行和消亡。 程序包含正文段、用户数据段,而进程除了包含这两个,还包括系统数据段,例如程序计数器(或称指令计数器,PC)存储下一条指令的地址、CPU的所有寄存器值(用于控制和计算等)、存储临时数据的进程堆栈等。 进程的结构 进程的标识:进程号(Process Identity Number,PID),例如我们在Linux使用不挂起nohup操作,会返回一个进程号,能够唯一地标识一个进程让我们找到。 操作系统记录了进程的PID,还会标识进程所属用户的UID,记录该进程分配的资源(内存、IO设备、文件)、进程的运行情况(CPU、磁盘、网络使用)等,这些都被记录在进程控制块(Process Control Block,PCB)中。 Linux进程包含三个段(这是给进程自身使用的 ...
数据结构算法题目(二):回溯、贪心、动态规划与图论
发表于2024-03-01|C/C++数据结构数据结构题目|数据结构与算法
以下所有内容编排按照Carl开源的算法攻略进行,感谢博主悉心的内容挑选和顺序编排。编程语言为C++; 回溯算法篇 回溯算法是一种经典的算法,旨在让计算机穷尽各种可能,广泛用于处理组合问题、子集问题、排列问题等等,回溯算法可以被设计得很精妙,开始时难以理解是不可避免的,关键还是从基本题目入手,逐渐体会其中原理,Carl以及其他算法博客已经把规律总结很好,本篇文章只是记录而并非教程;虽然回溯算法很巧妙,但是代码写法一般比较固化,回溯算法普遍使用的算法模板如下: 12345678910111213141516travel(){ if(//每次递归结束的条件) //深度控制,不可能无限向下递归 ..... return; //递归套循环是很常见的事情,递归控制搜索的深度,循环控制单次处理时的广度 for(){ //决策 //标记 ...... //travel //取消决策 //取消标记 ...... } ......} 有人把递 ...
C++ Qt入门
发表于2024-02-27|C++ Qt开发|C++ Qt
1. Qt基本文件组成 1. .pro项目文件 Qt版本不同,内容略有差异。如5.14版本,记录了模块、编译器版本、编译文件、输出路径等信息。 12345678910111213141516171819202122232425262728293031#4.x版本的Qt的gui与widgets是合并的,在5.x中分开了,模块化编程要载入。QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgets#编译器版本CONFIG += c++11# The following define makes your compiler emit warnings if you use# any Qt feature that has been marked deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how ...
IP核之加法器实验
发表于2024-02-26|FPGAverilog|Vivado IP核
目的:使用加法器,将两个输入数据相加输出,并且在matlab中验证计算误差。 数据的获取 由于人工设定数据量小,而大批量数据设定麻烦,因此要提前做处理。思路是利用两块RAM来存储起始数据,输入到加法器进行相加。Quartus可以使用mif文件进行RAM的初始化,vivado则可使用coe文件进行初始化。 为了使数据有一定的随机性又不失规律性,我们对正弦波进行采样,以获取位宽为8,位深为1024的数据,实际上这并不是最佳建议,因为位宽为8而位深为1024意味着有很大部分的数据会重叠,但从验证角度而言我们选择忽略这个问题。 12345678910111213141516171819202122232425262728293031323334353637383940#include <stdio.h>#include <math.h>#define PI 3.141592#define depth 1024 /*数据深度,即存储单元的个数*/#define width 8 /*存储单元的宽度*/int main(void){ ...
IP核之MMCM实验
发表于2024-02-17|FPGAverilog|Vivado IP核
PLL与MMCM FPGA中,外部时钟域与主时钟域不同步将导致各种各样的复杂情况的出现,因此异步时钟域的处理往往是一个重要的问题,也有各种各样的解决办法,如特定的握手协议、异步FIFO、双时域同步器、锁相环等。锁相环(PLL,Phase-Locked Loop)是一种能够自动跟踪输入信号相频,从而实现信号同步的电路,主要由鉴相器(PD,Phase Detector)、环路滤波器(LF,Loop Filter)、压控振荡器(VCO,Voltage Controlled Oscillator)组成。模拟鉴相器是一个乘法器,能够将相位差信号转换成控制电压,环路滤波是一个低通滤波器,平滑控制电压的变化,调节VCO的响应速度和稳定性,对能否锁相起到至关重要的作用。一种常用的压控振荡器通过变容二极管实现,根据不同的电压电容容值发生变化,从而实现了不同频率信号的输出,最后锁相环电路输出信号将实现与输入信号同步。 Altera公司IP核采用了PLL,赛灵思公司则采用了混合模式时钟管理(MMCM,Mixed-Mode Clock Manager),MMCM中集成了PLL以及其他部件,实现 ...
1…789…12
avatar
Eden
不做前端所以博客不漂亮,纯免费授权码来自公众号:归零者星的日与夜
文章
112
标签
42
分类
35
Follow Me
公告
文章任何错误、疏漏、建议麻烦请联系博主qq邮箱2436444815@qq.com
最新文章
boost库开发笔记(二):boost::asio异步网络编程2025-06-15
C++ 11 新特性总结(四):enable_from_this/shared_from_this2025-06-12
boost库开发笔记(一):boost::json使用与序列化2025-06-10
杂记:cmake版本更新/boost编译/ZMQ框架安装2025-06-08
(Private)基于发布与订阅特性的远程过程调用(RPC)网络设计2025-06-04
分类
  • C20
  • C++ Qt开发7
  • C/C++14
  • CPP17
    • C++ Generic Programming3
    • C++ boost库开发2
  • FPGA2
    • verilog2
标签
Markdown语法 vim使用 Git基本使用 OpenCV C++高阶 C++11 新特性 ASIO异步编程 C++ SFINAF and Type Traits 计算机网络理论 MathType快捷键 C++ Generic Programming Qt网络编程 boost库笔记 内存管理理论 C++ Qt Protobuf Effective C++ 网络编程 MIT6.S081 Linux 引导程序 Linux扩容 3D目标检测 信号与系统 数据库 格式化输出 数据结构与算法 Modern C++ Design 设计模式 C++基础 CMake 进程与线程 高等数学 Stanford CS144 Private Content MCU开发 线程池 Vivado IP核 奇奇怪怪的实现 CSAPP
归档
  • 六月 20255
  • 五月 20253
  • 四月 20254
  • 三月 20256
  • 二月 20255
  • 一月 20257
  • 十二月 20248
  • 十一月 20242
网站资讯
文章数目 :
112
本站总字数 :
487.3k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Eden
框架 Nodejs|你忘掉理想 只能忙于生活吗
粤公网安备 44010602011738号|粤ICP备2023072610号
搜索
数据库加载中