手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集

手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集

目录

手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集

1. 前言

2.手部关键点检测(手部姿势估计)方法

(1)Top-Down(自上而下)方法

(2)Bottom-Up(自下而上)方法:

3.手部关键点检测数据集

4.手部关键点检测模型训练

(1)项目安装

(2)准备Train和Test数据

(3)配置文件configs

(4)开始训练

(5)Tensorboard可视化训练过程

5.手部关键点检测模型效果

6.手部关键点检测(推理代码)

7.手部关键点检测(训练代码)

8.手部关键点检测C++/Android版本


1. 前言

本篇文章是项目《手部关键点检测(手部姿势估计)》系列文章之《Pytorch实现手部关键点检测(手部姿势估计)》;项目基于Pytorch深度学习框架,实现手部关键点检测(手部姿势估计)模型,其中手部检测采用YOLOv5模型,手部关键点检测是基于开源的HRNet进行改进,构建了整套手部关键点检测的训练和测试流程;为了方便后续模型工程化和Android平台部署,项目支持高精度HRNet检测模型,轻量化模型LiteHRNet和Mobilenet模型训练和测试,并提供Python/C++/Android多个版本;

轻量化Mobilenet-v2模型在普通Android手机上可以达到实时的检测效果,CPU(4线程)约50ms左右,GPU约30ms左右 ,基本满足业务的性能需求。下表格给出HRNet,以及轻量化模型LiteHRNet和Mobilenet的计算量和参数量,以及其检测精度

模型input-sizeparams(M)GFLOPsAP
HRNet-w32192×19228.48M5734.05M0.8570
LiteHRNet18192×1921.10M182.15M0.8023
Mobilenet-v2192×1922.63M529.25M0.7574

先展示一下手部检测以及手部关键点检测(手部姿势估计)效果:

Android手部关键点检测(手部姿势估计)APP Demo体验:

https://download.csdn.net/download/guyuealian/88418582

【尊重原创,转载请注明出处】https://blog.csdn.net/guyuealian/article/details/133277726


更多项目《手部关键点检测(手部姿势估计)》系列文章请参考:

  • 手部关键点检测1:手部关键点(手部姿势估计)数据集(含下载链接)https://blog.csdn.net/guyuealian/article/details/133277630
  • 手部关键点检测2:YOLOv5实现手部检测(含训练代码和数据集)https://blog.csdn.net/guyuealian/article/details/133279222
  • 手部关键点检测3:Pytorch实现手部关键点检测(手部姿势估计)含训练代码和数据集https://blog.csdn.net/guyuealian/article/details/133277726
  • 手部关键点检测4:Android实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133277732
  • 手部关键点检测5:C++实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133277748

 


2.手部关键点检测(手部姿势估计)方法

手部关键点检测(手部姿势估计)的方法,目前主流的方法主要两种:一种是Top-Down(自上而下)方法,另外一种是Bottom-Up(自下而上)方法;

(1)Top-Down(自上而下)方法

将手部检测和手部关键点估计分离,在图像上首先进行手部目标检测,定位手部位置;然后crop每一个手部图像,再估计每个手部的关键点;这类方法往往比较慢,但姿态估计准确度较高。目前主流模型主要有CPN,Hourglass,CPM,Alpha Pose,HRNet等。

(2)Bottom-Up(自下而上)方法:

先估计图像中所有手部的关键点,然后在通过Grouping的方法组合成一个一个手部实例;因此这类方法在测试推断的时候往往更快速,准确度稍低。典型就是COCO2016年人体关键点检测冠军Open Pose。

通常来说,Top-Down具有更高的精度,而Bottom-Up具有更快的速度;就目前调研而言, Top-Down的方法研究较多,精度也比Bottom-Up(自下而上)方法高。

本项目基于开源的HRNet进行改进,关于HRNet项目请参考GitHub

HRNet: https://github.com/leoxiaobin/deep-high-resolution-net.pytorch


