pytorch图片验证码识别问题代码

时间: 2023-09-30 13:10:45 浏览: 15
以下是一个基于PyTorch的图片验证码识别问题代码的示例: ```python import torch import torchvision.transforms as transforms from torch.utils.data import DataLoader from torchvision.datasets import ImageFolder import os # 定义模型结构 class CaptchaModel(torch.nn.Module): def __init__(self): super(CaptchaModel, self).__init__() self.conv1 = torch.nn.Conv2d(3, 32, kernel_size=3, stride=1, padding=1) self.pool1 = torch.nn.MaxPool2d(kernel_size=2, stride=2, padding=0) self.conv2 = torch.nn.Conv2d(32, 64, kernel_size=3, stride=1, padding=1) self.pool2 = torch.nn.MaxPool2d(kernel_size=2, stride=2, padding=0) self.conv3 = torch.nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1) self.pool3 = torch.nn.MaxPool2d(kernel_size=2, stride=2, padding=0) self.fc1 = torch.nn.Linear(128*4*13, 1024) self.fc2 = torch.nn.Linear(1024, 4*10) def forward(self, x): x = self.conv1(x) x = torch.nn.functional.relu(x) x = self.pool1(x) x = self.conv2(x) x = torch.nn.functional.relu(x) x = self.pool2(x) x = self.conv3(x) x = torch.nn.functional.relu(x) x = self.pool3(x) x = x.view(-1, 128*4*13) x = self.fc1(x) x = torch.nn.functional.relu(x) x = self.fc2(x) return x # 加载模型 model = CaptchaModel() model.load_state_dict(torch.load('captcha_model.pth')) # 定义验证码字符集 charset = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 定义预处理函数 preprocess = transforms.Compose([ transforms.Resize((50, 200)), transforms.ToTensor(), ]) # 定义测试函数 def test_captcha(image_path): # 加载图像 image = Image.open(image_path).convert('RGB') # 预处理图像 image = preprocess(image) # 扩展维度 image = image.unsqueeze(0) # 预测结果 output = model(image) # 获取预测结果的索引 output = torch.argmax(output, dim=1) # 将索引转换成字符 captcha = ''.join([charset[i] for i in output]) return captcha # 定义测试函数 def test(dataset_path): # 加载数据集 dataset = ImageFolder(dataset_path, transform=preprocess) # 创建数据加载器 dataloader = DataLoader(dataset, batch_size=1) # 初始化正确率 accuracy = 0 # 遍历数据集 for images, labels in dataloader: # 获取图像路径 image_path = dataset.samples[labels[0]][0] # 获取真实验证码 captcha = os.path.splitext(os.path.basename(image_path))[0] # 预测验证码 predict_captcha = test_captcha(image_path) # 判断是否正确 if captcha == predict_captcha: accuracy += 1 else: print(f'Error: {captcha} -> {predict_captcha}') # 输出正确率 print(f'Accuracy: {accuracy}/{len(dataset)} = {accuracy/len(dataset)*100:.2f}%') # 测试 test('captcha_dataset') ``` 需要注意的是,在运行代码之前,需要准备好验证码数据集,其中每个子文件夹包含了相同字符数量的验证码图像。例如,如果字符集中包含数字和大小写字母,那么数据集的目录结构可以如下所示: ``` captcha_dataset ├── 0 │ ├── 0001.png │ ├── 0002.png │ ├── ... ├── 1 │ ├── 0001.png │ ├── 0002.png │ ├── ... ├── ... ├── z │ ├── 0001.png │ ├── 0002.png │ ├── ... └── z ├── 0001.png ├── 0002.png ├── ... ``` 另外,这只是一个简单的验证码识别问题代码,针对不同的验证码类型,可能需要进行一些调整,比如修改模型结构、调整字符集等。

相关推荐

