自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夜雨飘零

PaddlePaddle教程第一人

  • 博客(109)
  • 资源 (26)
  • 问答 (3)
  • 收藏
  • 关注

原创 《PaddlePaddle从入门到炼丹》十五——把预测模型部署到Android手机上

现在越来越多的手机要使用到深度学习了,比如一些图像分类,目标检测,风格迁移等等,之前都是把数据提交给服务器完成的。但是提交给服务器有几点不好,首先是速度问题,图片上传到服务器需要时间,客户端接收结果也需要时间,这一来回就占用了一大半的时间,会使得整体的预测速度都变慢了,再且现在手机的性能不断提高,足以做深度学习的预测。

2019-02-23 21:38:16 3603 14

原创 《PaddlePaddle从入门到炼丹》十四——把预测模型部署在服务器

如果读者使用过百度等的一些图像识别的接口,比如百度的细粒度图像识别接口,应该了解这个过程,省略其他的安全方面的考虑。这个接口大体的流程是,我们把图像上传到百度的网站上,然后服务器把这些图像转换成功矢量数据,最后就是拿这些数据传给深度学习的预测接口,比如是PaddlePaddle的预测接口,获取到预测结果,返回给客户端。

2019-02-23 18:40:56 2332 11

原创 《PaddlePaddle从入门到炼丹》十三——自定义图像数生成

我们在第六章介绍了生成对抗网络,并使用生成对抗网络训练mnist数据集,生成手写数字图片。那么本章我们将使用对抗生成网络训练我们自己的图片数据集,并生成图片。在第六章中我们使用的黑白的单通道图片,在这一章中,我们使用的是3通道的彩色图。

2019-02-23 18:22:34 1446 5

原创 《PaddlePaddle从入门到炼丹》十二——自定义文本数据集分类

我们在第五章学习了循环神经网络,在第五章中我们使用循环神经网络实现了一个文本分类的模型,不过使用的数据集是PaddlePaddle自带的一个数据集,我们并没有了解到PaddlePaddle是如何使用读取文本数据集的,那么本章我们就来学习一下如何使用PaddlePaddle训练自己的文本数据集。我们将会从中文文本数据集的制作开始介绍,一步步讲解如何使用训练一个中文文本分类神经网络模型。

2019-02-23 18:10:32 2871 13

原创 《PaddlePaddle从入门到炼丹》十一——自定义图像数据集识别

本章将介绍如何使用PaddlePaddle训练自己的图片数据集,在之前的图像数据集中,我们都是使用PaddlePaddle自带的数据集,本章我们就来学习如何让PaddlePaddle训练我们自己的图片数据集。

2019-02-23 17:53:50 7223 61

原创 《PaddlePaddle从入门到炼丹》十——VisualDL 训练可视化

VisualDL是一个面向深度学习任务设计的可视化工具,包含了scalar、参数分布、模型结构、图像可视化等功能。可以这样说:“所见即所得”。我们可以借助VisualDL来观察我们训练的情况,方便我们对训练的模型进行分析,改善模型的收敛情况。

2019-01-17 23:10:01 2864 5

原创 《PaddlePaddle从入门到炼丹》九——迁移学习

前言在深度学习训练中,例如图像识别训练,每次从零开始训练都要消耗大量的时间和资源。而且当数据集比较少时,模型也难以拟合的情况。基于这种情况下,就出现了迁移学习,通过使用已经训练好的模型来初始化即将训练的网络,可以加快模型的收敛速度,而且还能提高模型的准确率。这个用于初始化训练网络的模型是使用大型数据集训练得到的一个模型,而且模型已经完全收敛。最好训练的模型和预训练的模型是同一个网络,这样可以最大限度地初始化全部层。

2019-01-17 22:59:58 3768 29

原创 《PaddlePaddle从入门到炼丹》八——模型的保存与使用

本系列教程中,前面介绍的都没有保存模型,训练之后也就结束了。那么本章就介绍如果在训练过程中保存模型,用于之后预测或者恢复训练,又或者由于其他数据集的预训练模型。本章会介绍三种保存模型和使用模型的方式。

2019-01-16 23:07:49 5523 22

原创 《PaddlePaddle从入门到炼丹》七——强化学习

本章介绍使用PaddlePaddle实现强化学习,通过自我学习,完成一个经典控制类的游戏,相关游戏介绍可以在Gym官网上了解。我们这次玩的是一个`CartPole-v1`游戏,操作就是通过控制滑块的左右移动,不让竖着的柱子掉下来。利用强化学习的方法,不断自我学习,通过在玩游戏的过程中获取到奖励或者惩罚,学习到一个模型。在王者荣耀中的超强人机使用的AI技术也类似这样。