3.手部关键点检测数据集

项目收集了三个手部检测数据集和三个手部关键点数据集:

  • 手部检测数据集(Hand Detection Dataset)共收集了三个:Hand-voc1,Hand-voc2和Hand-voc3,总共60000+张图片;标注格式统一转换为VOC数据格式,标注名称为hand,可用于深度学习手部目标检测模型算法开发
  • 手部关键点数据集(Hand Keypoints Dataset,Hand Pose Estimation共收集了三个:分别为HandPose-v1,HandPose-v2和HandPose-v3,总共80000+张图片,标注了手部21个关键点,可用于深度学习手部姿态检测模型算法开发。

关于手部关键点检测数据集说明,请参考:手部关键点(手部姿势估计)数据集(含下载链接) https://blog.csdn.net/guyuealian/article/details/133277630​​


4.手部关键点检测模型训练

 整套工程项目基本结构如下:

.
├── configs              # 训练配置文件
├── data                 # 一些数据
├── libs                 # 一些工具库
├── pose                 # 姿态估计模型文件
├── work_space           # 训练输出工作目录
├── demo.py              # 模型推理demo文件
├── README.md            # 项目工程说明文档
├── requirements.txt     # 项目相关依赖包
└── train.py             # 训练文件

(1)项目安装

项目依赖python包请参考requirements.txt,使用pip安装即可,项目代码都在Ubuntu系统和Windows系统验证正常运行,请放心使用;若出现异常,大概率是相关依赖包版本没有完全对应

numpy==1.16.3
matplotlib==3.1.0
Pillow==6.0.0
easydict==1.9
opencv-contrib-python==4.5.2.52
opencv-python==4.5.1.48
pandas==1.1.5
PyYAML==5.3.1
scikit-image==0.17.2
scikit-learn==0.24.0
scipy==1.5.4
seaborn==0.11.2
tensorboard==2.5.0
tensorboardX==2.1
torch==1.7.1+cu110
torchvision==0.8.2+cu110
tqdm==4.55.1
xmltodict==0.12.0
basetrainer
basetrainer
pybaseutils==0.9.4
pycocotools==2.0.6

项目安装教程请参考(初学者入门,麻烦先看完下面教程,配置好开发环境):

  • 项目开发使用教程和常见问题和解决方法
  • 视频教程:1 手把手教你安装CUDA和cuDNN(1)
  • 视频教程:2 手把手教你安装CUDA和cuDNN(2)
  • 视频教程:3 如何用Anaconda创建pycharm环境
  • 视频教程:4 如何在pycharm中使用Anaconda创建的python环境

(2)准备Train和Test数据

下载手部关键点检测数据集:HandPose-v1,HandPose-v2和HandPose-v3,然后解压到本地

(3)配置文件configs

项目支持HRNet以及轻量化模型LiteHRNet和Mobilenet模型训练,并提供对应的配置文件;你需要修改对应配置文件的数据路径;本篇以训练HRNet-w32为例子,其配置文件在configs/coco/hrnet/w32_adam_hand_192_192.yaml,修改该文件的训练数据集路径TRAIN_FILE(支持多个数据集训练)和测试数据集TEST_FILE的数据路径为你本地数据路径,其他参数保持默认即可,如下所示:

WORKERS: 8
PRINT_FREQ: 10
DATASET:DATASET: 'custom_coco'TRAIN_FILE:- 'D:/dataset/HandPose-v1/train/train_anno.json'- 'D:/dataset/HandPose-v2/train/train_anno.json'- 'D:/dataset/HandPose-v3/train/train_anno.json'TEST_FILE: 'D:/dataset/HandPose-v1/test/test_anno.json'FLIP: trueROT_FACTOR: 45SCALE_FACTOR: 0.3SCALE_RATE: 1.25JOINT_IDS: [ ]FLIP_PAIRS: [ ]SKELETON: [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ], [ 3, 4 ], [ 0, 5 ], [ 5, 6 ], [ 6, 7 ], [ 7, 8 ],  [ 5, 9 ], [ 9, 10 ], [ 10, 11 ], [ 11, 12 ], [ 9, 13 ], [ 13, 14 ], [ 14, 15 ], [ 15, 16 ], [ 13, 17 ], [ 17, 18 ], [ 18, 19 ], [ 19, 20 ], [ 0, 17 ] ]

