AIGlasses_for_navigation数据存储方案:MySQL安装配置与轨迹管理

news2026/3/16 4:16:54
AIGlasses_for_navigation数据存储方案MySQL安装配置与轨迹管理你是不是也遇到过这样的场景开发一个智能眼镜导航应用前端交互做得挺酷模型推理也跑通了但用户一走数据全没了。下次再打开又得重新开始。这就像盖房子只盖了毛坯没通水电煤气根本没法住人。数据存储就是应用的“水电煤气”。今天我们就来手把手解决这个问题为你的AIGlasses_for_navigation系统搭建一个稳定、高效的后端数据仓库。整个过程不复杂跟着步骤走一个下午就能搞定从零到一的数据库环境让你的导航轨迹、用户偏好都能被妥善保存和快速查询。1. 环境准备快速部署MySQL咱们先从最基础的安装开始。别担心我会带你用最省事的方法避开那些常见的坑。1.1 选择适合的MySQL版本对于大多数应用开发尤其是我们这种导航系统我建议选择MySQL 8.0的长期支持版本。它性能更好安全性更高而且社区支持广泛。用老版本可能会遇到一些新特性不支持的问题一步到位选8.0最省心。在开始安装前先检查一下你的系统是否已经安装了MySQL或类似的数据库避免冲突。打开终端输入# 检查是否已安装MySQL mysql --version # 或者检查相关服务是否在运行 sudo systemctl status mysql如果显示“command not found”或者服务未运行那就可以放心安装了。1.2 在Ubuntu系统上一键安装假设你的开发环境是Ubuntu 20.04或22.04安装过程非常顺畅。下面这几条命令依次执行即可。# 1. 更新软件包列表 sudo apt update # 2. 安装MySQL服务器 sudo apt install mysql-server -y # 3. 安装完成后运行安全配置脚本 sudo mysql_secure_installation执行最后一条安全配置脚本时它会引导你完成几个重要设置设置root密码这是管理数据库的最高权限密码务必设置一个强密码并记好。移除匿名用户选择Y禁止匿名登录更安全。禁止root远程登录选择Yroot账户只能在本地服务器登录。移除测试数据库选择Y删掉默认的测试库。重新加载权限表选择Y让上述安全设置立即生效。1.3 验证安装与基本操作安装完成后我们来确认一下MySQL服务是否正常运行并学习第一个“开机”和“关机”命令。# 启动MySQL服务 sudo systemctl start mysql # 设置MySQL服务开机自启这样服务器重启后数据库也能自动运行 sudo systemctl enable mysql # 检查MySQL服务状态 sudo systemctl status mysql如果状态显示active (running)恭喜你MySQL服务已经成功跑起来了现在让我们登录到MySQL命令行这是以后管理数据库的主要方式# 使用root用户和密码登录MySQL sudo mysql -u root -p输入你刚才设置的root密码就能看到mysql提示符表示你已经进入了MySQL的世界。2. 为导航系统设计数据库安装好数据库软件就像买好了精装的房子接下来要根据我们的“导航”需求来规划房间布局了。这一步是关键设计得好以后存取数据又快又方便设计得不好可能处处是瓶颈。2.1 核心数据表设计思路我们的AIGlasses_for_navigation系统核心要存储的数据无非三类用户信息谁在用这个系统。导航轨迹用户每次行走的完整路径这是最核心的数据。环境特征点眼镜识别到的关键地点信息比如“301会议室门口”、“电梯间”用于辅助定位和导航。基于这个思路我们先来创建专用的数据库-- 登录MySQL后执行以下SQL语句 -- 创建一个名为 ai_navigation 的数据库并指定字符集为utf8mb4以支持中文 CREATE DATABASE ai_navigation CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 切换到新创建的数据库 USE ai_navigation;2.2 创建用户表用户表相对简单主要记录用户的基本身份信息。CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT ‘用户唯一ID’, username VARCHAR(50) NOT NULL UNIQUE COMMENT ‘用户名用于登录’, password_hash VARCHAR(255) NOT NULL COMMENT ‘加密后的密码’, email VARCHAR(100) UNIQUE COMMENT ‘邮箱’, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT ‘账户创建时间’ ) COMMENT ‘用户信息表’;AUTO_INCREMENT表示这个ID会自动增长我们不用操心编号重复。密码存储的是password_hash哈希值绝对不要明文存储密码这是安全底线。2.3 创建轨迹表轨迹表是核心。一条轨迹可能包含成千上万个位置点我们设计两个表来高效管理一个表存轨迹的概要信息另一个表存轨迹的详细点位。-- 轨迹概要表 CREATE TABLE trajectories ( trajectory_id INT AUTO_INCREMENT PRIMARY KEY COMMENT ‘轨迹唯一ID’, user_id INT NOT NULL COMMENT ‘关联的用户ID’, start_time TIMESTAMP NOT NULL COMMENT ‘轨迹开始时间’, end_time TIMESTAMP COMMENT ‘轨迹结束时间’, distance FLOAT COMMENT ‘估算的总距离米’, environment_tag VARCHAR(100) COMMENT ‘环境标签如“办公室A栋”’, FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ) COMMENT ‘导航轨迹概要表’; -- 轨迹点位详情表 CREATE TABLE trajectory_points ( point_id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT ‘点位唯一ID’, trajectory_id INT NOT NULL COMMENT ‘所属的轨迹ID’, timestamp TIMESTAMP(6) NOT NULL COMMENT ‘精确到微秒的时间戳’, latitude DOUBLE NOT NULL COMMENT ‘纬度’, longitude DOUBLE NOT NULL COMMENT ‘经度’, altitude DOUBLE COMMENT ‘海拔高度’, accuracy FLOAT COMMENT ‘定位精度米’, imu_data JSON COMMENT ‘惯性测量单元数据存储为JSON格式’, FOREIGN KEY (trajectory_id) REFERENCES trajectories(trajectory_id) ON DELETE CASCADE, INDEX idx_trajectory_time (trajectory_id, timestamp) -- 创建复合索引加速按轨迹和时间的查询 ) COMMENT ‘轨迹详细点位表’;这里有几个设计要点分表存储把概要信息和海量点位分开避免查询概要时扫描大量点位数据提升效率。外键约束FOREIGN KEY确保了数据的完整性。比如当删除一个用户时ON DELETE CASCADE会自动删除他所有的轨迹不会留下垃圾数据。索引INDEX idx_trajectory_time这个索引至关重要。当我们需要查询某条轨迹在某个时间段内的所有点位时这个索引能让查询速度提升几十甚至上百倍。JSON字段imu_data使用了JSON类型。眼镜传感器数据可能结构多变用JSON存储非常灵活省去了频繁修改表结构的麻烦。2.4 创建特征点表特征点是智能眼镜视觉识别的结果是实现高精度导航的关键。CREATE TABLE landmarks ( landmark_id INT AUTO_INCREMENT PRIMARY KEY COMMENT ‘特征点唯一ID’, user_id INT NOT NULL COMMENT ‘创建此特征点的用户’, name VARCHAR(100) NOT NULL COMMENT ‘特征点名称如“打印机旁”’, description TEXT COMMENT ‘详细描述’, latitude DOUBLE NOT NULL COMMENT ‘纬度’, longitude DOUBLE NOT NULL COMMENT ‘经度’, feature_descriptor BLOB COMMENT ‘视觉特征描述符二进制数据’, image_path VARCHAR(255) COMMENT ‘关联的参考图片路径’, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’, FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE, SPATIAL INDEX idx_location (latitude, longitude) -- 空间索引加速地理位置查询 ) COMMENT ‘环境特征点表’;BLOB类型用于存储二进制的视觉特征描述符这是模型识别出的关键信息。SPATIAL INDEX是一个空间索引。当我们需要查询“在我当前位置附近500米内有哪些特征点”时这种索引的效率远超普通索引。3. 从代码到数据库实现数据交互数据库表建好了现在我们需要一座桥让Python代码比如你的AI模型处理程序能和MySQL数据库对话。这座桥就是数据库连接和操作。3.1 安装Python连接器首先在你的Python项目环境中安装MySQL官方连接器。pip install mysql-connector-python3.2 编写数据库连接与操作类我们来创建一个database_manager.py文件把所有的数据库操作封装起来这样用起来既安全又方便。# database_manager.py import mysql.connector from mysql.connector import Error import json from datetime import datetime from typing import Optional, List, Dict, Any class NavigationDatabase: def __init__(self, host‘localhost‘, user‘root‘, password‘your_strong_password‘, database‘ai_navigation‘): 初始化数据库连接。 注意生产环境中密码应从环境变量或配置文件中读取不要硬编码在代码里 self.config { ‘host‘: host, ‘user‘: user, ‘password‘: password, ‘database‘: database } self.connection None def connect(self): 建立数据库连接 try: self.connection mysql.connector.connect(**self.config) if self.connection.is_connected(): print(“成功连接到MySQL数据库”) except Error as e: print(f“连接数据库时出错: {e}”) raise def disconnect(self): 关闭数据库连接 if self.connection and self.connection.is_connected(): self.connection.close() print(“数据库连接已关闭”) def __enter__(self): 支持with语句自动管理连接 self.connect() return self def __exit__(self, exc_type, exc_val, exc_tb): 退出with语句块时自动断开连接 self.disconnect() # —————— 用户相关操作 —————— def create_user(self, username: str, password_hash: str, email: Optional[str] None) - Optional[int]: 创建新用户返回新用户的ID query “”“ INSERT INTO users (username, password_hash, email) VALUES (%s, %s, %s) ”“” cursor self.connection.cursor() try: cursor.execute(query, (username, password_hash, email)) self.connection.commit() user_id cursor.lastrowid print(f“用户 ‘{username}‘ 创建成功ID: {user_id}”) return user_id except Error as e: print(f“创建用户失败: {e}”) self.connection.rollback() return None finally: cursor.close() # —————— 轨迹相关操作 —————— def start_new_trajectory(self, user_id: int, environment_tag: str None) - Optional[int]: 开始记录一条新轨迹返回轨迹ID query “”“ INSERT INTO trajectories (user_id, start_time, environment_tag) VALUES (%s, NOW(), %s) ”“” cursor self.connection.cursor() try: cursor.execute(query, (user_id, environment_tag)) self.connection.commit() trajectory_id cursor.lastrowid print(f“新轨迹开始记录ID: {trajectory_id}”) return trajectory_id except Error as e: print(f“开始新轨迹失败: {e}”) self.connection.rollback() return None finally: cursor.close() def add_trajectory_point(self, trajectory_id: int, lat: float, lon: float, timestamp: datetime None, imu_data: Dict None): 向指定轨迹添加一个位置点 if timestamp is None: timestamp datetime.now() # 将IMU数据字典转换为JSON字符串 imu_json json.dumps(imu_data) if imu_data else None query “”“ INSERT INTO trajectory_points (trajectory_id, timestamp, latitude, longitude, imu_data) VALUES (%s, %s, %s, %s, %s) ”“” cursor self.connection.cursor() try: cursor.execute(query, (trajectory_id, timestamp, lat, lon, imu_json)) self.connection.commit() # 为了性能这里可以不每次打印批量插入时尤其如此 except Error as e: print(f“添加轨迹点失败: {e}”) self.connection.rollback() finally: cursor.close() def end_trajectory(self, trajectory_id: int, distance: float None): 结束一条轨迹更新结束时间和距离 query “”“ UPDATE trajectories SET end_time NOW(), distance %s WHERE trajectory_id %s ”“” cursor self.connection.cursor() try: cursor.execute(query, (distance, trajectory_id)) self.connection.commit() print(f“轨迹 {trajectory_id} 已结束”) except Error as e: print(f“结束轨迹失败: {e}”) self.connection.rollback() finally: cursor.close() # —————— 特征点相关操作 —————— def add_landmark(self, user_id: int, name: str, lat: float, lon: float, feature_descriptor: bytes None, image_path: str None) - Optional[int]: 添加一个新的环境特征点 query “”“ INSERT INTO landmarks (user_id, name, latitude, longitude, feature_descriptor, image_path) VALUES (%s, %s, %s, %s, %s, %s) ”“” cursor self.connection.cursor() try: cursor.execute(query, (user_id, name, lat, lon, feature_descriptor, image_path)) self.connection.commit() landmark_id cursor.lastrowid print(f“特征点 ‘{name}‘ 添加成功ID: {landmark_id}”) return landmark_id except Error as e: print(f“添加特征点失败: {e}”) self.connection.rollback() return None finally: cursor.close() def get_nearby_landmarks(self, lat: float, lon: float, radius_km: float 0.5) - List[Dict]: 查询指定位置附近半径内的特征点简单矩形范围查询生产环境应用Haversine公式或GIS扩展 # 这是一个简化的范围查询实际应根据地球曲率计算距离 delta radius_km / 111.0 # 粗略估算1度纬度约111公里 min_lat, max_lat lat - delta, lat delta min_lon, max_lon lon - delta, lon delta query “”“ SELECT landmark_id, name, latitude, longitude, description FROM landmarks WHERE latitude BETWEEN %s AND %s AND longitude BETWEEN %s AND %s LIMIT 20 ”“” cursor self.connection.cursor(dictionaryTrue) # 返回字典格式的结果 try: cursor.execute(query, (min_lat, max_lat, min_lon, max_lon)) results cursor.fetchall() return results except Error as e: print(f“查询附近特征点失败: {e}”) return [] finally: cursor.close()3.3 在导航应用中调用现在在你的主程序里使用这个数据库管理器就非常清晰了。下面模拟一个简单的导航会话# main_app_simulation.py from database_manager import NavigationDatabase import hashlib import time def simulate_navigation_session(): # 使用with语句自动管理数据库连接的打开和关闭 with NavigationDatabase(password‘your_actual_password‘) as db: # 1. 创建或获取用户 (实际应用中这里是登录逻辑) # 假设我们有一个用户先哈希一下密码 password_hash hashlib.sha256(‘my_secure_password‘.encode()).hexdigest() user_id db.create_user(‘test_user‘, password_hash, ‘testexample.com‘) if not user_id: print(“用户操作失败退出模拟。”) return # 2. 用户开始一次室内导航 trajectory_id db.start_new_trajectory(user_id, environment_tag‘Office_Building_A‘) if not trajectory_id: print(“开始轨迹失败。”) return print(f“模拟开始轨迹 {trajectory_id} 的行走路径...”) # 3. 模拟行走每隔一秒记录一个点实际中可能由传感器实时触发 simulated_points [ (39.9091, 116.3974, {‘accel_x‘: 0.1, ‘gyro_z‘: 0.05}), # 点1 (39.9092, 116.3975, {‘accel_x‘: 0.12, ‘gyro_z‘: 0.03}), # 点2 (39.9093, 116.3976, {‘accel_x‘: 0.08, ‘gyro_z‘: 0.01}), # 点3 ] for i, (lat, lon, imu) in enumerate(simulated_points): db.add_trajectory_point(trajectory_id, lat, lon, imu_dataimu) print(f“已记录路径点 {i1}”) time.sleep(0.5) # 模拟行走间隔 # 4. 导航结束结束轨迹 estimated_distance 150.5 # 单位米实际应由算法计算 db.end_trajectory(trajectory_id, distanceestimated_distance) # 5. 模拟添加一个识别到的特征点例如走到了一个会议室门口 # 假设从AI模型获取到了一个特征描述符这里用模拟字节 fake_descriptor b‘\x00\x01\x02\x03\x04\x05‘ landmark_id db.add_landmark( user_iduser_id, name‘3F_Meeting_Room_Door‘, lat39.90925, lon116.39755, feature_descriptorfake_descriptor, image_path‘/images/landmarks/3f_meeting_door.jpg‘ ) # 6. 查询当前位置附近有哪些已知特征点 current_lat, current_lon 39.90915, 116.39745 nearby db.get_nearby_landmarks(current_lat, current_lon, radius_km0.1) print(f“\n在当前位置附近发现 {len(nearby)} 个特征点”) for lm in nearby: print(f“ - {lm[‘name‘]} (ID: {lm[‘landmark_id‘]})”) if __name__ ‘__main__‘: simulate_navigation_session()运行这段模拟代码你就能看到数据是如何从你的程序一步步流入MySQL数据库中的。到这一步你的AIGlasses_for_navigation系统就有了一个完整可用的“记忆中枢”。4. 性能优化与安全贴士基础功能跑通后我们再来看看如何让它跑得更快、更稳、更安全。这些都是项目从“能用”到“好用”的关键。4.1 数据库性能调优建议当你的轨迹数据积累到几十万、上百万条时下面这些设置会带来巨大提升。调整InnoDB缓冲池大小这是MySQL最重要的性能设置。它相当于数据库的“内存工作区”。通常可以设置为系统内存的50%-70%。编辑MySQL配置文件通常是/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld] innodb_buffer_pool_size 1G # 根据你的服务器内存调整例如8G内存可设为4G优化连接数避免连接数不足或过多。max_connections 100 # 根据应用并发量调整启用查询缓存MySQL 8.0已移除若使用旧版本可参考对于读多写少的场景有帮助但注意MySQL 8.0已经移除了这个功能主要依靠更高效的InnoDB自身缓冲。修改配置后需要重启MySQL服务sudo systemctl restart mysql4.2 必须注意的安全实践数据库安全无小事尤其是涉及用户位置隐私数据。永远不要硬编码密码像示例中那样写password‘your_actual_password‘只是为了演示。真实项目中务必使用环境变量或配置文件并确保该文件不被提交到代码仓库。# 正确做法从环境变量读取 import os db_password os.environ.get(‘DB_PASSWORD‘)使用专用数据库用户不要用root账户连接应用。为你的ai_navigation数据库创建一个权限受限的专用用户。-- 在MySQL中执行 CREATE USER ‘nav_app‘‘localhost‘ IDENTIFIED BY ‘a_strong_application_password‘; GRANT SELECT, INSERT, UPDATE, DELETE ON ai_navigation.* TO ‘nav_app‘‘localhost‘; FLUSH PRIVILEGES;定期备份设置自动化备份策略这是最后的防线。# 使用mysqldump进行简单备份 mysqldump -u root -p ai_navigation backup_$(date %Y%m%d).sql4.3 常见问题与排查连接失败检查MySQL服务是否运行 (sudo systemctl status mysql)防火墙是否屏蔽了3306端口以及用户名密码是否正确。插入数据慢对于trajectory_points这种需要大量插入的表可以考虑使用批量插入或者先缓存一定数量的点位再一次性写入数据库这能极大减少网络和事务开销。查询速度慢使用EXPLAIN命令分析你的SQL查询语句看是否用上了我们创建的索引。例如EXPLAIN SELECT * FROM trajectory_points WHERE trajectory_id 100 ORDER BY timestamp;5. 总结跟着走完这一趟你应该已经把一个完整的MySQL数据存储后端给搭起来了。从最开始的软件安装、配置到设计贴合导航业务的数据表结构再到用Python代码把应用和数据库流畅地连接起来最后还了解了一些让这个系统跑得更快更安全的窍门。整个过程最关键的其实不是某一行命令或代码而是理解数据该如何组织。把轨迹的概要信息和海量的点位数据分开存给经常查询的字段加上索引用外键来维护数据之间的干净关系这些设计决策会让你的应用在数据量增长时依然保持敏捷。现在你的AIGlasses_for_navigation系统不再是“失忆者”了。每一次导航的路径、每一个识别到的地点都能被永久记录和回溯。你可以基于这些数据做更多事情比如分析常走路线、优化导航算法或者为用户提供个性化的导航偏好。接下来不妨试着用这个数据库去实现一个简单的轨迹回放功能那会是一个非常有成就感的实践。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…