自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林小川的博客

慎终如始,则无败事

  • 博客(135)
  • 收藏
  • 关注

原创 读书计划-

2020年 To do list<python 基础教程> 嵩天<图解机器学习><python 机器学习教程><图解深度学习><python 深度学习教程>2019年 finish list<刻意练习,如何成为一个高手><遥远的救世主><算法图解><...

2018-10-24 17:43:40 1382 1

原创 Pytorch(2):关于torch.cat()与torch.stack()

用法:torch.cat(): 用于连接两个相同大小的张量torch.stack(): 用于连接两个相同大小的张量,并扩展维度实例:import torcha = torch.tensor(torch.arange(10)).reshape(3, 3)b = torch.tensor(torch.arange(10, 100, 10)).reshape(3, 3)print(a)Out[7]: tensor([[1, 2, 3], [4, 5, 6],

2022-05-29 10:23:16 1401 1

原创 Pytorch (1): 张量的广播和运算

一. 主题:0. 理清Pytorch中广播的计算原理1. 记录Pytorch中较为特殊的计算方法2. 记录Pytorch矩阵计算方法二. 广播:当张量的维度shape不一致时,广播机制会自动调整张量维度使得计算可以顺利进行。实例1:张量t2.shape = (3, 4),张量t21.shape = (1, 4),其计算过程如下,将t21复制为shape=(3, 4),然后对应位置相加计算。计算结果:实例2:当两个张量的形状上有两个分量不同时,只要不同的分量仍然

2022-04-01 16:34:30 2315

原创 ROS2 (4): 通讯接口

1. 接口格式话题接口int64 num服务接口int64 aint64 b---int64 sum动作接口int32 order---int32[] sequence---int32[] partial_sequence2. CLI command查看接口列表ros2 interfaces list查看一个接口的详细内容ros2 interface show std_msgs/msg/String查看一个接口的所有属性ros2

2022-01-24 17:19:10 1417

原创 ROS2 (3): 话题通讯

1. 话题概念话题在ROS2中的以发布和订阅作为通讯方式2. 编写发布函数from typing import Counterimport rclpyfrom rclpy.node import Nodefrom std_msgs.msg import Stringclass TomNode(Node): def __init__(self, name): super().__init__(name) self.get_logger.

2022-01-24 16:20:02 753

原创 ROS2(2):C++ ROS node coding

1. 创建C++功能包cd ~/ws/src,输入如下指令创建功能包ros2 pkg create dog --build-type ament_cmake --dependencies rclcpp创建结果如下:在~/ws/src/dog/src下创建CPP文件2. 代码编写导入库时,发现如下问题,无法找到相关库(仅在VScode中出现如下问题)打开"include path setting",添加/opt/ros/eloquent/**在dog.cpp文件.

2022-01-24 15:21:27 1573

原创 ROS2 (1): 创建工作空间及创建python节点

1. 创建工作空间mkdir -p 02_ros_ws/src进入terminal,查看文件夹2. 创建功能包ros2 pkg create tom --build-type ament_python --dependencies rclpycd 进入src文件夹后,执行上述命令。其中 ros2 pkg create <tom> --build-type <type> --dependencies <denpendecies> 如中括号中填写内

2022-01-24 12:00:19 4226 1

原创 自动驾驶入门(十二):基于Opencv的车道线识别

车道线识别有两种方法:基于Opencv的传统视觉车道线识别方案 基于深度学习的车道线识别方案本文将介绍基于Opencv的传统视觉车道线识别方案。传统的车道线识别解决方案流程图如下:代码实现如下所示,具体描述 @ 陈光 博主以及 @开水果摊能卖你生瓜蛋已经描述的很清晰了,请直接查看链接import cv2 as cvimport numpy as npdef region_of_interest(img, vertices): mask = np.zeros_like.

2021-09-15 19:17:52 4521 1

原创 自动驾驶入门(十一):深度估计

在自动驾驶感知算法中,有一个重要的分支是单目视觉检测,在检测目标是单目相机最困难的地方在于恢复目标物的深度信息,无论使用小孔成像还是逆透视变换等方法都无法做到任意场景的鲁棒,并且在远距离也有较好的深度回复能力。神经网络给我们提供了一种全新的解决思路,使用cnn直接回归出目标在相机坐标系下的深度信息,这种做法可在一定程度上达到激光雷达的效果,令人兴奋!如果使用多个不同焦距的相机进行拼接,完全有可能实现纯视觉感知。BTS网络是目前市面上相对优秀的单目深度估计网络,他的主要引入了局部平面假设来回复深度图的

2021-09-09 18:54:12 1480

原创 自动驾驶入门(十):车辆、行人检测

链接:https://github.com/cfzd/Ultra-Fast-Lane-Detection链接:https://pan.baidu.com/s/1bhc_ZohcP21Nnrul5STCKg提取码:mkbo推导及定义内容,请查转载文档《自动驾驶入门(八):Yolo V3》

2021-08-22 17:40:22 1039

原创 自动驾驶入门(九):传统测距

世界坐标系中的物体可以通过相机的外参和内参转到图片坐标系下(透视变换,3D->2D),但是反过来却是无法实现的,因为缺少一个维度的信息(一般来说是深度信息),或者说2D点和3D点并不是一一对应的关系,一个2D点可以对应多个3D坐标。因此单目测距需要借助一些辅助信息才可以实现。逆透视变换逆透视变换顾名思义是透视变换的逆过程,在自动驾驶中我们可以借助水平地面假设这一辅助信息实现。通过这一假设,原本世界坐标系中3维的地面(z=0)就退化成了一个二维平面,因...

2021-08-22 17:34:14 1847 1

原创 人生七年:28岁

不知何时开始喜欢7这个数字,一周有七天,有人说是因为上帝创造世界,并指定了每周都有七天,生命在每一个七天里做轮回。是否可以把7的时间尺度拉大一点?变成了七个星期,七个月,七年,我想到了一个纪录片《人生七年》,这也是我想总结自己另外一个原因,七年为期,我改变了什么?21岁的自己:身体:1000米3分15秒,可以在篮球场上运动几个小时; 心理: 从众心理:吃饭一定要叫上室友,极其担心和害怕自己被孤立,我想是骨子里的自卑和缺乏安全感吧,不知道是否大部分的留守儿童成年后都有这个通病; 单纯自信:..

2021-08-11 14:44:48 510 1

转载 自动驾驶入门(八):YoloV3

YOLO definition首先我们要了解什么是YOLO?YOLO 是一种使用全卷积神经网络的实时目标检测算法,它是You Only Look Once的缩写。与其他目标检测的算法相比,YOLO在一个网络模型中完成对图像中所有对象边界框和类别预测,避免了花费大量时间生成候选区域。它的强项是检测速度和识别能力,而不是完美地定位对象。与目标识别算法不同,目标检测算法不仅需要预测目标的类标签,而且需要提供检测目标的位置。YOLO 算法对整个图像使用全卷积神经网络,将图像划分为多个网格区域,并预测每.

2021-08-08 20:37:58 1838

原创 自动驾驶入门(七):基于Yolo3的红绿灯目标检测

代码:介绍:Yolo介绍

2021-08-03 20:47:01 3816 1

原创 自动驾驶入门(六):反向传播及链式法则

1. Ubuntu环境安装配置安装ubuntu18.04,参考链接:https://blog.csdn.net/qq_43106321/article/details/105361644 安装完成后,在进入grub启动界面时,10秒内使用↑↓键选中Ubuntu,按e键进行编辑,在倒数第二行quiet slash后添加nomodeset,该方法只是暂时禁用Nouveau显卡驱动 下载cuda11.1 登录cuda下载页面 https://developer.nvidia.com/cuda-

2021-08-02 17:00:49 970

原创 Spark (一):大数据概述

1. 基础概念单线程:IO操作与CPU操作交替进行;多线程:使得进行IO操作与CPU操作可以同时进行;多进程:可以理解为使在多个核上使用CPU进行操作;2. 多线程,多进程的选择2.1 CPU密集型计算压缩解压缩,加密,正则表达式搜索,特点是CPU占用率高。->多进程计算2.2 IO密集型计算文件处理程序,网络爬虫程序,读写数据库程序。特点是IO读写操作,CPU占用率较低。->多线程计算2.3 多线程优点:占用资源小;缺点:Python中多线程只能

2021-08-02 15:38:59 2108

原创 Pytorch入门(一):工具箱demo

1. Pytorch简介(个人理解)前置知识基础:numpynumpy会把其ndarray放到CPU中计算,而在Torch中产生的Tensor是放到GPU中计算的(Tensor也可以放到CPU计算)2. 数据处理工具箱数据处理工具箱主要包括两个模块:Dataset & DataLoader。Dataset 用于自定义数据集,它是一个抽象类接口,自定义数据集时,需要实现两个函数: __len__ 与 __getitem__,两个魔法方法,第一个是获取数据长度,第二个是以迭代器的方式

2021-07-11 17:36:53 458

原创 自动驾驶入门(五):相机标定

本教程所使用标定工具为一个9x7的棋盘格,单格尺寸123mm。1. 内参标定1.1 借助ROS中的usb_cam功能包,具体实现如下:- 安装usb_cam功能包$ sudo apt-get install ros-kinetic-usb-cam- 安装标定功能包$ sudo apt-get install ros-kinetic-camera-calibration- 启动摄像头$ roslaunch usb_cam usb_cam-test.launch- 启动标定包$ rosr

2021-06-27 13:35:57 1392

原创 自动驾驶入门(四):传感器介绍

1. 激光雷达现有激光雷达波段一般为905nm,class 1人眼安全1.1机械式激光雷达机械式激光雷达

2021-06-14 20:36:06 1256 1

原创 自动驾驶入门(三):深度学习环境配置

1.安装ubuntu18.04https://blog.csdn.net/codeHonghu/article/details/1119406562. 禁用NVidia驱动安装完成后,在进入grub启动界面时,10秒内使用↑↓键选中Ubuntu,按e键进行编辑,在倒数第二行quiet slash后添加nomodeset,该方法只是暂时禁用Nouveau显卡驱动3.下载cuda11.13.1 登录cuda下载页面https://developer.nvidia.com/cuda-...

2021-05-19 19:01:08 882 6

原创 自动驾驶入门(二):自动驾驶分级和定义

1. 自动驾驶分级标准SAE,美国汽车工程学会L0:无自动化,完全由任内驾驶者控制汽车;L1:驾驶支持,通过驾驶环境对方向盘和加速减速中的一项操作提供支持,其余操作由人类驾驶员操作;L2:部分自动化,通过驾驶环境对方向盘和加减速中的多项操作提供支持,其余由人类驾驶员操作;L3:有条件的自动化,由自动驾驶系统提供所有的驾驶操作,根据系统要求,人类驾驶员提供适当的应答,车内需要配备驾驶员;L4: 高度自动化,由自动驾驶系统完成所有驾驶操作,根据系统要求,人类驾驶员不一定要提供所有应答,车

2021-05-16 10:29:35 5176 4

原创 自动驾驶入门(一):博客系列简介

极简自动驾驶感知入门1. 课程介绍近年来,自动驾驶的概念频繁出现在各大新闻媒体和社交网络上,引起了广泛的关注与讨论。同时随着新造车势力(特斯拉、蔚来、小鹏、理想等)和自动驾驶独角兽公司(图森、Momenta、小马智行等)的崛起,自动驾驶相关人才的缺口也日益显现。然而无论对在校学生或是其他行业的从业者来说,入门自动驾驶都不是一件容易的事情。复杂的算法原理、高昂的硬件价格和难以获得的真实数据阻碍了一批又一批自动驾驶的爱好者们。市面上现有的课程大多包罗万象,冗杂的知识点和细致的原理解释占据了大量的学.

2021-05-16 09:28:27 1597 3

原创 Elasticsearch(三):设置账号密码

1. 参考连接:Elasticsearch、Logstash、Kibana手把手教你添加密码设置 - 简书 (jianshu.com)elasticSearch 设置用户名密码 && 查询_mengo的博客-CSDN博客2. 操作打开 Elasticsearch 安装目录:~\elasticsearch-7.7.1\config打开文件:在最下方添加:xpack.security.enabled: truexpack.license.self_gen

2020-12-15 14:05:56 6747

原创 python(十二):可变对象与不可变对象

1. 定义:可变对象:字典,列表,自定义对象不可变对象:数字,字符串,元组,bool2. 代码实现2.1 可变对象代码a = [1, 2]print("id for a is {}".format(id(a)))def add_3(n): print("id of {} is :{}".format(n, id(n))) n.append(3) print("id of {} is :{}".format(n, id(n)))输出id for

2020-11-26 15:53:03 298

原创 RabbitMQ (七):基于不同消费速度实现消息发送案例

1. 功能需求实现文件夹列表信息发送给不同的消费者; 实现接收消息反馈给交换机,如果无反馈,丢失消息需要有备份机制;eg. 一个消费者意外终止,未消费的消息将发送给下一个消费者; 实现消息保护机制,如 RabbitMQ 服务死机,处于队列中的消息不丢失; 实现基于不同的消费者的消费速度,发送不同的消费消息;eg. 一个消费者B运行时间为10分钟,一个消费者C运行时间为0.01s,有10个消息,那么应该将消息发送给B共1个消息,发送给C共9个消息;2. 代码实现生产者:import pi

2020-11-23 18:48:22 457

原创 RabbitMQ(六):队列绑定关系模糊匹配 topic

1. 参考链接:https://www.rabbitmq.com/tutorials/tutorial-five-python.html2. 代码生产者:与使用路由的方式不同,交换机形式为 topic 时,可以做到交换机与绑定信息的模糊匹配,其他参数几乎与 routing 方式一致。import pikaimport datetime, timeif __name__ == "__main__": connection = pika.BlockingConnection

2020-11-18 19:11:23 1235

原创 prescan(十二):激光雷达仿真

选择三个120°点云传感器配置成一个360°点云传感器将三个激光雷达数据的Range, theta, phi, intensities,组合成一个数据在ROS端配置点云数据 point_cloud2在matrix中出来的数据是多维的,需要使用一个reshape将数据变为一维在simulink工具栏中配置,修改数据的大小在ROS中配置一定要给出currentl...

2020-11-18 18:26:20 3586 5

原创 RabbitMQ(五):Routing 方式

1. 参考链接https://www.rabbitmq.com/tutorials/tutorial-four-python.html2. 关键字Bindings: 绑定,此参数用于绑定队列和对应的交换机; routing_key: 指定特定的绑定关系。eg. A点到B点的一条路的名称,如上海到江苏的沪蓉高速; exchange: 特定的交换机的名称,如上例中的上海; queue: 队列名称,如上例中的江苏苏州; exchange_type: fanout: 群发机制,类似于发

2020-11-18 14:31:05 237

原创 RabbitMQ(四):Publish and Subscribe

1. 参考链接https://www.rabbitmq.com/tutorials/tutorial-three-python.html2. 关键点之前提到的 Work queue只能将任务发送给单独的一个 worker,即只有一个消费者可以消费其中的一条消息; work queue的方式需要指定特定的消息队列 queue 的名称,而 publish 与 subscribe 不需要; 发布 publish 和订阅 subscribe 可以做到一个生产者发布的消息,可以被多个消费者拿到并执行任

2020-11-17 15:38:24 287

原创 RabbitMQ(三):Work Queues

1. 参考链接:https://www.rabbitmq.com/tutorials/tutorial-two-python.html2. 代码实现定义生产者,其中有下列参数需要留意:durable= True,此参数表示消息的持久化,如果生产者宕机了,设置为 True,可以保证即使宕机,消息会保存在硬盘里面(硬盘在RabbitMQ的管理界面可以指定); delivery_mode = 2,此参数和durable一同使用,可以确保消息在RabbitMQ服务重启也不会丢失; auto_a.

2020-11-17 11:34:39 209

原创 RabbitMQ(二):Point to Point

1. RabbitMQ消息发布订阅方式1.1 单点对单点模式1.2 一对多模式1.3 发布订阅模式1.4 路由模式1.5 话题模式1.6 RPC模式2. 单点模式2.1 生产者参考链接:https://www.rabbitmq.com/tutorials/tutorial-one-python.html创建连接,端口号5672为RabbitMQ的端口号(15672指的管理界面的端口号:http://localhost:15672/)imp

2020-11-16 16:35:58 333

原创 RabbitMQ(一):安装

1. 安装参考链接:http:xxx2. 异常处理:查看RabbitMQ的状态报错信息如上所示,定义错误信息,查看如下链接:https://www.liuchang.org/windows-rabbitmq-bao-cuo-error-unable-perform-operation-node/得知,一定是cookie的指向是不对的,所以打开三个地方的cookieC:\Users\Z0022341\erlang.cookieC:\Users\Administrator\erl

2020-11-16 14:04:51 152

原创 python(十一):装饰器

1. 定义装饰器:返回一个函数的高阶函数2. 理解编写最简单通用装饰器函数def a_new_decorator(a_func): def warpper(): print("do it before excute a_func") a_func() print("done after excute") return warpper@a_new_decoratordef b_func_req_decorator()

2020-10-20 11:32:59 184

原创 Elasticsearch(二):理解index, Document, Field

1. 概念1.1 Document定义: 可以被搜索数据的最小单位。特性:文档会被序列化成Json格式,每个文档都有一个Uid,每个文档的id是独一无二的。Metadata元数据:标注文档的相关信息_index: 文档所属的索引名称_type:文档所属类型名称_id:文档唯一ID_source:文档原始的json数量? ->现在项目中没有用到_version:版本信息可以解决部分冲突问题_score:相关性打分截图如下:1.2 index定义:I

2020-10-10 15:22:57 2335

原创 Python: 文件操作

def move_to_failfolder(file_path, src_folder, dst_folder): """ move folder and it's sub files to another folder :param file_path: src folder father folder :param src_folder: source folder :param dst_folder: destination folder :retu.

2020-07-20 19:59:26 281

原创 Python: 日志记录模块

日志记录模块,根据配置字灵活调用import loggingimport osfrom datetime import datetimedef gen_logger(log_level: str = 'INFO', log_path: str = os.getcwd()): # Generate logging object logger = logging.getLogger(__name__) #create log file name log_name

2020-07-15 14:59:59 202

原创 Elasticsearch(一):简单入门及配置

一、ElasticsearchNotes:支持单机单节点与单机多节点的方式,官方提供Docker Image,可以直接下载及安装1. 文件目录结构:bin:脚本文件,启动elasticsearch,安装插件,运行统计数据等config: 集群配置文件,elasticsearch.yml, user, role based相关配置JDK: Java安装环境data: path.data, 数据文件lib: Java类库logs: 日志文件modules:包含所有ES模块

2020-06-29 13:37:17 328

原创 Prescan(十三):amesim+prescan+simulink联调

amesim与prescan联调环境变量配置,编译器配置:https://blog.csdn.net/qq_31239495/article/details/98868090一、amesim中配置simulink接口在工具栏打开 interface:打开create interface block: 左侧是amesim的输出,simulink的输出端,右侧是amesim的输入,...

2020-03-26 20:20:46 2598

原创 Prescan(十四):为障碍物信息添加高斯噪声

背景:在自动驾驶仿真中,经常出现障碍物信息丢失的情况,为了验证算法的鲁棒性,假设在完美感知的情况下,即直接为算法提供障碍物信息的情况下,将障碍物的坐标进行处理,验证规划决策控制算法。详细步骤:使用UDP及goto,from 模块将两个障碍物信息打包,如图所示:仅对xyz坐标进行处理,真实情况下,还有速度,长宽高等数据将其中一辆车的位置信息进行处理,使得接收到障碍物消息部分丢失,...

2020-03-26 20:20:30 995

原创 Prescan(十):配置多车在路口同时会车

一、场景在路口需要会车的情景(思考:在这个会车设置中,已经规定了车辆的运行轨迹,即算法没有介入车辆控制,这样做有何意义?)二、建模首先搭建道路模型在路口画出相关车道行驶线,为了保证多车会车,将会车点尽量选在交叉路口添加车辆将车辆摆放至会车路口点击左侧同步按钮设置参考线编译通过后运行即可...

2020-03-26 20:19:47 2471 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除