【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、单辆车轨迹的聚类与分析
- 1.引入库
- 2.聚类
- 3.聚类评价
- 二、整个数据集多辆车聚类
- 1.聚类
- 2.整体评价
前言
空间聚类是基于一定的相似性度量对空间大数据集进行分组的过程。空间聚类分析是一种无监督形式的机器学习。通过空间聚类可以从空间数据集中发现隐含的信息。
作者在科研工作中,需要对某些车辆的轨迹数据进行一些空间聚类分析,以期望发现车辆在行驶过程中发生轨迹点”聚集“的行为。当等时间间隔的轨迹点在某片区域分布过于”密“时,我们往往可以在这片区域发现某些信息,例如车辆在这片区域发生驻留或者低速行驶等。
在空间聚类算法中,DBSCAN是一种简单且有效的聚类算法,它有着基于密度、不需要预先指定聚类数、计算效率高的优点。
本文以如下格式车辆轨迹数据为例,实提供了DBSCAN对车辆轨迹数据聚类并分析的方法:
collect_time | id | lon | lat |
---|---|---|---|
时间 | 车辆标识 | 经度 | 纬度 |
为了尽量去除噪声影响,车辆轨迹数据已经经过滤波平滑,平滑方法可见作者之前文章:https://blog.csdn.net/jgsecurity/article/details/140608431。
一、单辆车轨迹的聚类与分析
对单辆车的轨迹数据,采用DBSCAN算法进行空间聚类。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种经典的密度聚类算法,适用于发现任意形状的聚类簇。其原理本文不做阐述,如有需要,可以自行搜索。
1.引入库
使用了数学计算库numpy和pandas,机器学习库scikit-learn,地理相关库shapely和geopy,绘图库matplotlib。
import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn import metrics
from shapely.geometry import MultiPoint
from geopy.distance import great_circle
import matplotlib.pyplot as plt
2.聚类
在进行聚类之前,先使用shapely和geopy库实现了get_centermost_point函数。其输入数据cluster是列表类型,表示每一组聚类的点集。作用是在获得了每个聚类之后,计算出该聚类的中心点。
# 计算每个聚类的中心点
def get_centermost_point(cluster):# 计算整个点集合的质心点centroid = (MultiPoint(cluster).centroid.x, MultiPoint(cluster).centroid.y)# 取点集合中离质心点最近的点为中心点centermost_point = min(cluster, key=lambda point: great_circle(point, centroid).m)# 返回中心点return tuple(centermost_point)
对单辆车的聚类函数cluster_traj,其输入数据data是dataframe类型,表示一辆车的轨迹数据。
# DBSCAN聚类
def cluster_traj(data):# 提取dataframe中的经纬度列coords = data[['smoothed_lat', 'smoothed_lon']].values# 地球半径(km)kms_per_radian = 6371.0088# 定义epsilon为0.5(km),经纬度点间距离计算使用haversine公式# 由于haversine公式返回的距离是以弧度为单位,因此将距离阈值转换为弧度epsilon = 0.3 / kms_per_radian# 定义min_samples为6。epsilon和min_samples参数需要根据自己的数据调整。db = DBSCAN(eps=epsilon, min_samples=6, algorithm='ball_tree', metric='haversine').fit(np.radians(coords))cluster_labels = db.labels_# 离群点的聚类标签为-1,其余数据聚成n类,标签为为0到n-1。num_clusters获得总共的聚类数n。num_clusters = len(set(cluster_labels) - set([-1]))print('Clustered ' + str(len(data)) + ' points to ' + str(num_clusters) + ' clusters')data['c_label1'] = cluster_labels# 输出聚类clusters的情况,假如聚成了4类,每类2个点:# 0: [[30.6, 104.0], [30.9, 78.5]],# 1: [[30.6, 104.4], [30.4, 10.0]],# 2: [[30.5, 103.6], [30.7, 103.6]],# 3: [[30.8, 104.9], [30.3, 104.3]clusters = pd.Series([coords[cluster_labels == n] for n in range(num_clusters)])print(clusters)# 输计算噪声点占总点数的比例ratio = len(cluster_labels[cluster_labels[:] == -1]) / len(cluster_labels)print('噪声点占总点数的比例: ' + str(ratio))# 只有聚类数量>1时才能计算指标if num_clusters > 1:# 计算轮廓系数,作为聚类评价指标sc_score = metrics.silhouette_score(coords, cluster_labels)print('轮廓系数: ' + str(sc_score))# 计算DBI指标dbi_score = metrics.davies_bouldin_score(coords, cluster_labels)print('戴维斯-布尔丁指数: ' + str(dbi_score))print("\n")return data
3.聚类评价
需要注意的是,每辆车聚类之后,还计算了噪声比、轮廓系数(SC)、戴维斯-布尔丁指数(DBI)来评价聚类效果。其中SC指标越接近1,聚类效果越好;DBI指标越小,聚类效果越好。
除此之外,还可以使用matplotlib库通过绘制散点图的方式,来肉眼观察这辆车的聚类效果,只需在cluster_traj函数中的return语句前插入下列代码(matplotlib绘制的散点图用于实验时判断聚类效果来调整参数,若要绘制更美观的图,可考虑使用folium库在地图上绘制轨迹点):
# 获得每个聚类的中心点centermost_points = clusters.map(get_centermost_point)# 将各个聚类的中心点存入rep_pointslats, lons = zip(*centermost_points)rep_points = pd.DataFrame({'lon': lons, 'lat': lats})# 绘制散点图colors = list(mcolors.TABLEAU_COLORS.values()) # 使用Tableau颜色作为聚类颜色noise_color = 'black' # 离群点颜色fig, ax = plt.subplots(figsize=(12, 8))for i, cluster in enumerate(clusters):if i == len(colors): # 如果聚类数超过颜色数,循环使用颜色color = colors[i % len(colors)]else:color = colors[i]ax.scatter(cluster[:, 1], cluster[:, 0], s=30, c=color, marker='o', label='Cluster ' + str(i))# 绘制离群点noise_points = coords[cluster_labels == -1]ax.scatter(noise_points[:, 1], noise_points[:, 0], s=20, c=noise_color, marker='x', label='Noise points')ax.scatter(rep_points['lon'], rep_points['lat'], c='red', marker='*', s=100, label='Cluster Centers')ax.set_title('DBSCAN Clustering of Trajectory Data')ax.set_xlabel('Longitude')ax.set_ylabel('Latitude')ax.legend()plt.show()
二、整个数据集多辆车聚类
本人的数据集中包含多辆车的轨迹数据,这些数据统一存储一个CSV文件中,并且已经按照id和collect_time数据升序排序。
1.聚类
使用groupby的方式对车辆按id分组,每组分别调用cluster_traj即可。
#假设已经读入数据dfclustered_data = pd.DataFrame()# 按车辆id分组,对每辆车的数据进行聚类grouped = df.groupby('id')for name, group in grouped:print('车辆id:' + name + ' 轨迹点数:' + str(len(group)))clustered_group = cluster_traj(group)clustered_data = pd.concat([clustered_data, clustered_group], ignore_index=True)
2.整体评价
可以在函数外设置两个全局变量列表sc_scores和dbi_scores存储每辆车的评价指标。
# 全局变量用于存储指标
sc_scores = []
dbi_scores = []
对cluser_traj函数中的计算轮廓系数部分添加sc_scores.append(sc_score)和dbi_scores.append(dbi_score)两行代码。即计算每辆车的评价指标的同时,将其加入外部的列表中。
if num_clusters > 1:# 计算轮廓系数,作为聚类评价指标sc_score = metrics.silhouette_score(coords, cluster_labels)print('轮廓系数: ' + str(sc_score))sc_scores.append(sc_score)# 计算DBI指标dbi_score = metrics.davies_bouldin_score(coords, cluster_labels)print('戴维斯-布尔丁指数: ' + str(dbi_score))dbi_scores.append(dbi_score)
通过sc_scores和dbi_scores两个列表的分析,例如求均值、中位数、画图查看分布等方式,可以评价整个数据聚类效果的好坏。
相关文章:
【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组…...
Apache Kylin
Apache Kylin 是一个开源的分布式分析引擎,提供 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据集。它能在亚秒级的时间内提供 PB 级数据的查询能力,非常适合大数据分析和报表系统。 ### 入门指南 #### 1. 环境准备 首先…...
为何Vue3比Vue2快
Proxy响应式 PatchFlag 编译模板时,动态节点做标记标记,分为不同的类型,如TEXT PROPSdiff算法时,可以区分静态节点,以及不同类型的动态节点 <div>Hello World</div> <span>{{ msg }}</span>…...
人工智能与社交变革:探索Facebook如何领导智能化社交平台
在过去十年中,人工智能(AI)技术迅猛发展,彻底改变了我们与数字世界互动的方式。Facebook作为全球最大的社交媒体平台之一,充分利用AI技术,不断推动社交平台的智能化,提升用户体验。本文将深入探…...
八股文之java基础
jdk9中对字符串进行了一个什么优化? jdk9之前 字符串的拼接通常都是使用进行拼接 但是的实现我们是基于stringbuilder进行的 这个过程通常比较低效 包含了创建stringbuilder对象 通过append方法去将stringbuilder对象进行拼接 最后使用tostring方法去转换成最终的…...
深度挖掘行情接口:股票市场中的关键金融数据API接口解析
在股票市场里,存在若干常见的股票行情数据接口,每一种接口皆具备独特的功能与用途。以下为一些常见的金融数据 API 接口,其涵盖了广泛的金融数据内容,其中就包含股票行情数据: 实时行情接口 实时行情接口:…...
逆向破解 对汇编的 简单思考
逆向破解汇编非常之简单 只是一些反逆向技术非常让人难受 但网络里都有方法破解 申请变量 : int a 0; 00007FF645D617FB mov dword ptr [a],0 char b b; 00007FF645D61802 mov byte ptr [b],62h double c 0.345; 00007FF645D61…...
搜维尔科技:人机交互学术应用概览
人机交互学术应用概览 搜维尔科技:人机交互学术应用概览...
植物遗传转化相关介绍【卡梅德生物】
植物的遗传转化是指以植物器官、组织、细胞或原生质体作为受体,应用重组DNA技术,将外源基因导入植物基因组,以获得转基因植物的技术。目前应用最普遍的植物基因的遗传转化方法主要有农杆菌介导法和DNA直接转入法。 一.植物遗传转化…...
0711springNews新闻系统管理 实现多级评论
0611springmvc新闻系统管理-CSDN博客 0711springNews新闻系统管理项目包 实现多级评论-CSDN博客 数据库字段 需要添加父节点id,通过该字段实现父评论和子评论的关联关系。 对象属性 实现链表,通过一个父评论可以找到它对应的所有子孙评论。 业务层 实现…...
如何在Ubuntu上安装并启动SSH服务(Windows连接)
在日常的开发和管理工作中,通过SSH(Secure Shell)连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题,可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…...
docker build时的网络问题
docker build时无法yum安装包,因为无法访问外网,无法ping通外网。 解决办法: systemctl stop NetworkManager.service firewall-cmd --permanent --zonetrusted --change-interfacedocker0 systemctl start NetworkManager.service systemct…...
Vue的安全性:防范XSS攻击与安全最佳实践
引言 随着Web应用的普及,前端安全问题日益受到重视。Vue作为当下流行的前端框架,其安全性也成为开发者关注的焦点。跨站脚本攻击(XSS)是常见的Web安全漏洞之一,本文将讨论如何在使用Vue时防范XSS攻击,并分享其他Vue中的安全最佳实践。 什么是XSS攻击? XSS攻击是一种将…...
ARM架构(一)—— ARMV8V9基础概念
目录 1.ARMCore的时间线2.ARM术语小结2.1 A64和arrch642.2ARM架构现在的5个系列2.3 微架构2.4 PE2.5 Banked2.6 ARM文档术语2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED2.8 EL1t和EL1h 3 ARMv7的软件架构4 安全状态切换模型4.1 Secure state和Non-secure state介绍 5 Interproce…...
如何使用Python进行数据分析
Python是一种广泛应用于数据科学和机器学习领域的编程语言。本文将介绍如何使用Python进行数据分析,包括Python在数据分析中的应用场景、常用库和工具,以及实际案例分析。 一、Python在数据分析中的应用场景 数据清洗:处理缺失值、异常值&a…...
Python学习笔记40:游戏篇之外星人入侵(一)
前言 入门知识已经学完,常用标准库也了解了,pygame入门知识也学了,那么开始尝试小游戏的开发。 当然这个小游戏属于比较简单的小游戏,复杂的游戏需要长时间的编写累计开发经验,同时也需要一定的时间才能编写出来。现在的话还是嫩…...
R的数据集读取和利用,如何高效地直接复制黏贴数据到R
R语言自带了许多内部数据集,这些数据集不仅为初学者提供了丰富的练习资源,还为研究人员和数据分析师提供了方便的数据测试和模型验证工具。在这篇文章中,我们将详细探讨如何读取和使用数据集。 一、认识数据集 1、数据和数据集 数据(Data)是指以某种形式表示…...
@JsonProperty 踩坑
JsonProperty 在fastjson 和 hutooljson 中是不会生效的。 在 fastjson 中,对应的注解是 JSONField。如果你正在使用 fastjson 进行 JSON 的序列化和反序列化,并且想要改变字段的 JSON 属性名,你应该使用 JSONField 注解,而不是 …...
业务架构、数据架构、应用架构和技术架构分析
一文看懂:什么是业务架构、数据架构、应用架构和技术架构 TOGAF(开放集团架构框架)是企业广泛应用的架构设计和管理利器。其核心在于四大架构领域:业务、数据、应用和技术,助力组织高效运作。TOGAF,让架构设…...
android studio中svn的使用
第一步,建立一个项目。 第二步,share project。 第三步,选择存放的位置,然后添加提交信息,最后点击share。这样就可以在svn上面看到一个空的项目名称。 第四步,看到文件变成了绿色,点击commit图…...
敏捷CSM认证:精通敏捷Scum估算方法,高效完成项目!
咱们做项目的时候可能都遇到过这种情况:项目一开始信心满满,觉得 deadline 稳了。结果呢?各种意外状况频出,时间好像怎么都不够用了,最后项目只能无奈延期,整个团队都像霜打的茄子。 说到底,还…...
三、建造者模式
文章目录 1 基本介绍2 案例2.1 Car 类2.2 CarBuilder 抽象类2.3 EconomyCarBuilder 类2.4 LuxuryCarBuilder 类2.5 CarDirector 类2.6 测试程序2.7 测试结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 Product ( 产品 )3.1.2 Builder ( 抽象建造者 )3.1.3 ConcreteBuilder ( 具…...
MySQL-----索引
一、什么是索引 存储引擎用于快速找到记录的一种数据结构。 索引类似于目录。就比如我们要找书里的一段话,我们先按目录找,然后再具体定位,这样速度会很快。 二、索引的作用 通过创建唯一性索引,可以保证数据库表中每一行数据的…...
Webpack 5 Tree Shaking与Module Federation
Webpack是一个流行的JavaScript模块打包器,它在前端工程化中扮演着核心角色。Webpack 5引入了许多新特性,其中两个最值得关注的是Tree Shaking和Module Federation。这两个特性分别解决了代码体积优化和微前端架构的问题。接下来,我们将深入探…...
免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~
大家好,我是java1234_小锋老师,看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端Vue管理端),分享下哈。 项目介绍 随着移动互联网技术的飞速发展和智能设备的普及,图书馆服务模式正在经历深刻的变革。本论文旨在…...
k8s入门:从安装到实际应用
Kubernetes (K8s) 入门指南:从安装到实际应用 Kubernetes 是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。它能帮助你管理多个容器化应用程序,并确保它们在不同环境下的一致性和可用性。本文将介绍如何在本地环境安…...
基于Qt的上位机通用框架
0.前言 最近一年多的时间一直在开发设备控制相关的软件,加上之前在聚光的两年时间,前前后后开发这种设备控制类型的上位机软件也有三年的时间了。总结出了一套基于Qt的上位机编程框架,核心思想类似于C#的依赖注入,对象的初始化都…...
Vulnhub靶场DC-7练习
目录 0x00 准备0x01 主机信息收集0x02 站点信息收集1. 获取用户名/密码2. ssh连接目标主机3. drush命令修改Drupal密码 0x03 漏洞查找与利用1. Drupal写入php木马2. 连接shell3. 反弹shell并提权 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/dc/DC-…...
吴恩达深度学习笔记1 Neural Networks and Deep Learning
参考视频:(超爽中英!) 2024公认最好的【吴恩达深度学习】教程!附课件代码 Professionalization of Deep Learning_哔哩哔哩_bilibili Neural Networks and Deep Learning 1. 深度学习引言(Introduction to Deep Learning) 2. 神 经 网 络 的 编 程 基 础…...
(十)Spring教程——Spring配置概述
目录 前言 1.Spring容器高层视图 2.基于XML的配置 前言 在使用Spring所提供的各项丰富而神奇的功能之前,必须在Spring IoC容器中装配好Bean,并建立好Bean和Bean之间的关联关系。Spring的配置文件已经很精简了,但是广大的开发者希望它做得更…...
飞书群聊机器人自定义机器人接入,并实现艾特@群成员功能
飞书群聊机器人还是比钉钉的要麻烦一点,钉钉的直接通过手机号就可以艾特群里面的人,但是飞书的要想艾特群里面的人,需要使用用户的 Open ID 或 User ID。这两个ID怎么获取呢?还需要在飞书的开放平台上创建一个应用,然后…...
CrowdStrike更新致850万Windows设备宕机,微软紧急救火!
7月18日,网络安全公司CrowdStrike发布了一次软件更新,导致全球大范围Windows系统宕机。 预估CrowdStrike的更新影响了将近850万台Windows设备,多行业服务因此停滞,全球打工人原地放假,坐等吃瓜,网络上爆梗…...
银行黄金交易流程
银行黄金交易流程 银行黄金交易流程通常包括以下几个步骤: 咨询和开户: 首先,客户需要到银行的贵金属交易柜台或在线平台咨询黄金交易的相关规定和手续,然后进行开户,在银行开立有关黄金交易的账户。这可能需要提供个…...
MATLAB实验五:MATLAB数据分析
1. 某线路上不同时间对应的电压如下表所示: 1)用 3 次多项式拟合(polyfit)该实验曲线,要求绘制 2 原始采样 点,并在 1~8 范围内,使用时间间隔为 0.2 的数据绘制拟合曲线。 建立一个脚本文件:text5_1.m 如下…...
Cannot perform upm operation: connect ETIMEDOUT 34.36.199.114:443 [NotFound]
版本:Unity 2018 Windows 问题:打开 Package Manager,加载报错 尝试解决: 删除项目文件里的Packages下的mainfest.json文件,然后重新打开项目(X)重新登录 Unity 账号(X)…...
Docusaurus VS VuePress:哪一个更适合你的技术文档?
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
昇思25天学习打卡营第25天|MindNLP ChatGLM-6B StreamChat
配置环节 %%capture captured_output !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.2.14 !pip install mindnlp !pip install mdtex2html配置国内镜像 !export HF_ENDPOINThttps://hf-mirror.com下载与加载模型 from m…...
海康威视综合安防管理平台 detection 前台RCE漏洞复现
0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 海康…...
【BUG】已解决:ModuleNotFoundError: No module named ‘PIL‘
已解决:ModuleNotFoundError: No module named ‘PIL‘ 目录 已解决:ModuleNotFoundError: No module named ‘PIL‘ 【常见模块错误】 错误原因: 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我…...
css font 优化
文章目录 使用 font-display 控制字体加载预加载关键字体选择合适的字体文件类型按需创建字体文件HTTP 缓存优化 使用 font-display 控制字体加载 避免字体加载导致的空白 block:浏览器在短暂的阻塞期内不显示任何文本,直到字体加载完成。这可能导致页…...
Go之Web急速入门Gin+Gorm框架
简介 只作为快速入门、了解Go的GinGorm框架的demo,不能作为企业级开发。 详细用法请看官网 《Gin官网》 《Gorm官网》 使用GoLand创建Go项目(默认modules) go版本1.22.2 需要设置代理下载go相关软件包,否则软件包可能无法下载。…...
【MySQL进阶之路 | 高级篇】ER模型
1. 概述 数据库设计是牵一发而动全身的。那么有没有什么办法可以提前看到数据库的全貌呢?比如需要哪些数据表,数据表中应该有哪些字段,通过什么字段进行连接等等。这样我们才能进行整体的梳理和设计。 其实,ER模型就是一个这样的…...
C++基础语法:STL之容器(4)--序列容器中的list(一)
前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 序列容器的学习.以<C Prime Plus> 6th Edition(以下称"本书")内容理解 本书中容器内容不多只有几页.最好是有数据结构方面的知识积累,如果没有在学的同时补上. 序列容器回顾:序列容器内元素按严格…...
WordPress杂技
WordPress杂技 WordPress页面构建器: Avada、Elementor、astra、 Elementor作为一款强大的页面构建工具。 Avada:是一款非常受欢迎的WordPress主题,它的设计理念是简洁、现代、响应式,Avada拥有丰富的模板和布局,可以轻松创建出…...
鸿蒙 动态共享包HSP的创建和引用
1.什么是动态共享包HSP HSP(Harmony Shared Package)是动态共享包,可以包含代码、C库、资源和配置文件,通过HSP可以实现代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应…...
ARM架构(二)—— arm v7-a/v8/v9寄存器介绍
1、ARM v7-A寄存器 1.1 通用寄存器 V7 V8开始 FIQ个IRQ优先级一样, 通用寄存器:31个 1.2 程序状态寄存器 CPSR是程序状态毒存器,保存条件标志位,中断禁止位,当前处理器模式等控制和状态位。每种异常模式下还存在SPS…...
C++合作开发项目:美术馆1.0
快乐星空MakerZINCFFO 合作入口:CM工作室 效果图: 代码: (还有几个音乐!) main.cpp #include <bits/stdc.h> #include <windows.h> #include <conio.h> #include <time.h> #in…...
QT 5 同时使用Q_DECLARE_METATYPE(pointdata) 和继承 QObjectUserData
在Qt框架中,QObjectUserData 和 Q_DECLARE_METATYPE() 宏都与Qt的元对象系统有关,但它们的使用方式有一些特别的限制和兼容性问题。 关于QObjectUserData: QObjectUserData 是一个用来存储用户数据的类。在Qt中,每个 QObject 可以…...
【MySQL进阶之路 | 高级篇】范式概述与第一范式
1. 范式简介 在关系型数据库中,关于数据表的设计的基本原则,规则就称为范式。可以理解为,一张数据表的设计结果需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式的英文名是Normal …...
Open-TeleVision复现及机器人迁移
相关信息 标题 Open-TeleVision: Teleoperation with Immersive Active Visual Feedback作者 Xuxin Cheng1 Jialong Li1 Shiqi Yang1 Ge Yang2 Xiaolong Wang1 UC San Diego1 MIT2主页 https://robot-tv.github.io/链接 https://robot-tv.github.io/resources/television.pdf代…...