### 回答1: 验证码识别是指通过计算机程序对验证码进行自动识别的过程。而PyTorch,则是一种基于Torch的开源机器学习框架,具有强大的计算能力和丰富的神经网络模型。 对于验证码识别任务,使用PyTorch是一种有效的方法。首先,我们可以使用PyTorch构建一个卷积神经网络(CNN)模型。CNN模型在图像识别任务中表现出色,能够提取图像特征并进行分类。我们可以使用PyTorch提供的各种层和函数来构建模型的结构,如卷积层、池化层、全连接层等。 在模型构建完成后,我们需要准备训练数据集。可以通过收集一些包含验证码样本和对应标签(即验证码正确的值)的数据集。接着,使用PyTorch提供的数据加载器和图像处理函数,将数据集加载到模型中进行训练。在训练过程中,PyTorch提供了自动求导功能,可以方便地计算损失函数,并进行梯度更新。 为了提高验证码识别的准确率,可以采用一些常用的优化技巧。例如,使用学习率调度器、正则化技术、数据增强等方法来防止过拟合问题,并加快训练过程。此外,还可以使用预训练的模型权重进行初始化,如在ImageNet数据集上预训练好的模型权重等。 在训练完成后,我们可以使用训练好的模型对新的验证码进行预测。通过将验证码图像输入到模型中,PyTorch会输出识别的结果。根据模型输出的结果,我们可以判断验证码是否被正确识别。 总结来说,验证码识别是一个复杂的问题,但通过使用PyTorch这样的强大工具,我们可以轻松地构建、训练和应用深度学习模型,提高验证码识别的准确率。 ### 回答2: 验证码pytorch识别是一种利用深度学习框架PyTorch实现的验证码识别技术。验证码是一种防止计算机自动化操作的措施,常用于网站登录、注册等环节。由于验证码具有一定的难度,传统的图像处理方法往往效果不佳。 PyTorch作为一种开源的深度学习框架,具有强大的计算能力和丰富的工具库,非常适合用于验证码识别。其基于Python语言开发,易于学习和使用。 验证码pytorch识别的主要步骤如下: 1. 数据收集和预处理:收集大量的验证码图片并进行预处理,包括图片大小调整、灰度化、二值化等操作,以便输入神经网络进行训练。 2. 神经网络设计:使用PyTorch构建一个深度学习模型,可以选择卷积神经网络(CNN)等结构。网络的输入为预处理后的验证码图片,输出为验证码的识别结果。 3. 数据集划分和训练:将收集的验证码图片划分为训练集和验证集,使用训练集对神经网络进行训练,并根据验证集的表现进行调参,以提高模型的准确率。 4. 模型评估和优化:使用测试集对训练好的模型进行评估,计算识别准确率和错误率。根据评估结果对模型进行优化,可以尝试调整网络结构、增加数据量、调整超参数等方式。 5. 验证码识别:经过训练和优化的模型可以应用于实际验证码的识别任务,输入验证码图片,通过模型的预测输出识别结果。 总之,验证码pytorch识别利用PyTorch这一强大的深度学习框架,通过数据收集、神经网络设计、训练评估等步骤,可以实现对验证码的识别,提高验证码识别的准确率和效率。 ### 回答3: 验证码识别是指通过计算机视觉技术,利用pytorch深度学习框架对验证码进行自动化识别的过程。 验证码是为了防止机器人或恶意程序的攻击而设计的一种安全机制。在互联网应用中,常用的验证码形式包括文字、数字、图形、滑块等,其目的是要求用户识别并输入,以证明其为人类而非机器。 pytorch作为一种开源、基于Python的深度学习框架,具备了处理图像和模式识别的能力。通过使用pytorch框架,可以利用深度学习的算法和神经网络,来对验证码进行自动识别。 验证码识别的一般步骤包括数据预处理、模型训练和验证码识别三个主要过程。 首先,对验证码进行数据预处理是非常重要的步骤。预处理包括图片的灰度化、二值化、滤波以及去噪等,以提高识别准确度和模型训练速度。 其次,建立合适的神经网络模型,并使用pytorch进行模型训练。训练数据集通常需要手动标注,包括正确的验证码标识和对应的标签。在模型训练的过程中,通过反向传播算法更新模型参数,提高模型对验证码的识别能力。 最后,利用训练好的模型对新的验证码进行识别。通过输入验证码图片,并运行训练好的模型,即可获得验证码的识别结果。 因为验证码种类繁多,存在一定的识别难度。对于复杂的验证码,可能需要进一步改进模型或者采用其他的算法进行增强识别能力。 总之,验证码识别是应用pytorch深度学习框架来实现的一项技术,通过数据预处理、模型训练和识别等步骤,可以有效地对验证码进行准确和自动化的识别。
滑块验证码是一种常见的验证码形式,旨在验证用户是否为人类。PyTorch是一个开源的深度学习框架,可以用它来实现滑块验证码识别系统。 滑块验证码通常由两个部分组成:滑块图片和背景图片。滑块图片上有一个滑块,用户需要通过拖动滑块将其放到正确的位置,以完成验证。 要实现滑块验证码的识别,可以按照以下步骤进行: 1. 数据准备:收集大量的滑块验证码图片,并将其划分为训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。 2. 特征提取:使用PyTorch加载滑块验证码图片,并对其进行预处理。可以使用卷积神经网络(CNN)来提取图片的特征。 3. 训练模型:使用PyTorch构建一个深度学习模型,可以选择使用已经预训练好的模型作为基础模型,如ResNet、VGG等。然后,将提取的特征输入到模型中,通过反向传播来优化模型的参数。 4. 模型评估:使用测试集对训练好的模型进行评估,计算准确率、精度等指标,判断模型的性能。 5. 模型应用:将训练好的模型部署到实际的滑块验证码系统中,用户在登录或注册时需要完成验证码验证。用户拖动滑块,系统会根据用户的操作判断是否为真实用户。 通过使用PyTorch深度学习框架,我们可以方便地实现滑块验证码的识别。它提供了丰富的工具和算法,可以帮助我们构建高性能的滑块验证码识别系统。
### 回答1: 我不太了解pytorch车牌识别代码,但我可以提供一些关于它的基本信息。 PyTorch是一种被广泛用于图像分类、语音识别和自然语言处理的深度学习框架。它可以用来构建、训练和测试复杂的模型,其中包括车牌识别。 ### 回答2: PyTorch是一种广泛应用于机器学习和深度学习的开源框架。要实现车牌识别的代码,可以按照以下步骤进行: 1. 数据集准备:收集足够数量的车牌图片,并对车牌进行标注。确保数据集包含不同的车牌样式、大小、颜色等。将数据集分为训练集和测试集。 2. 数据预处理:使用PyTorch的数据预处理函数对图像进行处理,例如缩放、裁剪、归一化等。将数据转换为Tensor类型,便于神经网络模型的输入。 3. 构建模型:使用PyTorch搭建车牌识别的神经网络模型,可以选择常见的卷积神经网络结构,例如ResNet、VGG等。确保模型具备足够的深度和参数量。 4. 定义损失函数和优化器:选择适当的损失函数,例如交叉熵损失函数,用于评估模型的预测结果与真实标签的差距。选择合适的优化器,例如Adam或SGD,用于更新模型的参数。 5. 训练模型:使用训练集对模型进行训练。在每个训练迭代中,将批量的车牌图像输入模型,计算损失函数,并进行反向传播更新模型参数,以提高模型的准确率。 6. 模型评估:使用测试集对训练好的模型进行评估。输入测试图像,计算模型的预测结果,并与真实标签进行比较,计算准确率、召回率等指标,评估模型的性能。 7. 模型优化:根据评估结果,对模型进行调整和优化,例如增加网络深度、改变超参数等。可以多次进行模型训练和评估,以获得更好的识别精度。 8. 预测新样本:使用训练好的模型对新的车牌图像进行预测。将图像输入模型,得到预测结果。可以将预测结果进行后处理,例如字符分割、字符识别等,以获取正确的车牌号。 以上是基于PyTorch实现车牌识别的简要步骤和流程,具体的代码实现需要根据具体需求进行细化和完善。 ### 回答3: PyTorch是一个基于Python的开源机器学习库,它提供了广泛的工具和函数来构建神经网络模型。在车牌识别方面,PyTorch可以用于训练和优化深度学习模型,以实现准确的车牌识别。 首先,需要准备一个包含大量车牌图像和对应标签(即车牌号码)的数据集。这些图像可以包括不同尺寸和角度的车牌,以及不同光照和背景条件下的车牌图像。 接下来,我们可以使用PyTorch构建一个深度学习模型来进行车牌识别。模型的基本结构可以是一个卷积神经网络(CNN),用于提取图像中的特征,并将其输入到全连接层进行分类。 在PyTorch中,我们可以使用torchvision库中的预训练模型作为CNN的主干网络,如VGG、ResNet或MobileNet等。这些预训练模型已在大规模数据集上进行了训练,可以提取图像的高级特征。 然后,我们需要将数据集划分为训练集和验证集。通过将一部分数据用于模型的训练,另一部分数据用于评估模型的性能,可以帮助我们了解模型是否过拟合或欠拟合,并进行模型参数的优化。 在训练过程中,我们可以使用PyTorch提供的优化器(如SGD、Adam等)来更新模型的参数,并使用损失函数(如交叉熵损失)来度量模型的性能,以便进行反向传播和参数更新。 最后,我们可以使用训练好的模型对新的车牌图像进行预测。将待预测的车牌图像输入到模型中,模型将输出分类的结果,即识别出的车牌号码。 总结来说,使用PyTorch进行车牌识别需要准备数据集、构建深度学习模型、划分训练集和验证集、训练并优化模型参数,最后使用模型进行预测。通过这个过程,我们可以实现准确的车牌识别,并应用于实际场景中。
情绪识别是一项重要的人工智能任务,可以帮助我们理解和应对人类的情感状态。PyTorch是一个流行的开源深度学习框架,它提供了丰富的工具和库,用于构建情绪识别模型。 情绪识别的基本步骤包括数据预处理、特征提取和模型训练。首先,我们需要准备一个标注了情绪类别的数据集,这个数据集可以包括文本、语音或图像等不同类型的数据。然后,我们可以使用PyTorch的数据处理模块来加载和处理数据集。 在特征提取阶段,我们可以使用一些经典的自然语言处理技术,如词袋模型、TF-IDF和词向量等,将文本数据转换为机器可以理解的向量表示。PyTorch提供了一些强大的文本处理工具,如torchtext和transformers库,可以帮助我们处理和转换文本数据。 接下来,我们可以选择合适的深度学习模型进行情绪识别的训练。PyTorch提供了许多不同类型的神经网络模型,如循环神经网络(RNN)、卷积神经网络(CNN)和注意力机制(Attention)等。我们可以根据具体任务的需求选择合适的模型,并使用PyTorch的神经网络模块来构建和训练模型。 在训练过程中,我们可以使用PyTorch的优化器和损失函数来最小化模型的训练误差。PyTorch还提供了一些方便的工具,如学习率调整器、模型保存和加载等功能,可以帮助我们更好地管理和优化训练过程。 最后,我们可以使用训练好的模型对新的数据进行情绪识别。PyTorch提供了简单易用的接口,使得模型的预测过程变得简单和高效。 总之,PyTorch是一个功能强大的开源框架,为情绪识别任务提供了丰富的工具和库。通过合理应用PyTorch的功能,我们可以构建高效准确的情绪识别模型,帮助我们更好地理解和应对人类的情感状态。
### 回答1: 表情识别代码是在PyTorch框架下实现的一种图像处理技术。通过使用UI(用户界面),我们可以使这个代码更加友好和易于使用。 PyTorch是一种流行的深度学习框架,它提供了丰富的工具和函数来构建和训练神经网络模型。在表情识别中,我们可以使用PyTorch来构建一个卷积神经网络(CNN)模型,以识别输入图片中的表情。 UI是指用户界面,它是让用户与计算机程序进行交互的一种方式。通过使用UI,我们可以将表情识别代码制作成一个交互式的应用程序,以便用户可以直观地使用这个功能。 在UI中,我们可以添加一个文件选择按钮,让用户选择要识别的表情图片。然后,我们可以添加一个“识别”按钮,当用户点击它时,代码会调用PyTorch模型来对选择的图片进行表情识别。识别结果可以通过界面上的文本框或图像显示出来。 此外,我们还可以添加一些其他的功能,如显示当前选择的图片、预处理图片、调整模型参数等。这些功能可以使用户更方便地使用和了解表情识别代码。 总之,通过将表情识别代码与PyTorch和UI结合起来,我们可以实现一个功能强大、易于使用的表情识别应用程序。用户可以通过界面直观地选择和识别表情,这大大提高了代码的可用性和用户体验。 ### 回答2: 表情识别代码是指使用pytorch框架开发的一种图像处理代码,用于识别人脸表情。这种代码通常使用了深度学习的方法,通过对输入图像进行分类来识别出人脸的表情。 在pytorch框架中,可以使用torchvision库提供的一些预训练的模型来进行表情识别。常见的预训练模型有VGGNet、ResNet等,它们能够提取图像的特征信息。我们可以利用这些预训练模型,将图像输入网络中,经过前向传播得到输出结果。 代码中首先需要导入相关的库和模块,例如torch、torchvision以及相关的数据集等。然后,可以定义一个网络模型,可以选择使用预训练模型或自己设计模型。接着,需要设置模型的超参数,如学习率、优化器等。然后定义训练和测试的过程,包括数据加载、前向传播、计算损失、反向传播以及更新参数等。最后,可以对模型进行训练和测试,分别输出模型在训练集和测试集上的准确率。 在实际运行时,可以使用pytorch的图形用户界面(UI)库,如PyQt或Tkinter等,来设计一个用户友好的界面。通过该界面,用户可以选择图片或视频作为输入,然后点击按钮进行表情识别,最后显示结果在界面上。这样,用户就可以直观地看到图像的表情识别结果。 总之,表情识别代码pytorch ui是指使用pytorch框架开发的一个具有图形界面的表情识别代码,能够通过图像输入进行表情的分类识别,并将结果可视化展示给用户。 ### 回答3: 表情识别是一种利用计算机视觉技术和机器学习算法来识别人脸表情的应用。PyTorch是一个基于Python的机器学习框架,提供了丰富的工具和库来构建和训练深度学习模型。 对于表情识别代码的编写,我们可以使用PyTorch来实现。首先,需要收集带有不同表情的人脸图像数据集。这些图像应包含各种表情,如开心、悲伤、惊讶等。然后,可以使用PyTorch提供的图像处理库来对这些图像进行预处理,例如裁剪、缩放和归一化。 接下来,我们可以使用PyTorch来构建卷积神经网络(CNN)模型。CNN是一种用于图像识别的深度学习模型,在图像分类任务中表现出色。我们可以使用PyTorch提供的函数和类来构建网络结构,例如卷积层、池化层和全连接层。同时,我们还可以使用PyTorch的自动求导功能来计算和优化模型参数。 在模型构建完成后,我们需要将数据集分为训练集和测试集。训练集用于训练模型参数,测试集用于评估模型性能。可以使用PyTorch提供的数据加载器和数据拆分函数来实现这一过程。 然后,我们可以使用PyTorch的优化器和损失函数来进行模型训练和优化。通过迭代训练和调整模型参数,我们可以使模型逐渐提高表情识别的准确度。 最后,我们可以使用PyTorch搭建一个简单的用户界面(UI)来进行表情识别。可以使用PyTorch的图像处理库来处理用户提供的图像输入,并应用训练好的模型来识别表情。通过将识别结果显示在UI上,用户即可得到相应的表情识别结果。 综上所述,通过PyTorch构建表情识别代码和用户界面,我们可以实现对人脸表情进行自动识别和分类的功能。
对于验证码建模,PyTorch是一个非常适合的工具。下面是一个基本的验证码建模的步骤: 1. 数据收集和准备:收集验证码样本并进行标记。可以使用各种方法来生成不同类型的验证码,如数字、字母、混合字符等。 2. 数据预处理:将收集到的验证码图像转换为模型可以处理的张量形式。可以使用PyTorch的torchvision库中的transforms来进行常见的图像预处理操作,如缩放、裁剪、归一化等。 3. 模型设计:使用PyTorch构建一个适合验证码识别的模型。可以使用卷积神经网络(CNN)作为基础模型,结合池化层、全连接层和激活函数等。 4. 模型训练:将准备好的数据集划分为训练集和验证集,使用PyTorch提供的优化器和损失函数进行模型训练。可以使用交叉熵损失函数和随机梯度下降(SGD)优化器。 5. 模型评估:使用测试集对训练好的模型进行评估,计算准确率、精确率、召回率等指标来评估模型的性能。 6. 模型应用:使用训练好的模型对新的验证码进行预测。可以将预测结果与真实标签进行比较,评估模型在实际应用中的表现。 以上是一个简单的验证码建模的流程,你可以根据具体需求进行调整和优化。在实际操作中,你可能还需要处理数据不平衡问题、进行数据增强、调整模型架构等。希望对你有所帮助!如果有任何问题,请随时提问。

