新闻详情

新闻详情

首页 / 资讯中心 / 详情

InsightFace 人脸检测模型库实战指南:RetinaFace、SCRFD 与 BlazeFace 的训练、评估与部署

发布时间:2026/9/11 10:34:55来源:尧图网络
InsightFace 人脸检测模型库实战指南:RetinaFace、SCRFD 与 BlazeFace 的训练、评估与部署
InsightFace 人脸检测模型库实战指南RetinaFace、SCRFD 与 BlazeFace 的训练、评估与部署【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 项目不仅覆盖 2D/3D 人脸分析其detection目录还沉淀了一套完整的人脸检测方法族包含 CVPR 2020 提出的 RetinaFace、ICLR 2022 发表的 SCRFD以及基于 PaddlePaddle 的 BlazeFace 实现。本文以 detection/README.md 为核心脉络结合各方法目录下的训练脚本、配置文件和推理代码系统讲解这三大人脸检测方案的原理要点、数据集准备、训练配置、WIDER FACE 评估流程与 ONNX 部署路径帮助你直接复用或二次训练 InsightFace 的人脸检测模型。一、InsightFace 人脸检测方法总览detection/目录是 InsightFace 的人脸检测模型库目前支持三种方法方法出处目录技术特点RetinaFaceCVPR 2020detection/retinaface单阶段多层级人脸定位可同时输出人脸框与 5 个关键点SCRFDArxiv 2021 / ICLR 2022detection/scrfd样本与计算冗余度感知的高效检测器支持网络搜索自动生成轻量骨干blazeface_paddlearXiv 1907.05047detection/blazeface_paddle基于 PaddleDetection 的 BlazeFace-FPN-SSH主打移动端超轻量检测与这三套实现配套的还有两个支撑文档数据集说明detection/datasets/README.md列出了训练与测试使用的公开人脸数据集评估说明detection/_evaluation_页面原文档链接指向该目录当前仓库中该目录尚未填充具体内容可在detection目录下确认最新状态。从源码结构看RetinaFace 走的是 MXNet 训练 自研 RCNN 框架路线detection/retinaface/rcnnSCRFD 走的是 PyTorch mmdetection 路线detection/scrfd/mmdetblazeface_paddle 则是 PaddlePaddle 生态三套方案覆盖了主流深度学习框架方便不同技术栈的开发者按需选用。二、人脸检测数据集与评估基准2.1 训练与测试数据集根据 detection/datasets/README.md人脸检测模型的训练与测试数据集如下训练数据集WIDER FACEhttp://shuoyang1213.me/WIDERFACE/当前仓库中列出的主要训练数据集包含大量在尺度、姿态、遮挡上极具挑战性的真实场景人脸图像是评测人脸检测器的行业标准。测试数据集WIDER FACE验证集用于计算 Easy / Medium / Hard 三档 mAPFDDBhttp://vis-www.cs.umass.edu/fddb/经典的人脸检测评测集AFW、PASCAL FACE、MALFhttp://www.cbsr.ia.ac.cn/faceevaluation/其余补充评测集。2.2 WIDER FACE 三档指标的含义各方法 README 中反复出现的 Easy / Medium / Hard mAP对应 WIDER FACE 验证集按检测难度划分的三个子集Easy 档人脸尺寸大、遮挡少Medium 档难度适中Hard 档包含大量小尺度、极端姿态与严重遮挡的人脸。SCRFD 论文中报告的性能数据均基于此基准例如 SCRFD-10GF 在 Easy / Medium / Hard 上分别达到 95.16 / 93.87 / 83.05详见下文性能表。三、RetinaFace单阶段多层级人脸定位3.1 方法简介RetinaFace 最早见于 arXiv 1905.00641后发表于 CVPR 2020。它是一个实用的单阶段single-stage人脸检测器在单次前向传播中同时输出人脸边界框与五个面部关键点双眼、鼻尖、嘴角这也是官方预训练模型 RetinaFace-R50 的核心能力——It can output face bounding boxes and five facial landmarks in a single forward pass。RetinaFace 目录下还附带一份非官方第三方实现yangfly 贡献的 RetinaFace-MobileNet0.25WIDER FACE Hard mAP 82.5模型仅 1.68MB适合对模型体积敏感的场景。3.2 数据准备与目录组织官方标注人脸框 5 个关键点需要从网盘下载WIDER FACE 数据集从官网下载。数据目录按以下结构组织在insightface/RetinaFace/下即仓库detection/retinaface/data/retinaface/ train/ images/ label.txt val/ images/ label.txt test/ images/ label.txt对应的数据集配置在 detection/retinaface/rcnn/sample_config.py 中定义dataset.retinaface.dataset_path data/retinaface默认image_set train、test_image_set val。训练时所有图像会按config.SCALES [(640, 640)]统一缩放短边优先。3.3 安装与编译安装带 GPU 支持的 MXNet若使用基于 DCNDeformable Convolution的骨干网络需从 Deformable-ConvNets 项目编译 DCNv2 算子对应 rcnn/sample_config.py 中的config.USE_DCN开关在detection/retinaface/下执行make编译 CXX 工具对应config.TEST.CXX_PROPOSAL True的快速 proposal 生成。3.4 训练流程按 detection/retinaface/README.md 的说明将rcnn/sample_config.py复制为rcnn/config.py下载 ImageNet 预训练模型放入model/ResNet50 / ResNet152仅用于训练参数初始化不参与检测推理启动训练CUDA_VISIBLE_DEVICES0,1,2,3 python -u train.py --prefix ./model/retina --network resnet训练入口 detection/retinaface/train.py 的解析逻辑显示--network决定网络与优化策略预置了两套网络设置resnet面向中大型模型。network.resnet.pretrained model/resnet-152BATCH_IMAGES 8lr 0.001lr_step 1,2,3,4,5,55,68,80使用RAC_RETINAstride 4~64 的多尺度 anchormnet面向轻量模型。BATCH_IMAGES 16HEAD_FILTER_NUM 64FIXED_PARAMS [^stage1, ^.*upsampling]LAYER_FIX True冻结部分层。训练前可在rcnn/config.py中核对网络配置如预训练模型路径、anchor 设置与学习率策略。训练脚本中几个关键配置项config.TRAIN.BATCH_IMAGES每张 GPU 卡的 batch sizeinput_batch_size config.TRAIN.BATCH_IMAGES * len(ctx)config.RPN_ANCHOR_CFG不同 stride 特征图上的 anchor 配置SCALES / RATIOS / BASE_SIZEconfig.FACE_LANDMARK是否开启 5 点关键点回归分支默认Trueconfig.CASCADE级联检测头开关默认 0 关闭优化器为带 momentum0.9 的 SGD权重衰减wd0.0005初始化使用 Xavier。训练过程中每个 stride 的特征图都会单独统计RPNAcc_s{stride}anchor 分类准确率与RPNL1Loss_s{stride}框回归 L1 损失若开启关键点还会统计RPNLandMarkL1Loss_s{stride}。3.5 推理测试detection/retinaface/test.py演示了推理流程加载RetinaFace(./model/R50, 0, gpuid, net3)模型按短边 1024、最大边 1980 计算缩放比例调用detector.detect(img, thresh, scalesscales, do_flipflip)得到人脸框与关键点再通过 OpenCV 绘制结果。测试用默认阈值thresh 0.8。3.6 预训练模型与精度官方发布的RetinaFace-R50ResNet50 骨干的中等规模模型在 WIDER FACE 验证集上达到Easy 96.5、Medium 95.6、Hard 90.4。由于要避免与 ICCV 2019 WIDER Face Challenge 冲突官方推迟了最强模型的发布。四、SCRFD高效高精度人脸检测器4.1 方法简介SCRFDSample and Computation Redundancy-aware Face Detector最初发表于 arXiv 2105.04714后收录于 ICLR-2022。核心思想是通过分析训练样本与计算量的冗余度自动搜索出精度高、参数量与 FLOPs 都更低的网络结构。相比同 FLOPs 的通用检测器如 DSFD、RetinaFace、HAMBox、TinaFaceSCRFD 在 WIDER FACE 三档 mAP 上均有明显提升。4.2 性能对比以下精度Easy/Medium/Hard mAP、参数量、FLOPs 与推理耗时均基于VGA 分辨率640×480评估数据引自 detection/scrfd/README.mdResNet 家族方法BackboneEasyMediumHardParams(M)FLOPs(G)Infer(ms)DSFD (CVPR19)ResNet15294.2991.4771.39120.06259.5555.6RetinaFace (CVPR20)ResNet5094.9291.9064.1729.5037.5921.7HAMBox (CVPR20)ResNet5095.2793.7676.7530.2443.2825.9TinaFace (Arxiv20)ResNet5095.6194.2581.4337.98172.9538.9SCRFD-34GFBottleneck Res96.0694.9285.299.8034.1311.7SCRFD-10GFBasic Res95.1693.8783.053.869.984.9SCRFD-2.5GFBasic Res93.7892.1677.870.672.534.2Mobile 家族方法BackboneEasyMediumHardParams(M)FLOPs(G)Infer(ms)RetinaFace (CVPR20)MobileNet0.2587.7881.1647.320.440.8027.9FaceBoxes (IJCB17)-76.1757.1724.181.010.2752.5SCRFD-0.5GFDepth-wise Conv90.5788.1268.510.570.5083.6X64 CPU 性能SCRFD-0.5GF输入尺寸CPU 单线程EasyMediumHard原图scale 1.0-90.9189.4982.03640×48028.3ms90.5788.1268.51320×24011.4ms---CPU 数据在 AMD Ryzen 9 3950X 上测得使用简单 PyTorch CPU 推理OMP_NUM_THREADS1未启用 mkldnn。4.3 安装与数据准备SCRFD 基于 mmdetection 构建安装步骤安装 mmcv官方测试过 mmcv-full 1.2.6 与 1.3.3安装构建依赖并安装 mmdetpip install -r requirements/build.txt pip install -v -e . # 或 python setup.py develop数据准备WIDER FACE下载 WIDER FACE 数据集放入data/retinaface下载标注文件labelv2.txt 及 val/gt/*.mat放入data/retinaface/data/retinaface/ train/ images/ labelv2.txt val/ images/ labelv2.txt gt/ *.mat标注格式labelv2.txt每张图以# image_path image_width image_height开头随后每行一条标注bbox_x1 bbox_y1 bbox_x2 bbox_y2 (keypoint,3*N)N 组关键点每组含 x、y、可见性标志只有 bbox 时关键点可省略。4.4 训练以 detection/scrfd/configs/scrfd/scrfd_2.5g.py 为例该配置的核心要素优化器SGDlr0.01, momentum0.9, weight_decay0.0005lr_mult 8将总 epoch 放大为 640学习率策略step[55*lr_mult, 68*lr_mult]warmup 1500 步、ratio 0.001数据管道RandomSquareCropcrop_choice 覆盖 0.3~2.0 十档、Resize(640,640)、RandomFlip(0.5)、PhotoMetricDistortion归一化mean[127.5,127.5,127.5], std[128.0,128.0,128.0]模型结构backbone 为ResNetV1ebase_channels24stage_blocks(3,5,3,2)stage_planes[24,48,48,80]neck 为PAFPN检测头为SCRFDHead损失分类用QualityFocalLossbeta2.0回归用DIoULossweight 2.0关键点用SmoothL1Lossbeta1/9weight 0.1正负样本分配ATSSAssigner topk9推理时score_thr0.02、NMSiou_threshold0.45。4 卡训练命令detection/scrfd/README.mdCUDA_VISIBLE_DEVICES0,1,2,3 PORT29701 bash ./tools/dist_train.sh ./configs/scrfd/scrfd_1g.py 44.5 WIDER FACE 评估SCRFD 提供了纯 Python的评估脚本无需 Matlab。评估命令GPU0 GROUPscrfd TASKscrfd_2.5g CUDA_VISIBLE_DEVICES$GPU python -u tools/test_widerface.py ./configs/$GROUP/$TASK.py ./work_dirs/$TASK/model.pth --mode 0 --out woutsdetection/scrfd/tools/test_widerface.py 中--mode控制测试尺度0为 640×6401为 (1100, 1650)2为原图尺度30则使用自定义边长。结果按事件目录组织保存到--out目录最后调用wider_evaluation计算三档 mAP 并写入aps文件。4.6 预训练模型以下模型均可直接下载数据引自 detection/scrfd/README.md 模型表mAP、FLOPs 与延迟均按 VGA 分辨率评估_KPS后缀表示模型包含 5 关键点预测分支名称EasyMediumHardFLOPsParams(M)Infer(ms)SCRFD_500M90.5788.1268.51500M0.573.6SCRFD_1G92.3890.5774.801G0.644.1SCRFD_2.5G93.7892.1677.872.5G0.674.2SCRFD_10G95.1693.8783.0510G3.864.9SCRFD_34G96.0694.9285.2934G9.8011.7SCRFD_500M_KPS90.9788.4469.49500M0.573.6SCRFD_2.5G_KPS93.8092.0277.132.5G0.824.3SCRFD_10G_KPS95.4094.0182.8010G4.235.04.7 导出 ONNX 与推理ONNX 导出使用 detection/scrfd/tools/scrfd2onnx.pypython tools/scrfd2onnx.py config checkpoint --shape 640 640默认导出动态输入--shape -1 -1时自动切换为动态模式dummy shape 640×640可指定固定输入尺寸后用 onnx-simplifier 优化。脚本支持--mean/--std自定义预处理参数默认 mean127.5、std128.0opset 固定为 11。ONNXRuntime 推理参考 detection/scrfd/tools/scrfd.py其中SCRFD类封装了完整的后处理_init_vars根据输出张量数量自动识别模型形态6 个输出3 stride × 2 类为 bbox 版strides 8/16/329 个输出启用关键点10/15 个输出对应 5 级 FPNstrides 8/16/32/64/128forward通过cv2.dnn.blobFromImage做1/128缩放与(127.5,127.5,127.5)均值归一化再用distance2bbox/distance2kps将距离回归解码为坐标detect支持thresh默认 0.5、input_size如 640×640、max_num与metricmax或default等参数内部按长宽比做 letterbox 缩放最后执行 NMSnms_thresh默认 0.4并还原到原图坐标。4.8 网络搜索NASSCRFD 的两阶段网络搜索流程同样开箱可用目标函数以 WIDER FACE Hard mAP 为准。以搜索 SCRFD-2.5GF 为例detection/scrfd/search_tools/generate_configs_2.5g.py搜索骨干网络python search_tools/generate_configs_2.5g.py --mode 1mode1仅搜 backbone其余参数见脚本脚本使用autotorch在 block 类型、base_channels8~64、stage_blocks 与 stage_planes_ratio 等维度上生成候选生成configs/scrfdgen2.5g/scrfdgen2.5g_1.py~scrfdgen2.5g_64.pynum_configs64时用search_tools/search_train.sh对每个候选训练 80 epoch用search_tools/search_test.sh逐个测试 WIDER FACE 精度以最优配置为模板做整体网络搜索python search_tools/generate_configs_2.5g.py --mode 2 --template 10对生成的新配置再次训练与测试选出最终最优模型。五、BlazeFace-Paddle移动端超轻量人脸检测5.1 方法简介Arcface-Paddle是 InsightFace 中基于 PaddlePaddle 的人脸检测与识别工具包目前提供三个预训练模型BlazeFace检测、ArcFace 与 MobileFace识别。本目录聚焦 BlazeFace 人脸检测教程主体基于 PaddleDetection 实现识别部分请见 recognition/arcface_paddle/README_en.md。5.2 模型库与性能数据引自 detection/blazeface_paddle/README.md模型输入尺寸epochsEasy/Medium/HardCPU 耗时GPU 耗时模型大小(MB)BlazeFace-FPN-SSH640×64010000.9187 / 0.8979 / 0.816831.7ms5.6ms0.646RetinaFace480×640-- / - / 0.8250182.0ms17.4ms1.680说明mAP 采用多尺度评估获得速度在 640×640 分辨率下测量CPU 为 Intel Xeon Gold 6148cpu-threads5GPU 为单卡 Tesla V100。RetinaFace 基准代码来自detection/retinaface。5.3 数据管道训练使用 WIDER FACE 数据集目录结构dataset/wider_face/ ├── wider_face_split │ ├── wider_face_train_bbx_gt.txt │ ├── wider_face_val_bbx_gt.txt ├── WIDER_train │ └── images │ ├── 0--Parade │ │ └── 0_Parade_marchingband_1_100.jpg │ └── 10--People_Marching ├── WIDER_val │ └── images可通过cd dataset/wider_face ./download_wider_face.sh自动下载。5.4 配置文件详解训练使用configs/face_detection/blazeface_fpn_ssh_1000e.yml该配置通过_BASE_继承五个子配置_BASE_: [ ../datasets/wider_face.yml, ../runtime.yml, _base_/optimizer_1000e.yml, _base_/blazeface_fpn.yml, _base_/face_reader.yml, ] weights: output/blazeface_fpn_ssh_1000e/model_final multi_scale_eval: True各子配置职责wider_face.yml训练/验证数据路径runtime.yml通用运行参数是否用 GPU、checkpoint 保存频率等optimizer_1000e.yml学习率与优化器配置blazeface_fpn.yml模型与骨干网络结构face_reader.yml数据读取器batch size、并发加载进程数及 resize、数据增强等预处理。基础模型结构见configs/face_detection/_base_/blazeface.yml改进版在骨干后追加 FPN SSH 颈部结构_base_/blazeface_fpn.ymlBlazeNet: blaze_filters: [[24, 24], [24, 24], [24, 48, 2], [48, 48], [48, 48]] double_blaze_filters: [[48, 24, 96, 2], [96, 24, 96], [96, 24, 96], [96, 24, 96, 2], [96, 24, 96], [96, 24, 96]] act: hard_swish # 骨干中 BlazeBlock 的激活函数基础模型为 relu使用 FPNSSH 时需为 hard_swish BlazeNeck: neck_type : fpn_ssh # 可选 only_fpn、only_ssh 与 fpn_ssh in_channel: [96,96]5.5 训练先下载预训练骨干wget https://paddledet.bj.bcebos.com/models/pretrained/blazenet_pretrain.pdparams单卡训练export CUDA_VISIBLE_DEVICES0 python tools/train.py -c configs/face_detection/blazeface_fpn_ssh_1000e.yml -o pretrain_weightblazenet_pretrain多卡训练export CUDA_VISIBLE_DEVICES0,1,2,3 python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/face_detection/blazeface_fpn_ssh_1000e.yml -o pretrain_weightblazenet_pretrain断点续训加-r output/blazeface_fan_ssh_1000e/100指定 checkpoint 目录。超参每卡batch_size32、4 卡共 128学习率 0.002总训练 1000 epoch。注意训练过程中不支持边训练边评估。5.6 WIDER FACE 评估python -u tools/eval.py -c configs/face_detection/blazeface_fpn_ssh_1000e.yml \ -o weightsoutput/blazeface_fpn_ssh_1000e/model_final \ multi_scale_evalTrue BBoxPostProcess.nms.score_threshold0.1multi_scale_evalTrue启用多尺度评估结果 txt 输出到output/pred再配合官方 eval_tools或WiderFace-Evaluation项目的 Python 实现python3 evaluation.py -p pred -g ground_truth计算 AP 指标。5.7 推理部署与加速导出部署模型去掉反向传播、转为推理格式python tools/export_model.py -c configs/face_detection/blazeface_fpn_ssh_1000e.yml --output_dir./inference_model \ -o weightsoutput/blazeface_fpn_ssh_1000e/best_model BBoxPostProcess.nms.score_threshold0.1导出产物为infer_cfg.yml、model.pdiparams、model.pdiparams.info、model.pdmodel。推理时将 NMS 的score_threshold调低到 0.1 可显著提速且对 mAP 影响很小。PaddleInference Python 部署python deploy/python/infer.py --model_dir./inference_model/blazeface_fpn_ssh_1000e --image_filedemo/road554.png --use_gpuTrueCPU 加速安装带 MKL-DNN 的 paddle wheel推理时开启--enable_mkldnnTrue --run_benchmarkTrue --cpu_threads5。复现官方速度指标时需修改infer_cfg.yml中的target_size: [640, 640]与归一化参数mean 123/117/104std 127.502231。本地可视化 demopython3.7 test_blazeface.py --inputfriends1.jpg --output./output六、模型复用与生态集成三种检测器在 InsightFace 中均有更高层的复用入口SCRFD / RetinaFace 的 ONNX 模型可直接接入 python-package/insightface/model_zooretinaface.py、scrfd.py与 python-package/insightface/app/face_analysis.py 完成检测 → 对齐 → 识别的完整人脸分析流程边缘部署示例见 examples/edge_inference 与 examples/face_detectionSCRFD 社区已有丰富的跨平台移植ncnn-android、MNN/TNN/NCNN/ONNXRuntime C、TensorRT Python 等适合手机与嵌入式端落地详见 detection/scrfd/README.md 的 Demo 小节。七、总结与选型建议精度优先选择 SCRFD-34GEasy 96.06 / Hard 85.29或 RetinaFace-R50Easy 96.5 / Hard 90.4两者均能在单次前向中输出 5 关键点速度与体积优先SCRFD-0.5GF0.57M 参数、3.6msVGA与 BlazeFace-FPN-SSH0.646MB、5.6msV100都是轻量首选框架偏好MXNet 生态选 RetinaFacePyTorch/mmdetection 生态选 SCRFDPaddlePaddle 生态选 blazeface_paddle。无论选择哪条路线WIDER FACE 都是贯穿训练、搜索与评估的统一基准建议训练前仔细核对各方法文档中的数据目录组织与标注格式detection/retinaface/README.md、detection/scrfd/README.md避免因数据路径问题影响复现。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

