以Flask为基础的虾皮Shopee“曲线滑块验证码”识别系统部署

以Flask为基础的虾皮Shopee“曲线滑块验证码”识别系统部署

  • 一、验证码类型
  • 二、简介
  • 三、Flask应用

一、验证码类型

验证码类型:此类验证码存在两个难点,一是有右侧有两个凹槽,二是滑块的运动轨迹不是直线的,而是沿着曲线走的,我们对其进行解决并采用Flask进行部署。
在这里插入图片描述
在这里插入图片描述

二、简介

Flask是一个非常小的PythonWeb框架,被称为微型框架,因此使用起来也相对比较轻便,我们可以使用Flask很快开发出一个后端接口,以供前端使用。

这里我们以验证码识别为例:

  1. 使用端(需要进行验证码识别的地方)对Flask后端发送base64格式的文件
  2. Flask后端接收到这一请求,将拿到的base64文件进行转化得到图像文件并进行识别等操作,得到坐标等验证码信息
  3. Flask后端将处理好的验证码信息返回给前端。

整个流程还是很简单的,但是笔者发现网络上公开的Flask教程写的不够简单,因此写一篇记录一下。

三、Flask应用

没有装的直接pip install flask 即可。
以下是代码样例:

import io
from flask import Flask, request, jsonify
from ultralytics import YOLOv10
import base64
import numpy as np
from PIL import Imageapp = Flask(__name__)# 加载模型
groove_model = YOLOv10("runs/detect/xiapiVerification2/weights/best.pt")
slide_model = YOLOv10("XXXXX")# 用于存储rightmost接口的目标信息
groove_object = Nonedef base64_to_image(base64_str):# Decode the base64 string to get image dataimage_data = base64.b64decode(base64_str)# Convert the image data to a PIL imageimage = Image.open(io.BytesIO(image_data))return image@app.route('/predictSlide', methods=['POST'])
def predictSlide():global groove_object  # 获取保存的目标data = request.jsonimage_base64 = data['img_base64']image = base64_to_image(image_base64)results = slide_model.predict(image)return XXXX# 添加新接口:返回最右和中间的目标并保存
@app.route('/rightmost', methods=['POST'])
def rightmost():global rightmost_target, mid_target  # 用于存储目标信息data = request.jsonimage_base64 = data['img_base64']image = base64_to_image(image_base64)# 使用模型进行预测results = model.predict(image)return jsonify({"rightmost_target": rightmost_target, "mid_target": mid_target})if __name__ == '__main__':app.run(debug=False)

其中,核心部分为

@app.route('/rightmost', methods=['POST'])
def rightmost():global rightmost_target, mid_target  # 用于存储目标信息data = request.jsonimage_base64 = data['img_base64']image = base64_to_image(image_base64)if __name__ == '__main__':app.run(debug=False)

通过“base64_to_image”操作后,即可得到image图像文件,对该文件进行处理即可

运行成功后,Pycharm会显示如下几行英文,“http://127.0.0.1:5000”为本地的访问地址。如果想远程访问接口,将其部署至服务器即可。

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

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

相关文章

STM32通过HAL库编码方式,在烧写一次程序后,单片机在仿真器上识别不到

在将项目从裸机移植到rtt过程中,总体调试跑不通ADC,进行了单独调试,新程序烧写进单片机后,仿真器再也识别不到单片机。一遍遍检查后发现HAL库没有配置完全。 SYS需要设置成 Serial Wire,忘记设置就成了No Debug,写这么…

基于nodejs+vue的水产品销售管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

如何在 macOS(MacBook Pro、Air 和 iMac)上恢复未保存的 Word 文档

Microsoft Word 在许多用户中很受欢迎,并且有多种用途。无论是为学校写论文、在办公室写报告还是其他许多事情。但是不保存文档并丢失数据可能是您可能面临的最可怕的噩梦。但是,也有几种方法可以在 macOS 上恢复未保存的 Word 文档。 用户在 Windows P…

wpf中如何访问控件和生成使用事件?

实际上对于初次使用wpf的同学来说,尤其是有winform编程经验的童鞋来说,最需要解决的就是快速掌握访问控件的方法以及生成和使用事件。这样才能让页面具有最起码的交互性。下面我们来分别讲述。 文章原出处:https://blog.csdn.net/haigear/ar…