最新推荐

pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)

主要介绍了pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

pytorch 利用lstm做mnist手写数字识别分类的实例

今天小编就为大家分享一篇pytorch 利用lstm做mnist手写数字识别分类的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Pytorch实现的手写数字mnist识别功能完整示例

主要介绍了Pytorch实现的手写数字mnist识别功能,结合完整实例形式分析了Pytorch模块手写字识别具体步骤与相关实现技巧,需要的朋友可以参考下

pytorch三层全连接层实现手写字母识别方式

今天小编就为大家分享一篇pytorch三层全连接层实现手写字母识别方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

关于pytorch处理类别不平衡的问题

所以采用欠采样来缓解类别不平衡的问题。 下面的代码展示了如何使用WeightedRandomSampler来完成抽样。 numDataPoints = 1000 data_dim = 5 bs = 100 # Create dummy data with class imbalance 9 to 1 data = ...

市建设规划局gis基础地理信息系统可行性研究报告.doc

市建设规划局gis基础地理信息系统可行性研究报告.doc

"REGISTOR:SSD内部非结构化数据处理平台"

REGISTOR:SSD存储裴舒怡,杨静,杨青,罗德岛大学,深圳市大普微电子有限公司。公司本文介绍了一个用于在存储器内部进行规则表达的平台REGISTOR。Registor的主要思想是在存储大型数据集的存储中加速正则表达式(regex)搜索,消除I/O瓶颈问题。在闪存SSD内部设计并增强了一个用于regex搜索的特殊硬件引擎,该引擎在从NAND闪存到主机的数据传输期间动态处理数据为了使regex搜索的速度与现代SSD的内部总线速度相匹配,在Registor硬件中设计了一种深度流水线结构,该结构由文件语义提取器、匹配候选查找器、regex匹配单元(REMU)和结果组织器组成。此外,流水线的每个阶段使得可能使用最大等位性。为了使Registor易于被高级应用程序使用,我们在Linux中开发了一组API和库,允许Registor通过有效地将单独的数据块重组为文件来处理SSD中的文件Registor的工作原