《Python数据分析》第三版实战指南:环境配置与核心技巧 2026/9/11 11:20:04

《Python数据分析》第三版实战指南:环境配置与核心技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ARM Cortex-M边缘AI静态架构审计:从KWS模型到MCU内存布局 2026/9/11 11:20:04

ARM Cortex-M边缘AI静态架构审计:从KWS模型到MCU内存布局

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Jenkins SSL证书验证失败问题分析与解决方案 2026/9/11 11:20:04

Jenkins SSL证书验证失败问题分析与解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Python单元测试实战:从unittest到Mock与覆盖率 2026/9/11 11:20:04

Python单元测试实战:从unittest到Mock与覆盖率

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
5分钟写好tools.yaml:数据库接入AI助手 2026/9/11 11:20:04

5分钟写好tools.yaml:数据库接入AI助手

5分钟写好tools.yaml:数据库接入AI助手 【免费下载链接】mcp-toolbox MCP Toolbox for Databases is an open source MCP server for databases. 项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox 想让 AI 助手直接回答"orders 表今天有多少单"…

阅读更多 →
KOReader 新手向指南:三步装好电纸书阅读器,把扫描 PDF 变成大字 2026/9/11 11:17:04

KOReader 新手向指南:三步装好电纸书阅读器,把扫描 PDF 变成大字

KOReader 新手向指南:三步装好电纸书阅读器,把扫描 PDF 变成大字 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android device…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