网络原理(4)——网络层(IP)、数据链路层

1. IP 协议 基本概念: 主机:配有 IP 地址,但是不进行路由控制的设备 路由器:即配有 IP 地址,又能进行路由控制 节点:主机和路由器的统称 IP 协议报头格式 1) 4 位版本:实际上只有两个取值&…

C语言题目之单身狗2

文章目录 一、题目二、思路三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、思路 第一步 在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况,而本道题是出现两个单身狗的情况。根据一个数…

9.C++程序中的选择语句

选择语句一共分为两种:条件语句和开关语句 其中条件语句叫if语句,常见的形式为:if ... else ... ; 再复杂一些为if... else if ... else ... ; 开关语句又叫switch语句,类型于开关的使用形式常见的有 switch (var) case : ... b…

tauri中加载本地文件图片或者下载网络文件图片后存储到本地,然后通过前端页面展示

有一个需求是需要将本地上传的文件或者网络下载的文件存储到本地,并展示在前端页面上的。其实如果只是加载本地文件,然后展示还是挺简单的,可以看我的文章:tauri程序加载本地图片或者文件在前端页面展示-CSDN博客 要想实现上述需…

JS 历史简介

目录 1. JS 历史简介 2. JS 技术特征 1. JS 历史简介 举例:在提交用户的注册信息的时候,为避免注册出现错误后重新填写信息,可以在写完一栏信息后进行校验,并提示是否出现错误,这样会大大提高用户提交的成功率&…

gradle镜像配置

当我们在Android Studio中新建项目或者打开已有项目时,会下载gradle文件,当使用官方的下载源时很慢,经常会下载失败,国内我们可以使用腾讯或者阿里的镜像,一般下载速度很快。 一、gradle下载地址 官网地址&#xff1…

C语言指针系列2——加深理解

大家,今天讲的知识点是一块儿一块儿的,所以大家要好好学习喔~ 话不多说,开始正题 关键字:const (三种用法) 1. int* const p; 2. int const* p; 3. const int* const p; 首先我们要了解一下const&#xff…

【计算机组成原理】实验一:运算器输入锁存器数据写实验

目录 实验要求 实验目的 主要集成电路芯片及其逻辑功能 实验原理 实验内容及步骤 实验内容 思考题 实验要求 利用CP226实验箱上的K16~K23二进制拨动开关作为DBUS数据输入端,其它开关作为控制信号的输入端,将通过K16~K23设定…

【学习笔记】SSL/TLS证书安全机制之证书透明

1、概念 CT - Certificate Transparency,证书透明 2、Trying to Solve 如果意外的 CA 为我们的域名颁发证书,我们是不可见,这就是证书透明(CT)要解决的问题 3、How CT Works 任何CA机构颁发的所有证书的公共登记处&…

西门子1200PLC模拟量指令读出来的值好像不太对劲的样子

问题:模拟量指令读出来的值好像不太对劲的样子 各位高手看看,是不是哪里错了,传感器4-20ma的规格,我取值0-27648,我要换算成N,后面范围是0-200,但是值为什么都是小数点啊,而且和实际的压力怎么看…

使用宝塔部署项目在win上

项目部署 注意: 前后端部署项目,需要两个域名(二级域名,就是主域名结尾的域名,需要在主域名下添加就可以了),前端一个,后端一个 思路:访问域名就会浏览器会加载前端的代…

VMware虚拟机Centos操作系统——配置docker,运行本地打包的镜像,进入conda环境(vmware,docker新手小白)

1.docker-centos运行sudo yum install -y yum-utils报错 遇到问题 解决: 进入/etc/yum.repos.d目录下找到 CentOS-Base.repo,执行下面两个命令: cp CentOS-Base.repo CentOS-Base.repo.backupvi CentOS-Base.repo 进入后改成&#x…

恶意Bot流量识别分析实践

1、摘要 随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此&am…

11. Map和Set

一、二叉搜索树 1. 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根…

基于JAVA+SpringBoot+Vue的健身房管理系统1

基于JAVASpringBootVue的健身房管理系统1 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽…

阿里云kafka消息写入topic失败

1. 问题现象描述 20240918,14:22,测试反馈说kafka有问题,生产者写入消息的时候报错,并发了一张日志截图,主要报错如下: to topic xxxx: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for x…