要将Preference控件设置为不可用并变灰java完整代码

以下是将Preference控件设置为不可用并变灰的Java完整代码示例: ```java Preference preference = findPreference("preference_key"); // 获取Preference对象 preference.setEnabled(false); // 设置为不可用 preference.setSelectable(false); // 设置为不可选 preference.setSummary("已禁用"); // 设置摘要信息,提示用户该选项已被禁用 preference.setIcon(R.drawable.disabled_ico

基于改进蚁群算法的离散制造车间物料配送路径优化.pptx

基于改进蚁群算法的离散制造车间物料配送路径优化.pptx

海量3D模型的自适应传输

为了获得的目的图卢兹大学博士学位发布人:图卢兹国立理工学院(图卢兹INP)学科或专业:计算机与电信提交人和支持人:M. 托马斯·福吉奥尼2019年11月29日星期五标题:海量3D模型的自适应传输博士学校:图卢兹数学、计算机科学、电信(MITT)研究单位:图卢兹计算机科学研究所(IRIT)论文主任:M. 文森特·查维拉特M.阿克塞尔·卡里尔报告员:M. GWendal Simon,大西洋IMTSIDONIE CHRISTOPHE女士,国家地理研究所评审团成员:M. MAARTEN WIJNANTS,哈塞尔大学,校长M. AXEL CARLIER,图卢兹INP,成员M. GILLES GESQUIERE,里昂第二大学,成员Géraldine Morin女士,图卢兹INP,成员M. VINCENT CHARVILLAT,图卢兹INP,成员M. Wei Tsang Ooi,新加坡国立大学,研究员基于HTTP的动态自适应3D流媒体2019年11月29日星期五,图卢兹INP授予图卢兹大学博士学位,由ThomasForgione发表并答辩Gilles Gesquière