配置文件的一些参数说明,请参考

参数类型参考值说明
WORKERSint8数据加载处理的进程数
PRINT_FREQint10打印LOG信息的间隔
DATASETstrcustom_coco数据集类型,目前仅支持COCO数据格式
TRAIN_FILEList-训练数据集文件列表(COCO数据格式),支持多个数据集
TEST_FILEstring-测试数据集文件(COCO数据格式),仅支持单个数据集
FLIPboolTrue是否翻转图片进行测试,可提高测试效果
ROT_FACTORfloat45训练数据随机旋转的最大角度,用于数据增强
SCALE_FACTORfloat1.25图像缩放比例因子
SCALE_RATEfloat0.25图像缩放率
JOINT_IDSlist[ ][ ]表示所有关键点,也可以指定需要训练的关键点序号ID
FLIP_PAIRSlist[ ]图像翻转时,关键点不受翻转影响的ID号
SKELETONlist[ ]关键点连接线的序列列表,用于可视化效果

(4)开始训练

修改好配置文件后,就可以开始准备训练了:

  • 训练高精度模型HRNet-w48或者HRNet-w32
# 高精度模型:HRNet-w48
python train.py  -c "configs/coco/hrnet/w48_adam_hand_192_192.yaml" --workers=8 --batch_size=32 --gpu_id=0 --work_dir="work_space/hand"
# 高精度模型:HRNet-w32
python train.py  -c "configs/coco/hrnet/w32_adam_hand_192_192.yaml" --workers=8 --batch_size=32 --gpu_id=0 --work_dir="work_space/hand"
  • 训练轻量化模型LiteHRNet
# 轻量化模型:LiteHRNet
python train.py  -c "configs/coco/litehrnet/litehrnet18_hand_192_192.yaml" --workers=8 --batch_size=32 --gpu_id=0 --work_dir="work_space/hand"
  • 训练轻量化模型Mobilenetv2
# 轻量化模型:Mobilenet
python train.py  -c "configs/coco/mobilenet/mobilenetv2_hand_192_192.yaml" --workers=8 --batch_size=32 --gpu_id=0 --work_dir="work_space/hand"

下表格给出HRNet,以及轻量化模型LiteHRNet和Mobilenet的计算量和参数量,以及其检测精度AP; 高精度检测模型HRNet-w32,AP可以达到0.8570,但其参数量和计算量比较大,不合适在移动端部署;LiteHRNet18和Mobilenet-v2参数量和计算量比较少,合适在移动端部署;虽然LiteHRNet18的理论计算量和参数量比Mobilenet-v2低,但在实际测试中,发现Mobilenet-v2运行速度更快。轻量化Mobilenet-v2模型在普通Android手机上可以达到实时的检测效果,CPU(4线程)约50ms左右,GPU约30ms左右 ,基本满足业务的性能需求

模型input-sizeparams(M)GFLOPsAP
HRNet-w32192×19228.48M5734.05M0.8570
LiteHRNet18192×1921.10M182.15M0.8023
Mobilenet-v2192×1922.63M529.25M0.7574

(5)Tensorboard可视化训练过程

训练过程可视化工具是使用Tensorboard,使用方法,在终端输入:
# 基本方法
tensorboard --logdir=path/to/log/
# 例如
tensorboard --logdir="work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/log"

点击终端TensorBoard打印的链接,即可在浏览器查看训练LOG信息等:


5.手部关键点检测模型效果

