
🔥人工智能
笔记和资料,涉及到深度学习、自动驾驶等领域。
🔥ROS笔记
ROS机器人框架笔记。Beginer Friendly

✅Python教程
从0到1,在深入人工智能的全套Python笔记。

❤️经验经历
过往的感悟和思考。

✨碎片技术
学习工作中遇到的很赞的技术碎片,整理好了。

✨学习积累
相对于碎片技术的,已经沉淀为自己的资本的内容。
【Python】独特的进程池概念
🌟总结放开头
创建进程池可以形象的理解为创建了一个能够并行的流水线,只消耗一次创建流水线的成本,处理接收到的的任务。相对的,如果不使用进程池,每个要求并行的任务都会新建一次进程,浪费时间。
编程中本来没有进程池的概念的,除了python,其他的语言都是使用线程池(而进程是执行分隔开的任务)。python因为GIL的原因(仅限Cython),线程无法并行,所以把线程池的概念迁移到了进程,命名为进程池。
🌟python进程池
当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程。
但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。
初始化Pool时,可以指定一个最大进程数
当有新的请求提交到Pool中时
如果池还没有满,那么就会 创建 一个新的进程用来执行该请求;
如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行新的任务。
🌟进程池如何使用?
⭐️apply()
函数原型:a ...
【整理】有趣的资料和网站
网站:
Sphinx: Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license.
Taichi: Build world-class open-source graphics infrastructure and cloud platforms, making graphics computing benefit everyone.
Taitopia: The world’s first cloud-native 3D DCC platform. Create and share inspiring artworks with anyone, from anywhere, at any time.
Dasher v6:An information-efficient text-entry interface driven by natural con ...
【AI】目标检测任务的评估指标:AP、mAP
史上最易懂AP、mAP计算解析
【星光05】全局计时器
这是一个记录时间节点和代码运行顺序的计时器,可以在代码任意位置调用记录运行时间,保存到本地 .csv 文件。
✨代码部分
创建 timer.py 文件,创建 GlobalTimer 类。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import time as tfrom typing import Dict, Listimport pandas as pdclass GlobalTimer: """ 全局计时器,跨文件实现代码的时间节点记录。 """ __time_dict: Dict[str, List[float or None]] = {} # 时间存储字典 time_slice_count: int = 0 # 时间切片计数 def __init__(self): p ...
【星光04】Mmdetection3dlab 使用指南
MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代面向3D检测的平台
对安装 MMDetection3D有问题的同学可以看:【星光02】MMDetection3D 目标检测框架的 Docker 环境制作和改良
✨本文结合官方文档,梳理了基于 mmdet3d 开发人工智能模型的基本流程,整理相关的代码和小工具。如遇任何问题,可以查阅官方文档,MMDetection3D 的官方文档还是写得很好的(就是有一些多模态的代码跑不通,本文会注释部分问题命令)
一、数据预处理
官方对数据集预处理的文档:3D 目标检测 KITTI 数据集,流程如下:
解压所有 Kitti 数据集,并将文件按如下方式组织:
12345678910111213mmdetection3d├── data| ├── kitti| | ├── ImageSets| | ├── testing| │ │ ├── calib| │ │ ├── image_2| │ │ ├── velodyne| | ├── training| ...
【开发框架】Mmdetection3dlab Docker 环境改良和制作
✨本文提供了一套完整的基于Docker的目标检测研究环境搭建思路,对官方教程进行了一定的修改和补充。同时随文提供SSH和Jupyter server实践,均为可用状态,提供了可靠资料给小伙伴们探索。
注:官方docker适合运行框架内的模型,本文的修改的docker适合对模型进行修改和创新,对使用者的要求略高。
全流程
12345678910111. 下载需要的资源 1. 下载 Kitti 数据集 2. 下载 MMDetection3D 代码 3. 下载需要的模型参数2. 制作开发环境 1. 按说明将预训练模型参数和数据放到相应路径下 2. 编辑 Dockerfile 3. 制作 Docker 镜像 4. 创建 Docker 容器3. 开始使用x. 框架解析
官方文档:MMDetection3D
一. 下载需要的资源
1. 下载 Kitti 数据集
官方网址:3D Object Detection Evaluation 2017。
参见博文:KITTI数据集下载及解析,内附百度云盘链接。
2. 下载 MMDetection3D 代码
官方代码仓库 ...
【Python】生成某个文件夹的目录树
1. 使用背景
一些情况下我们想要生成某个工程文件夹的文件目录,写在文档里面逐一说明每个文件的功能,这是如果能自动生成文件树就是一件很方便的事。
2. 代码
在如下代码中,只需要给定path目录就可以。
123456789101112131415161718from pathlib import Pathtree_str = ''def generate_tree(pathname, n=0): global tree_str if pathname.is_file(): tree_str += ' |' * n + '-' * 4 + pathname.name + '\n' elif pathname.is_dir(): tree_str += ' |' * n + '-' * 4 + \ str(pathname.relative_to(pathname.parent)) + & ...
【方法】使用Powershell重启关键程序
参考:https://www.coder.work/article/6671779
1234tasklist | findstr cmdStart-Process cmd.exe -WindowStyle HiddenStop-Process -Id 11172; Stop-Process -Id 11172; Start-Process cmd.exe -WindowStyle Hidden
;:同一行写多句
|:管道,前一个的输出到后一个的输入
148-Torch-Install 施工中~
whl 大法好!
1pip install torch==1.11.0+cu115 torchvision==0.12.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html
jupyter notebook 中的ipykernel内核是jupyter notebook的python,尽量还是使用系统环境中的默认内核。
12345>>> torch.save(bn.state_dict(), 'bn.pt')>>> bn_state_dict = torch.load('bn.pt')>>> new_bn = torch.nn.BatchNorm1d(3, track_running_stats=True)>>> new_bn.load_state_dict(bn_state_dict)<All keys matched successfully>
https://www.w3cschool. ...
【Python星光】pandas 中 Merge 函数的参数 How 超详细解释
🍀碎碎念🍀
Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。
🌸唠嗑QQ群:兔叽的魔术工房 (942848525)
⭐️B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
在pandas中如果我们想将两个表格按照某一主键合并,我们需要用到merge函数。
1pd.merge(dataframe_1,dataframe_2,how="inner")
参数how有四个选项,分别是:inner、outer、left、right。
inner是merge函数的默认参数,意思是将dataframe_1和dataframe_2两表中主键一致的行保留下来,然后合并列。
outer是相对于inner来说的,outer不会仅仅保留主键一致的行,还会将不一致的部分填充Nan然后保留下来。
然后是left和right,首先为什么是left和right,left指代的是输入的时候左边的表格即dataframe_1,同理right指代dataframe_2。
left和right相当于inner ...
【学习计划】信息论 Information Theory 施工中~
学习目标:理解信息论,可以使用通俗易懂的语言说明信息论是什么,有什么作用,以及在哪里用。同时在学习的过程中与之前的相关思想建立连接。
信息论书籍:Information Theory, Inference, and Learning Algorithms
640页,主要是前两部分
作者配套课程:Course on Information Theory, Pattern Recognition, and Neural Networks - VideoLectures - VideoLectures.NET
共16节课,约20小时
推荐计划4天,每天吃透4节课的内容
第五天进行复习
作者资料:Inference Group: Home,David MacKay, born 22 April 1967, died 14 April 2016,卡文迪寻实验室机器学习和信息论方向专家。
🍀碎碎念🍀
Hello米娜桑,这里是英国留学中的杨丝儿。专注人工智能的情感研究,喜爱物理仿真和可解释性方向,ACGN爱好者。持续高质量输出中,点个关注吧。
🌸唠嗑QQ群:兔叽的魔术工房 ...
【数学】多元高斯分布的熵
作者: 引线小白-本文永久链接:http://www.limoncc.com/概率论/2017-01-10-多元高斯分布的熵/
知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证
一、若干引理
1、引理1.0
1、连续随机向量函数
考虑一般情况,我们有随机向量 x∼f(x)\displaystyle \bm{x}\sim f(\bm{x})x∼f(x)。现在有函数 y=g(x):Rk↦Rd\displaystyle \bm{y}=\bm{g}(\bm{x}):\mathbb{R}^k\mapsto\mathbb{R}^dy=g(x):Rk↦Rd。即有:
y=g(x)\begin{aligned}
\bm{y}=\bm{g}(\bm{x})
\end{aligned}y=g(x)
若上述方程有唯一解:
x=h(y)\begin{aligned}
\bm{x}=\bm{h}(\bm{y})
\end{aligned}x=h(y)
则称函数 x=h(y)\displaystyle \bm{x}=\bm{h}(\bm{y})x=h(y)是 y=g(x)\displa ...
【论文】论文写作结构分析
摘要 Abstract(在阅读60多篇论文的摘要后,总结得到以下的几种结构。)
“起”:这种结构适用于论点的提出,在前人贡献不多的情况下使用。
开篇介绍本篇论文的贡献。
列举实验或调查中的发现。
总结并与过往的相关成果进行对比。
“承”:这种结适用于综述类论文。
开篇介绍相关领域面临的问题。
给出过往的技术路线。
交代文章的目的,一般是整理后分析可行方> 向。
“转”:这种结构适用于应用类型的文章,提出一个过往模型的应用场景。
开篇介绍领域的背景,一般是以第三人称视角叙述。
提出文章针对的来自领域内的问题。
提出文章的观点或解决方案,一般是以摘要的第一个“We”开头。
汇报实验结论
“合”:这种适用于笔记类论文,主要是引导新人入行。
(没有固定的摘要格式)
开篇介绍主要目的,一般是总结前人。
引言 Introduction
结构:大背景、前人研究和出现了的问题和缺点、我的解决方案
相关研究
理论
实验
结论
索引 Reference:refere ...
Hexo博客加密插件
链接:hexo-blog-encrypt
【自设】白十设定集
d6b2705594faac2605c03c803e14c00035d10413ea80c31c868d080e9f28814805a992d8cd76654ef8a61d86d5ca38572e2175ea25c2d116f15af811ad2ea80e695ba0cd1adf4059d52e6399fde7c4e9621299b08caf0462177aa51e29deb0e35e0f9e4aaff019a2875309bd928c342f8663b4e863a95745c04720a45e8f3b3bb206aa735f6821fefdda49e1eba482cfdfab7110c9245f47d3c8f7d2a7ff696642616085dde1869480733ca76473e0a0ac6f2589a8b53b097a0d8fcad7942ef4d91b6501b8127c9c51f0b4ce985e136cbbfeae7b9b3d91b02947a2342b5aa159b907f1496bfe1c1f96645ef0e9218f29e37d045f5ebe40255 ...
【SLAM】数学相关记录
视觉里程计
刚体运动
旋转矩阵
变换矩阵
齐次坐标
角轴 Angle-Axis 也就是李代数 或 旋转向量 Rotation Vector
欧拉角 Euler Angles偏航角yaw,俯仰角pitch,滚转角roll
欧拉角存在万向锁 Gimbal Lock 问题
四元数 Quaternion,三个虚部的扩展复数
旋转矩阵 v.s. 角轴 v.s. 欧拉角 v.s. 四元数
优化:李群、李代数、李括号
李代数就可以求导了
导数模型、扰动模型
小孔成像模型
畸变
非线性优化
【声明】腾讯云博客同步声明
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3552s9i8p6w4k
【技术】Docker开发 施工中~
docker 开发很有学习价值
【扫盲】Cuda编程 施工中~
Clion需要VS2017-2019 inclusive!
使用clion搭建CUDA开发环境_QAQ-程序员ITS201_clion cuda
【项目实战】ROS Wifi 飞机控制项目(其一) 施工中~
技术储备:Arduino单片机、ROS机器人框架、网络通信、电子电路、人工智能
编程语言:C、Python、C++
从高中开始,笔者就有一个一直期望做的项目:飞机跟随。奈何当年的从知识储备到项目经验都存在不足,没有完成。临近年关,时间充沛,经过了超过3年的准备,我想是时候实现我这个小梦想了。
目标确定
在【TED】闪耀未来光芒的无人机Meet the dazzling flying machines of the futu演讲的第2分钟,提到了一个叫做tail-sitter的飞机,它可以做到像直升机一样悬停和垂直起降,也可以像固定翼一样高效飞行。
这是我期望的飞行器的模式,我希望我的飞机像狗狗一样,灵活的同时又乖乖的。这样的飞行器结构简单,但是他的控制模块采用了强化学习还有很多现代控制理论,需要大量的学习和设计工作。
当然,心急吃不了热豆腐,都拿出来展示的东西,肯定要经过大量的失败的实验才能造出来。这一篇先来制作一台原型机,把信号通信打通,强化学习还有控制的问题之后一点一点增加。
原型机设计
因为我们的飞机需要依赖强大的算力支撑,小飞机上的边缘计算已经无法满足需求,所以我 ...
【扫盲】Docker常用命令使用
🍀碎碎念🍀
Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。
🌸唠嗑QQ群:兔叽的魔术工房 (942848525)
⭐️B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
🌟docker中容器和镜像的关系
Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
🌟镜像操作
12345678910111213# 存在有Dockerfile的docker文件夹docker build ./docker# 查看所有镜像d ...
【自动驾驶】AutoWare笔记 施工中~
安装指令
安装ros-noetic-full
安装显卡驱动
从Source安装:
123456789101112131415mkdir -p autoware.ai/srccd autoware.ai/wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos"wget -O autoware.ai.repos "https://raw.githubusercontent.com/Autoware-AI/autoware.ai/master/autoware.ai.repos"vcs import src < autoware.ai.reposrosdep update# sudo apt-get install ros-noetic-jsk-recognition-msgs ros-noetic-jsk-rviz-plugins ros-noetic-lanelet2* ro ...
【机器人】多传感器融合定位前沿技术小笔记
碎碎念:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客技术点集中在机器人、人工智能可解释性、数学、物理等等,感兴趣地点个关注吧,持续高质量输出中。
唠嗑QQ群:兔叽的魔术工房 (942848525)
B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
⭐️参考
[草稿] X. Zhang, H. Liu, Z. Zou, and M. Zhou, Multi-sensor Fusion for Autonomous Driving.
⭐️关键观点
前人的研究把定位和建图任务(SLAM)从实验室带到了现实场景。实验室场景和现实场景最大的区别是灵活度的提升。
自定位任务(self-positioning)现阶段有两个方向:
基于内部传感器(GPS、IMU等)根据车辆的运动信息进行定位的任务,具有累积误差的问题。
基于激光雷达等通过采样环境数据进行定位的SLAM技术,受限于环境,不适宜在低特征环境(如空旷地域)进行定位任务。
⭐️关键词整理
real-time posioning problems, coarse-and-fine hybrid posi ...
【机器人】多传感器标定前沿技术小笔记
碎碎念:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客技术点集中在机器人、人工智能可解释性、数学、物理等等,感兴趣地点个关注吧,持续高质量输出中。
唠嗑QQ群:兔叽的魔术工房 (942848525)
B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
⭐️参考
[草稿] X. Zhang, H. Liu, Z. Zou, and M. Zhou, Multi-sensor Fusion for Autonomous Driving.
⭐️关键观点
因为传感器融合可以起到优势互补的作用,所以多传感器标定是不可或缺的一步。
因为使用标定板或者人工标定的传统方法不能解决使用中误差累积等一系列问题,所以一个在线的实时的标定策略是必要的。
激光雷达提取出来的线特征和相机提取出来的线特征可以很好的进行匹配,进而实现标定任务。
虽然线特征是一种很可靠的几何特征,但是实际使用也存在一些问题,例如在行人极多的情况,或者说在复杂环境中,线特征就显得没有那么可靠了。
在大环境信息(像是GPS信号)缺失的情况下进行一个主动的切换,实现自适应感知/定位。(从GF-SLAM切换到F ...
【机器人】ROS消息机制横向对比,到底该如何进行选择?精简解释
每一种消息机制都有自己的应用场景。
类型
使用场景
话题Topic
⭐️单工通信,适用于一对多场景(如传感器数据流)。
服务Service
⭐️适合同步任务,节点函数调用。⭐️可以是简单请求/响应式交互场景,如询问节点当前状态
动作Action
⭐️适合异步任务,⭐️可以是大量请求/响应式交互场景(如实时通信),⭐️尤其是执行过程不能立即完成的(如导航前往某一地点),⭐️也可以是后台任务分配的场景下使用。
每一种通信方式都有自己的应用场景。在消息是第一公民的ROS中,我们在设计软件的时候首先就要想到每一种消息采用的通信方式是怎样的,并且通过ROS节点图的方式画出来,以指导软件开发工作。
【机器人】满级码农入门ROS1机器人编程QA
编程思想:消息是ROS程序的一等公民。
碎碎念:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客技术点集中在机器人、人工智能可解释性、数学、物理等等,感兴趣地点个关注吧,持续高质量输出中。
唠嗑QQ群:兔叽的魔术工房 (942848525)
B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
⭐️知识点整理
【机器人】开发系统镜像制作指南
【机器人】ROS1学习笔记:架构部分
【机器人】ROS1工程案例:最简单的信息传递
【机器人】ROS1工程案例:自定义消息类型
【机器人】ROS1程序运行实用技巧
【机器人】ROS1程序中的服务Service:精简解析
【机器人】ROS1工程案例:服务和动作
❓问:ROS框架的设计理念是怎么样的?
ROS2采用分布式架构,采用自发现的方式进行节点间的通信建立。
ROS1相对就显得不伦不类,因为rosmaster,也就是主节点的存在,ROS1的架构介于分布式系统和客户端/服务端系统之间。
主节点负责命名,起到和地址字典类似的作用。
⭕️答:ROS1关键词域
graph TB
subgraph 程序相关
...