2019-01-16 11:41:44 2882 8

原创 《PaddlePaddle从入门到炼丹》六——生成对抗网络

文章目录前沿定义网络定义训练程序训练并预测参考资料前沿我们上一章使用MNIST数据集进行训练,获得一个可以分类手写字体的模型。如果我们数据集的数量不够,不足于让模型收敛,最直接的是增加数据集。但是我们收集数据并进行标注是非常消耗时间了,而最近非常火的生成对抗网络就非常方便我们数据的收集。对抗生成网络可以根据之前的图片训练生成更多的图像,已达到以假乱真的目的。首先导入所需要的Python包,其...

2018-11-04 12:46:10 2101 5

原创 《PaddlePaddle从入门到炼丹》五——循环神经网络

文章目录前言训练模型预测数据参考资料前言除了卷积神经网络,深度学习中还有循环神经网络也是很常用的,循环神经网络更常用于自然语言处理任务上。我们在这一章中,我们就来学习如何使用PaddlePaddle来实现一个循环神经网络,并使用该网络完成情感分析的模型训练。训练模型首先导入Python库,fluid和numpy库我们在前几章都有使用过,这里就不重复了。这里主要结束是imdb库,这个是一个数...

2018-11-03 18:39:41 3898 28

原创 《PaddlePaddle从入门到炼丹》四——卷积神经网络

文章目录前言训练模型预测图像参考资料前言上一章我们通过学习线性回归例子入门了深度学习,同时也熟悉了PaddlePaddle的使用方式,那么我们在本章学习更有趣的知识点卷积神经网络。深度学习之所以那么流行,很大程度上是得益于它在计算机视觉上得到非常好的效果,而在深度学习上几乎是使用卷积神经网络来提取图像的特征的。在PaddlePaddle上如何定义一个卷积神经网络,并使用它来完成一个图像识别的任...

2018-10-29 23:00:52 7520 36

原创 《PaddlePaddle从入门到炼丹》三——线性回归

文章目录前言使用自定义数据使用房价数据集训练参考资料前言在第二章,我们已经学习了如何使用PaddlePaddle来进行加法计算,从这个小小的例子中,我们掌握了PaddlePaddle的使用方式。在本章中,我们将介绍使用PaddlePaddle完成一个深度学习非常常见的入门例子——线性回归,我们将分别使用自定义数据集和使用PaddlePaddle提供的数据集接口来训练一个线性回归模型。使用自定...

2018-10-29 23:00:20 5965 34

原创 《PaddlePaddle从入门到炼丹》二——计算1+1

在第一章介绍了百度AI Studio这个平台,接下来我们就使用这个平台来开发我们的PaddlePaddle。PaddlePaddle是百度在2016年9月27日开源的一个深度学习框架,也是目前国内唯一一个开源的深度学习框架。PaddlePaddle在0.11.0版本之后,开始推出Fluid版本,Fluid版本相对之前的V2版本,Fluid的代码结构更加清晰,使用起来更加方便。这本章中我们将会介绍如何使用PaddlePaddle来计算1+1,选择这个简单的例子主要是为了让读者了解PaddlePad

2018-10-29 22:59:48 5351 2

原创 《PaddlePaddle从入门到炼丹》一——新版本PaddlePaddle的安装

这一章我们介绍如何安装新版本的PaddlePaddle,这里说的新版本主要是说Fluid版本。Fluid 是设计用来让用户像Pytorch和Tensorflow Eager Execution一样执行程序。在这些系统中,不再有模型这个概念,应用也不再包含一个用于描述Operator图或者一系列层的符号描述,而是像通用程序那样描述训练或者预测的过程。也就是说PaddlePaddle从Fluid版本开始使用动态图机制,所以我们这个系列也是使用Fluid版本编写的教程。

2018-10-29 22:58:28 16375 18

原创 基于TNN在Android手机上实现图像分类

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于TNN在Android手机上实现图像分类前言TNN:由腾讯优图实验室打造,移动端高性能、轻量级推理框架,同时拥有跨平台、高性能、模型压缩、代码裁剪等众多突出优势。TNN框架在原有Rapidnet、ncnn框架的基础上进一步加强了移动端设备的支持以及性能优化,同时也借鉴了业界主流开源框架高性能和良好拓展性的优点。教程.

2020-09-06 11:29:00 878 2

原创 基于MNN在Android手机上实现图像分类

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于MNN在Android手机上实现图像分类前言MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。下.