demo.py文件用于推理和测试模型的效果,填写好配置文件,模型文件以及测试图片即可运行测试了;demo.py命令行参数说明如下:

参数类型参考值说明
-c,--config_filestr-配置文件
-m,--model_filestr-模型文件
targetstr-骨骼点类型,如hand,coco_person,mpii
image_dirstrdata/image测试图片的路径
video_filestr,int-测试的视频文件
out_dirstroutput保存结果,为空不保存
thresholdfloat0.3关键点检测置信度
devicestrcuda:0GPU ID

下面以运行HRNet-w32为样例,其他模型修改--config_file或者--model_file即可

  • 测试图片
python demo.py   -c "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/w32_adam_hand_192_192.yaml"    -m "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/model/best_model_189_0.8570.pth"   --target "hand"   --image_dir "data/hand"   --out_dir "output"
  • 测试视频文件
python demo.py   -c "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/w32_adam_hand_192_192.yaml"    -m "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/model/best_model_189_0.8570.pth"   --target "hand"   --video_file "data/hand/test-video.mp4"   --out_dir "output"
  •  测试摄像头
 python demo.py   -c "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/w32_adam_hand_192_192.yaml"    -m "work_space/hand/hrnet_w32_21_192_192_custom_coco_20231007_083128_2043/model/best_model_189_0.8570.pth"   --target "hand"   --video_file 0   --out_dir "output"

运行效果:

 


6.手部关键点检测(推理代码)

手部关键点检测推理代码下载地址:Pytorch实现手部关键点检测(手部姿势估计) Python推理代码

手部关键点检测推理代码内容包含:

(1)手部关键点检测推理代码(Pytorch)

  1. 提供YOLOv5手部检测推理代码(不包含训练代码)
  2. 提供手部关键点检测推理代码demo.py(不包含训练代码)
  3. 提供高精度版本HRNet手部关键点检测(不包含训练代码)
  4. 提供轻量化模型LiteHRNet,以及Mobilenet-v2手部关键点检测(不包含训练代码)
  5. 提供训练好的模型:HRNet-w32,LiteHRNet和Mobilenet-v2模型,配置好环境,可直接运行demo.py
  6. 推理代码demo.py支持图片,视频和摄像头测试

 如果你需要配套的训练数据集和训练代码,请查看下面部分


7.手部关键点检测(训练代码)

手部关键点检测训练代码下载地址: Pytorch实现手部关键点检测(手部姿势估计)》 含训练代码和数据集

手部关键点检测训练代码内容包含:手部检测数据集和手部关键点数据集 + 手部关键点检测训练和测试代码

(1)手部检测数据集和手部关键点数据集:

  1. 手部检测数据集:包含Hand-voc1,Hand-voc2和Hand-voc3,总共60000+张图片;标注格式统一转换为VOC数据格式,标注名称为hand,可用于深度学习手部目标检测模型算法开发。

  2. 手部关键点数据集:包含HandPose-v1,HandPose-v2和HandPose-v3,总共80000+张图片;标注了手部区域目标框box,标注名称为hand,同时也标注了手部21个关键点,标注格式统一转换为COCO数据格式,可直接用于深度学习手部关键点检测模型训练。

  3. 数据集详细说明,请查看《手部关键点(手部姿势估计)数据集(含下载链接)》https://blog.csdn.net/guyuealian/article/details/133277630

(2)手部关键点检测训练代码和测试代码(Pytorch)

  1. 提供YOLOv5手部检测推理代码(不包含训练代码)
  2. 提供整套完整的手部关键点检测项目工程代码,包含手部关键点检测的训练代码train.py和推理测试代码demo.py
  3. 提供高精度版本HRNet手部关键点检测训练和测试
  4. 提供轻量化模型LiteHRNet,以及Mobilenet-v2手部关键点检测训练和测试
  5. 根据本篇博文说明,简单配置即可开始训练:train.py
  6. 提供训练好的模型:HRNet-w32,LiteHRNet和Mobilenet-v2模型,配置好环境,可直接运行demo.py
  7. 测试代码demo.py支持图片,视频和摄像头测试

8.手部关键点检测C++/Android版本

  • 手部关键点检测4:Android实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133277732
  • 手部关键点检测5:C++实现手部关键点检测(手部姿势估计)含源码 可实时检测https://blog.csdn.net/guyuealian/article/details/133277748

  Android手部关键点检测(手部姿势估计)APP Demo体验:https://download.csdn.net/download/guyuealian/88418582

  

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Minio 文件上传(后端处理同文件判断,同一文件秒传)

记录minio 文件上传 MinIO提供多个语言版本SDK的支持&#xff0c;下边找到java版本的文档&#xff1a; 地址&#xff1a;https://docs.min.io/docs/java-client-quickstart-guide.html maven依赖如下&#xff1a; XML <dependency><groupId>io.minio</groupId…

Liunx中系统安全及文件系统(极其粗糙版)

PS&#xff1a;下面知识点还很粗糙下次有时间再改 系统安全&#xff1a; 系统安全和数据防护&#xff0c;数据备份的资质 比如三台服务器&#xff1a; 500万 工信部是有要求的&#xff0c;组织必须保证处理的个人数据的安全性 品牌形象如何维护呢 基于liunx的安全加固措施…

【微信小程序】数字化会议OA系统之首页搭建(附源码)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

C++不用工具,如何检测内存泄漏?

C不用工具&#xff0c;如何检测内存泄漏&#xff1f; 大概12年前&#xff0c;在某外企 的时候&#xff0c;要做一个跨平台的office&#xff0c;即聚合了word Excel 以及 ppt等几大模块&#xff0c;代码大概200w行&#xff0c;我负责的就是内存泄漏这块最近很多小伙伴找我&#…

儿童疫苗接种:安全与注意事项

引言&#xff1a; 儿童的疫苗接种是维护其健康和预防传染病的重要措施。疫苗可以有效地保护儿童免受各种疾病的威胁&#xff0c;但在接种过程中需要家长和监护人特别关注一些注意事项&#xff0c;以确保接种的安全性和有效性。本文将深入探讨儿童疫苗接种的重要性&#xff0c;…

定制AI问答机器人前需要准备什么数据来训练AI模型?

AI问答机器人利用自然语言处理&#xff08;NLP&#xff09;技术来理解和回应用户的查询&#xff0c;能通过分析大量数据提供准确和相关的答案。要定制一个AI问答机器人&#xff0c;收集必要的资源和工具是至关重要的。获取用于训练模型的数据集是个关键的基础&#xff0c;然后通…

Linux常用命令——colrm命令

在线Linux命令查询工具 colrm 删除文件中的指定列 补充说明 colrm命令用于删除文件中的指定列。colrm命令从标准输入设备读取书记&#xff0c;转而输出到标准输出设备。如果不加任何参数&#xff0c;则colrm命令不会过滤任何一行。 语法 colrm(参数)参数 起始列号&#…

浅谈余压监控系统在住宅小区的应用方案

【摘要】&#xff1a; 本文分析了火灾发生时人员伤亡的主要原因——烟雾&#xff0c;并针对该原因提供切实可靠的系统应用解决方案&#xff0c;并通过具体案例&#xff0c;从设计依据、产品选型、系统组网、现场安装等方式介绍余压监控系统&#xff0c;希望可以在火灾发生时较大…

【Vue项目】通过设置全局的异常处理来统一处理后端返回的异常

文章目录 简介方法一创建统一异常处理模块使用axios拦截器处理异常在页面中使用异常处理 方法二创建全局异常处理函数在main.js中配置全局异常处理在网络请求中捕获异常 方法三创建全局异常处理插件在main.js中注册全局异常处理插件在网络请求中捕获异常 总结 简介 在Vue项目中…

百度开源分布式id生成器集成--真香警告