2020-09-05 21:57:05 4070 1

原创 一行代码Android上实现人脸检测、关键点检测、口罩检测

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:一行代码Android上实现人脸检测、关键点检测、口罩检测一行代码实现人脸检测,人脸关键点检测和戴口罩检测。Face[] result = FaceDetectionUtil.getInstance(MainActivity.this).predictImage(bitmap);本项目是使用Paddle Lite 的.

2020-09-05 12:05:06 3197 10

原创 基于insightface实现的人脸识别和人脸注册

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于insightface实现的人脸识别和人脸注册本教程的人脸识别是使用的是insightface库进行开发的,该库使用的框架为mxnet。安装环境安装mxnet,支持1.3~1.6版本,安装命令如下。shell scriptpip install mxnet-cu101==1.5.1安装insightf.

2020-08-30 12:51:34 1037

原创 Android基于图像语义分割实现人物背景更换

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:Android基于图像语义分割实现人物背景更换本教程是通过PaddlePaddle的PaddleSeg实现的,该开源库的地址为:http://github.com/PaddlPaddle/PaddleSeg ,使用开源库提供的预训练模型实现人物的图像语义分割,最终部署到Android应用上。关于如何在Android应用上使.

2020-08-29 22:48:23 282

原创 基于PaddlePaddle实现的目标检测模型PP-YOLO

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于PaddlePaddle实现的目标检测模型PP-YOLOPP-YOLOPP-YOLO是PaddleDetection优化和改进的YOLOv3的模型,其精度(COCO数据集mAP)和推理速度均优于YOLOv4模型,PP-YOLO在COCO test-dev2017数据集上精度达到45.9%,在单卡V100上FP32推理.

2020-08-18 08:45:57 944

原创 基于Paddle Lite在Android手机上实现图像分类

Paddle Lite是飞桨基于Paddle Mobile全新升级推出的端侧推理引擎,在多硬件、多平台以及硬件混合调度的支持上更加完备,为包括手机在内的端侧场景的AI应用提供高效轻量的推理能力,有效解决手机算力和内存限制等问题,致力于推动AI应用更广泛的落地。

2020-08-02 13:29:20 1847

原创 基于Pytorch实现的MASR中文语音识别

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于Pytorch实现的MASR中文语音识别MASR是一个基于端到端的深度神经网络的中文普通话语音识别项目,本项目是基于https://github.com/nobody132/masr 进行开发的。本教程源码地址:https://github.com/yeyupiaoling/MASR.git模型原理MASR使用的.

2020-07-30 14:49:44 721

原创 基于Tensorflow2 Lite在Android手机上实现图像分类

Tensorflow2之后,训练保存的模型也有所变化,基于Keras接口搭建的网络模型默认保存的模型是h5格式的,而之前的模型格式是pb。Tensorflow2的h5格式的模型转换成tflite格式模型非常方便。本教程就是介绍如何使用Tensorflow2的Keras接口训练分类模型并使用Tensorflow Lite部署到Android设备上。

2020-07-22 14:35:47 1765 7

原创 基于MTCNN和MobileFaceNet实现的人脸识别
原力计划

前言本教程是教程是介绍如何使用Tensorflow实现的MTCNN和MobileFaceNet实现的人脸识别,并不介绍如何训练模型。关于如何训练MTCNN和MobileFaceNet,请阅读这两篇教程 MTCNN-Tensorflow 和 MobileFaceNet_TF ,下面就来介绍如何实现这两个模型实现三种人脸识别,使用路径进行人脸注册和人脸识别,使用摄像头实现人脸注册和人脸识别,通过HTTP实现人脸注册和人脸识别。实现本地图像识别...

2020-07-19 12:18:49 635

原创 基于Kersa实现的中英语音声纹识别
原力计划

本项目是基于VGG-Speaker-Recognition开发的,本项目主要是用于声纹识别,也有人称为说话人识别。本项目包括了自定义数据集的训练,声纹对比,和声纹识别。

2020-07-15 09:47:29 374 5

原创 基于Pyramidbox实现的大规模人脸检测
原力计划

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:Mediapipe框架在Android上的使用前言今天来水一片文章,基因Pyramidbox编写的PaddlePaddle教程,为了方便训练预测,本教程做了一定的修改。这个模型虽然大,但是符合大规模人群中也可以准确地检测到人脸,就是遮挡比较严重也能正确检测。PyramidBox 是一种基于SSD的单阶段人脸检测器,它利.

2020-07-09 10:55:01 300

原创 Mediapipe框架在Android上的使用
原力计划