百度开源分布式id生成器集成–真香警告 文章目录 [toc] 1.为什么需要分布式id生成器&#xff1f;2.常见id生成方案2.1 数据库表主键自增2.2 uuid2.3 雪花算法2.3.1 实现代码2.3.2 缺点的解决方案百度开源的分布式唯一ID生成器UidGenerator(本文重点讲解这个)Leaf--美团点评分布…

【Unity3D编辑器开发】Unity3D中实现Transform组件拓展,快速复制、粘贴、复原【非常实用】

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中&#xff0c;常常会遇到频繁复制粘贴物体的坐标、旋转…

ChatGPT对于留学生论文写作有哪些帮助?

2022年11月&#xff0c;OpenAI公司的智能聊天产品ChatGPT横空出世&#xff0c;并两个月之内吸引了超过1亿用户&#xff0c;打破了TikTok&#xff08;抖音国际版&#xff09;9个月用户破亿的纪录。 划时代的浪潮 ChatGPT的火爆立即引起了全球关注并成为热门话题&#xff0c;它…

性能测试需求分析

1、客户方提出 客户方能提出明确的性能需求&#xff0c;说明对方很重视性能测试&#xff0c;这样的企业一般是金融、电信、银行、医疗器械等&#xff1b;他们一般对系统的性能要求非常高&#xff0c;对性能也非常了解。提出需求也比较明确。 曾经有一个银行项目&#xff0c;已经…

VUE:可收缩工具栏

作者:CSDN @ _乐多_ 本文记录了一个vue可伸缩工具栏组件,代码即插即用。 只需要新增函数名并且填函数体就可以。 效果如下图所示, 文章目录 一、Vue代码一、Vue代码 <template><div class="ToolBar"><div class=

安防视频监控EasyCVR视频汇聚平台与萤石云平台的适配方案分析

随着科技的不断发展&#xff0c;互联网技术逐渐深入到我们生活的各个领域。其中&#xff0c;安防监控领域受益于互联网技术的发展&#xff0c;逐渐呈现出智能化、高清化、远程化的趋势。本文将介绍一种基于萤石云与EasyCVR平台的安防视频监控解决方案&#xff0c;以满足用户对安…

uniapp实现简单的九宫格抽奖(附源码)

效果展示 uniapp实现大转盘抽奖 实现步骤&#xff1a; 1.该页面可设置8个奖品&#xff0c;每个奖品可设置中奖机会的权重&#xff0c;如下chance越大&#xff0c;中奖概率越高&#xff08;大于0&#xff09; // 示例代码 prizeList: [{id: 1,image: "https://img.alicdn…

数据结构-----红黑树简介

目录 前言 1.什么是红黑树&#xff1f; 2.为什么需要红黑树&#xff1f;&#xff08;与AVL树对比&#xff09; 3.红黑树的特性 前言 在此之前我们学习过了二叉排序树和平衡二叉树&#xff08;AVL树&#xff09;&#xff0c;这两种树都是属于搜索树的一种&#xff0c;那么今天…

Go语言入门心法(九): 引入三方依赖

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(八): mysql驱动安装报错onnection failed Go语言入门心法(…

Kotlin中的字符串基本操作

字符串定义&#xff1a; val str: String "Hello World"val str1 "Hello World"获取字符串的长度&#xff1a; println(str.length)通过索引方式访问某个字符&#xff0c;索引从0开始&#xff1a; println(str[4])通过for循环迭代字符串&#xff1a; for…

远程开户身份证识别OCR技术:革新传统流程,实现高效身份验证

远程开户是指通过互联网或其他远程通信方式&#xff0c;不需要亲自前往银行、证券公司或其他金融机构的实体营业网点&#xff0c;即可完成开立账户和办理相关服务的过程。 相比传统柜台开户方式&#xff0c;远程开户具有更高的便利性和灵活性。它使得用户可以随时随地通过网络…