MediaPipe是用于构建跨平台多模态应用ML管道的框架,其包括快速ML推理,经典计算机视觉和媒体内容处理(如视频解码)。下面是用于对象检测与追踪的MediaPipe示例图,它由4个计算节点组成:PacketResampler计算器;先前发布的ObjectDetection子图;围绕上述BoxTrakcing子图的ObjectTracking子图;以及绘制可视化效果的Renderer子图。

2020-07-08 11:43:15 748

原创 基于PaddlePaddle实现的密度估计模型CrowdNet
原力计划

原文博客:Doi技术团队链接地址:https://blog.doiduoyi.com/authors/1584446358138初心:记录优秀的Doi技术团队学习经历本文链接:基于PaddlePaddle实现的密度估计模型CrowdNet前言CrowdNet模型是2016年提出的人流密度估计模型,论文为《CrowdNet: A Deep Convolutional Network for DenseCrowd Counting》,CrowdNet模型主要有深层卷积神经网络和浅层卷积神经组成,通.

2020-06-06 13:06:07 284

原创 基于PaddlePaddle实现的目标检测模型SSD
原力计划

SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法,截至目前是主要的检测框架之一,相比Faster RCNN有明显的速度优势,相比YOLO V1又有明显的mAP优势。本开源是基于PaddlePaddle实现的SSD,包括 MobileNetSSD,MobileNetV2SSD,VGGSSD,ResNetSSD。使用的是 VOC 格式数据集,同时提供了预训练模型和 VOC 数据的预测模型。

2020-06-02 21:29:30 1012 4

原创 Python实现常见的排序算法
原力计划

本章介绍使用Python实现场景的几种排序算法。分别有冒泡算法、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排序、桶排序、基数排序。

2020-05-16 12:42:03 210

原创 在Android实现双目测距
原力计划

前言在上一章我们介绍了《双目摄像头测量距离》,在这个基础上,我们来了解如何在Android上使用双目测距算法。通过本教程,你不仅掌握如何在Android中使用SBM等双目测距算法,顺便也了解到如何在Android Studio配置OpenCV,通过使用OpenCV可以在Android中实现很多图像处理的功能。配置OpenCV下载OpenCV的Android版本源码,官网下载地址:https://opencv.org/releases/,如果读者无法下载,笔者也提供的源码下载,版本是3.4.1的,下载地

2020-05-16 11:43:42 562

原创 双目摄像头测量距离
原力计划

在计算机视觉中,可以通过双目摄像头实现,常用的有BM 算法和SGBM 算法等,双目测距跟激光不同,双目测距不需要激光光源,是人眼安全的,只需要摄像头,成本非常底,也用于应用到大多数的项目中。本章我们就来介绍如何使用双目摄像头和SGBM 算法实现距离测量。

2020-05-14 21:39:08 1182

原创 使用PaddlePaddle实现声纹识别
原力计划

本章介绍如何使用PaddlePaddle实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于PaddlePaddle实现声音分类》。基于这个知识基础之上,我们训练一个声纹识别模型,通过这个模型我们可以识别说话的人是谁,可以应用在一些需要音频验证的项目。

2020-05-05 12:27:35 473 2

原创 使用Tensorflow实现声纹识别
原力计划

本章介绍如何使用Tensorflow实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于Tensorflow实现声音分类》。基于这个知识基础之上,我们训练一个声纹识别模型,通过这个模型我们可以识别说话的人是谁,可以应用在一些需要音频验证的项目。

2020-05-04 13:18:09 1346 4

原创 基于PaddlePaddle实现声音分类
原力计划

本章我们来介绍如何使用PaddlePaddle训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了。

2020-04-27 23:00:17 426

原创 基于Tensorflow实现声音分类
原力计划

环境准备主要介绍libsora,PyAudio,pydub的安装,其他的依赖包根据需要自行安装。安装libsora最简单的方式就是使用pip命令安装,如下:pip install pytest-runnerpip install librosa如果pip命令安装不成功,那就使用源码安装,下载源码:https://github.com/librosa/librosa/releases/...

2020-04-23 22:58:27 1523 7

原创 Android使用AIUI快速搭建智能助手

前言目前大部分的手机都有语音助手,例如小米手机的小爱同学,VIVO的小V等等,通过智能助手我们可以快速询一些资讯或者操作手机,例如询问天气,发送微信给你的好友等等。这篇文章就来介绍如何使用AIUI快速搭建类似这样的智能助手。AIUIAIUI是科大讯飞2015年推出的自然语言理解为核心的全链路人机交互语音解决方案,可快速让你的应用和设备能听会说,能理解会思考。AIUI语义信息透明开放,可云端接...

2020-04-18 15:14:51 985 1

原创 Android使用webrtc实现检测用户是否在说话

我们在Android应用做语音识别的时候,一般是用户唤醒之后开始说话。当用户超过一定的时候没有说话,就停止录音,并把录音发送到语音识别服务器,获取语音识别结果。本教程就是解决如何检测用户是否停止说话,我们使用的是WebRTC架构的源代码中的vad代码实现的。

2020-04-16 11:14:01 639

原创 百度机器学习训练营笔记——问题回答

文章目录说明问题1:网络结构说明这个是使用PaddlePaddle训练cifar10数据集的一个例子问题1:网络结构问题:计算每层网络结构和输入输出尺寸和参数个数。不加BN?更深?每层的尺寸变化?更多结构?def convolutional_neural_network(img): print('输入层的shape:', img.shape) conv_pool_1 = ...

2019-11-17 12:05:04 340

使用TensorFlow Lite在Android手机上实现图像分类非量化

使用TensorFlow Lite在Android手机上实现图像分类非量化的demo

2018-09-20

使用TensorFlow Lite在Android手机上实现图像分类的demo

使用TensorFlow Lite在Android手机上实现图像分类的demo

2018-09-19

在Android设备上使用NCNN图像分类的demo

在Android设备上使用NCNN图像分类的demo,是一个Android项目

2018-09-05

在Android设备上使用PaddleMobile图像分类的demo

在Android设备上使用PaddleMobile图像分类的demo源码。

2018-08-22

在Android设备上使用MACE实现图像分类

在Android设备上使用MACE实现图像分类的一个小的demo。

2018-08-22

Googlenet训练花卉数据集的预测模型

这个是使用Googlenet训练花卉数据集的预测模型,可以在paddle-mobile上使用。

2018-07-17

PaddleMobile的Android编译库

libpaddle-mobile.os是PaddleMobile的Android编译好的os库

2018-07-17

redis实现session一致性的Lib

redis实现session一致性的Lib,里面包含三个jar和一个说明文件。

2018-06-22

TensorFlow的一些依赖库

这个使用TensorFlow的一些常用的库,如手势数据集,一些工具类

2018-05-24

吴恩达课程第二课的依赖库文件和数据集

这个是吴恩达课程第二课的依赖库文件和数据集,一共三周。

2018-04-15

Python2爬虫程序工具

这个程序包括调度器,URL管理器,网页下载器,网页解析器,数据存取器。

2018-04-10

深度神经网络的工具类和数据集dnn_utils_v2_lr_utils_dataset

这个是深度神经网络的工具类和数据集,里面包括:dnn_utils_v2_lr_utils_dataset

2018-03-31

颜色分布数据和其加载数据函数

这个是一个红色和蓝色的颜色分布数据,还有加载这个数据的函数

2018-03-31

猫的数据集和加载数据工具

这个是猫的数据集和其加载数据的工具函数,这个可用于深度训练。

2018-03-30

Android网络框架OKhttp3学习demo

OKhttp3是一个非常强大的Android网络框架,它是由Square公司开发并开源的

2017-08-16

Android网络框架OKhttp3学习笔记demo

OKhttp3是一个非常强大的Android网络框架,它是由Square公司开发并开源的

2017-08-15

Android网络框架OKhttp3的demo

OKhttp3是一个非常强大的Android网络框架,它是由Square公司开发并开源的,很大Android开发者都会使用到,所以我也要来学学。

2017-08-14

Android使用Service播放音乐

Android使用Service播放音乐

2017-08-11

Android读取短信和联系人

Android读取短信和联系人

2017-08-11

Android使用Fragment底部导航栏

Android使用Fragment底部导航栏

2017-08-11

Android的各种通知Notification、Dialog、Toast、Snackbar

Android的各种通知Notification、Dialog、Toast、Snackbar

2017-08-11

自定义ImageView

自定义ImageView方法

2017-08-11

Android使用SharedPreferences保存账号密码

Android使用SharedPreferences保存账号密码

2017-08-11

Android的使用SQLite

使用SQLiteOpenHelper类操作数据库是官方提供的一个官方帮助类

2017-08-11

LitePal小demo

LitePal是一款非常好用的数据库开源框架,它采用了对象关系映射(ORM)的模式,使用这个框架从创建数据库到操作数据库都变成极其简单

2017-08-11

Android的View动画.rar

隐藏、旋转、缩放、平移动画

2017-08-11

空空如也

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

TA关注的人 TA的粉丝

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