cnn_captcha

GitHub
2.9k 787 中等 1 次阅读 3天前Apache-2.0开发框架
AI 解读 由 AI 自动生成,仅供参考

cnn_captcha 是一个基于 TensorFlow 实现的开源工具,专门用于识别字符型图片验证码。它通过卷积神经网络(CNN)实现端到端的验证码识别,简化了传统图像处理与机器学习方法中复杂的预处理和分类步骤,显著提升了识别效率和准确性。

该工具封装了校验、训练、验证、识别和 API 模块,为用户提供了完整的解决方案,大幅降低了开发和调试验证码识别系统的难度。无论你是需要快速完成验证码识别任务的开发者,还是希望研究 CNN 在图像识别中应用的研究人员,都可以从中受益。

其独特的技术亮点在于使用通用的 CNN 模型结构,能够适应多种字符型验证码,并支持多模型部署和性能优化。此外,项目还提供了详细的文档和训练数据统计,方便用户进行调优和测试。如果你正在寻找一个高效、易用且可扩展的验证码识别方案,cnn_captcha 将是一个不错的选择。

使用场景

某电商平台的爬虫开发团队正在尝试自动化采集商品信息,但在抓取过程中遇到了网站的字符型验证码,导致无法顺利登录和访问目标页面。团队需要一种高效、稳定的验证码识别方案,以提升数据采集效率。

没有 cnn_captcha 时

  • 验证码识别依赖手动图像处理和传统机器学习算法,开发周期长且效果不稳定。
  • 图像预处理步骤复杂,如灰度化、二值化、去噪等,需耗费大量时间调试。
  • 不同网站的验证码样式差异大,通用性差,每次都需要重新训练模型。
  • 使用第三方OCR API成本高昂,尤其在高频请求场景下难以承受。
  • 缺乏统一的训练、验证和部署流程,导致模型迭代效率低下。

使用 cnn_captcha 后

  • 基于卷积神经网络的端到端识别方案,大幅简化了图像处理流程,只需少量预处理即可直接训练模型。
  • 提供完整的训练、验证、部署模块,支持快速迭代和多模型部署,显著提升了开发效率。
  • 可适配多种字符型验证码,通过调整配置文件即可应对不同样式的验证码,通用性强。
  • 内置WebServer接口,支持API调用和压力测试,便于集成到现有爬虫系统中。
  • 项目文档完善,社区活跃,遇到问题可快速获得帮助,降低了使用门槛。

通过 cnn_captcha,团队实现了验证码识别的自动化,显著提高了数据采集效率和系统的稳定性。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

需要 NVIDIA GPU,显存 8GB+,CUDA 11.7+(若需使用GPU训练)

内存

16GB+

依赖
notes建议使用虚拟环境管理Python依赖,首次运行需准备验证码数据集,并根据配置文件调整参数。若使用GPU训练,请将requirements.txt中的tensorflow替换为tensorflow-gpu。
python3.6+
tensorflow
numpy
Pillow
requests
flask
opencv-python
cnn_captcha hero image

快速开始

cnn_captcha

使用TensorFlow实现卷积神经网络进行验证码识别。
本项目针对字符型图片验证码,使用TensorFlow实现卷积神经网络,进行验证码识别。
项目封装了比较通用的校验、训练、验证、识别、API模块,极大的减少了识别字符型验证码花费的时间和精力。

项目已经帮助很多同学高效完成了验证码识别任务。 如果你在使用过程中出现了bug和做了良好的改进,欢迎提出issue和PR,作者会尽快回复,希望能和你共同完善项目。

如果你需要识别点选、拖拽类验证码,或者有目标检测需求,也可以参考这个项目nickliqian/darknet_captcha

时间表

2018.11.12

初版Readme.md

2018.11.21

加入关于验证码识别的一些说明

2018.11.24

优化校验数据集图片的规则

2018.11.26

新增train_model_v2.py文件,训练过程中同时输出训练集和验证集的准确率

2018.12.06

新增多模型部署支持,修复若干bug

2018.12.08

优化模型识别速度,支持api压力测试和统计耗时

2019.02.19

  1. 新增一种准确率计算方式
  2. TAG: v1.0

2019.04.12

  1. 只保留一种train_model.py文件
  2. 优化代码结构
  3. 把通用配置抽取到sample_config.jsoncaptcha_config.json
  4. 修复若干大家在issue提出的问题

2019.06.01

  1. 完善readme文档,文档不长,请大家一定要读完~
  2. 使用cnnlib目录存放神经网络结构代码
  3. 做了一版训练数据统计,大家可以参考我们的训练次数、时长和准确率
  4. TAG: v2.0

目录

1 项目介绍

2 如何使用

3 统计数据

4 开发说明

5 已知BUG

1 项目介绍

1.1 关于验证码识别

验证码识别大多是爬虫会遇到的问题,也可以作为图像识别的入门案例。目前通常使用如下几种方法:

方法名称 相关要点
tesseract 仅适合识别没有干扰和扭曲的图片,训练起来很麻烦
其他开源识别库 不够通用,识别率未知
付费OCR API 需求量大的情形成本很高
图像处理+机器学习分类算法 涉及多种技术,学习成本高,且不通用
卷积神经网络 一定的学习成本,算法适用于多类验证码

这里说一下使用传统的图像处理和机器学习算法,涉及多种技术:

  1. 图像处理
  • 前处理(灰度化、二值化)
  • 图像分割
  • 裁剪(去边框)
  • 图像滤波、降噪
  • 去背景
  • 颜色分离
  • 旋转
  1. 机器学习
  • KNN
  • SVM

使用这类方法对使用者的要求较高,且由于图片的变化类型较多,处理的方法不够通用,经常花费很多时间去调整处理步骤和相关算法。
而使用卷积神经网络,只需要通过简单的前处理,就可以实现大部分静态字符型验证码的端到端识别,效果很好,通用性很高。

这里列出目前常用的验证码生成库:

参考:Java验证全家桶

语言 验证码库名称 链接 样例
Java JCaptcha 示例 效果1 效果2 效果3
Java JCaptcha4Struts2
Java SimpleCaptcha 例子 效果1 效果2 效果3
Java kaptcha 例子 水纹效果 鱼眼效果 阴影效果
Java patchca 效果1
Java imageRandom
Java iCaptcha 效果1
Java SkewPassImage 效果1
Java Cage 效果1 效果2
Python captcha 例子 py_Captcha
Python pycapt 例子 pycapt
PHP Gregwar/Captcha 文档
PHP mewebstudio/captcha 文档

1.2 目录结构

1.2.1 基本配置

序号 文件名称 说明
1 conf/ 配置文件目录
2 sample/ 数据集目录
3 model/ 模型文件目录
4 cnnlib/ 封装CNN的相关代码目录

1.2.2 训练模型

序号 文件名称 说明
1 verify_and_split_data.py 验证数据集、拆分数据为训练集和测试集
2 network.py CNN网络基类
3 train_model.py 训练模型
4 test_batch.py 批量验证
5 gen_image/gen_sample_by_captcha.py 生成验证码的脚本
6 gen_image/collect_labels.py 用于统计验证码标签(常用于中文验证码)

1.2.3 web接口

序号 文件名称 说明
1 webserver_captcha_image.py 获取验证码接口
2 webserver_recognize_api.py 提供在线识别验证码接口
3 recognize_online.py 使用接口识别的例子
4 recognize_local.py 测试本地图片的例子
5 recognize_time_test.py 压力测试识别耗时和请求响应耗时

1.3 依赖

pip install -r requirements.txt

注意:如果需要使用GPU进行训练,请把文件中的tenforflow修改为tensorflow-gpu

1.4 模型结构

序号 层级
输入 input
1 卷积层 + 池化层 + 降采样层 + ReLU
2 卷积层 + 池化层 + 降采样层 + ReLU
3 卷积层 + 池化层 + 降采样层 + ReLU
4 全连接 + 降采样层 + Relu
5 全连接 + softmax
输出 output

2 如何使用

2.1 数据集

原始数据集可以存放在./sample/origin目录中。
为了便于处理,图片最好以2e8j_17322d3d4226f0b5c5a71d797d2ba7f7.jpg格式命名(标签_序列号.后缀)。

如果你没有训练集,你可以使用gen_sample_by_captcha.py文件生成训练集文件。 生成之前你需要修改相关配置conf/captcha_config.json(路径、文件后缀、字符集等)。

{
  "root_dir": "sample/origin/",  # 验证码保存路径
  "image_suffix": "png",         # 验证码图片后缀
  "characters": "0123456789",    # 生成验证码的可选字符
  "count": 1000,                 # 生成验证码的图片数量
  "char_count": 4,               # 每张验证码图片上的字符数量
  "width": 100,                  # 图片宽度
  "height": 60                   # 图片高度
}

2.2 配置文件

创建一个新项目前,需要自行修改相关配置文件conf/sample_config.json

{
  "origin_image_dir": "sample/origin/",  # 原始文件
  "new_image_dir": "sample/new_train/",  # 新的训练样本
  "train_image_dir": "sample/train/",    # 训练集
  "test_image_dir": "sample/test/",      # 测试集
  "api_image_dir": "sample/api/",        # api接收的图片储存路径
  "online_image_dir": "sample/online/",  # 从验证码url获取的图片的储存路径
  "local_image_dir": "sample/local/",    # 本地保存图片的路径
  "model_save_dir": "model/",            # 从验证码url获取的图片的储存路径
  "image_width": 100,                    # 图片宽度
  "image_height": 60,                    # 图片高度
  "max_captcha": 4,                      # 验证码字符个数
  "image_suffix": "png",                 # 图片文件后缀
  "char_set": "0123456789abcdefghijklmnopqrstuvwxyz",  # 验证码识别结果类别
  "use_labels_json_file": false,                       # 是否开启读取`labels.json`内容
  "remote_url": "http://127.0.0.1:6100/captcha/",      # 验证码远程获取地址
  "cycle_stop": 3000,                                  # 启动任务后的训练指定次数后停止
  "acc_stop": 0.99,                                    # 训练到指定准确率后停止
  "cycle_save": 500,                                   # 训练指定次数后定时保存模型
  "enable_gpu": 0,                                     # 是否开启GUP训练
  "train_batch_size": 128,                             # 训练时每次使用的图片张数,如果CPU或者GPU内存太小可以减少这个参数
  "test_batch_size": 100                               # 每批次测试时验证的图片张数,不要超过验证码集的总数
}

关于验证码识别结果类别,假设你的样本是中文验证码,你可以使用tools/collect_labels.py脚本进行标签的统计。 会生成文件gen_image/labels.json存放所有标签,在配置文件中设置use_labels_json_file = True开启读取labels.json内容作为结果类别

2.3 验证和拆分数据集

此功能会校验原始图片集的尺寸和测试图片是否能打开,并按照19:1的比例拆分出训练集和测试集。
所以需要分别创建和指定三个文件夹:origin,train,test用于存放相关文件。

也可以修改为不同的目录,但是最好修改为绝对路径。
文件夹创建好之后,执行以下命令即可:

python3 verify_and_split_data.py

一般会有类似下面的提示

>>> 开始校验目录:[sample/origin/]
开始校验原始图片集
原始集共有图片: 1001张
====以下1张图片有异常====
[第0张图片] [.DStore] [文件后缀不正确]
========end
开始分离原始图片集为:测试集(5%)和训练集(95%)
共分配1000张图片到训练集和测试集,其中1张为异常留在原始目录
测试集数量为:50
训练集数量为:950
>>> 开始校验目录:[sample/new_train/]
【警告】找不到目录sample/new_train/,即将创建
开始校验原始图片集
原始集共有图片: 0张
====以下0张图片有异常====
未发现异常(共 0 张图片)
========end
开始分离原始图片集为:测试集(5%)和训练集(95%)
共分配0张图片到训练集和测试集,其中0张为异常留在原始目录
测试集数量为:0
训练集数量为:0

程序会同时校验和分割origin_image_dirnew_image_dir两个目录中的图片;后续有了更多的样本,可以把样本放在new_image_dir目录中再次执行verify_and_split_data
程序会把无效的文件留在原文件夹。

此外,当你有新的样本需要一起训练,可以放在sample/new目录下,再次运行python3 verify_and_split_data.py即可。
需要注意的是,如果新的样本中有新增的标签,你需要把新的标签增加到char_set配置中或者labels.json文件中。

2.4 训练模型

创建好训练集和测试集之后,就可以开始训练模型了。
训练的过程中会输出日志,日志展示当前的训练轮数、准确率和loss。
此时的准确率是训练集图片的准确率,代表训练集的图片识别情况
例如:

第10次训练 >>> 
[训练集] 字符准确率为 0.03000 图片准确率为 0.00000 >>> loss 0.1698757857
[验证集] 字符准确率为 0.04000 图片准确率为 0.00000 >>> loss 0.1698757857

字符准确率和图片准确率的解释:

假设:有100张图片,每张图片四个字符,共400个字符。我们这里把任务拆分为为需要识别400个字符
字符准确率:识别400的字符中,正确字符的占比。
图片准确率:100张图片中,4个字符完全识别准确的图片占比。

这里不具体介绍tensorflow安装相关问题,直奔主题。
确保图片相关参数和目录设置正确后,执行以下命令开始训练:

python3 train_model.py

也可以根据train_model.pymain函数中的代码调用类开始训练或执行一次简单的识别演示。

由于训练集中常常不包含所有的样本特征,所以会出现训练集准确率是100%而测试集准确率不足100%的情况,此时提升准确率的一个解决方案是增加正确标记后的负样本。

2.5 批量验证

使用测试集的图片进行验证,输出准确率。

python3 test_batch.py

同样可以根据main函数中的代码调用类开始验证。

2.6 启动WebServer

项目已经封装好加载模型和识别图片的类,启动web server后调用接口就可以使用识别服务。
启动web server

python3 webserver_recognize_api.py

接口url为http://127.0.0.1:6000/b

2.7 调用接口识别

使用requests调用接口:

url = "http://127.0.0.1:6000/b"
files = {'image_file': (image_file_name, open('captcha.jpg', 'rb'), 'application')}
r = requests.post(url=url, files=files)

返回的结果是一个json:

{
    'time': '1542017705.9152594',
    'value': 'jsp1',
}

文件recognize_local.py是使用接口识别本地的例子,这个例子运行成功,那么识别验证码的一套流程基本上是走了一遍了。
在线识别验证码是显示中常用场景,文件recognize_online.py是使用接口在线识别的例子,参见:## 2.11 在线识别

2.8 部署

部署的时候,把webserver_recognize_api.py文件的最后一行修改为如下内容:

app.run(host='0.0.0.0',port=5000,debug=False)

然后开启端口访问权限,就可以通过外网访问了。
另外为了开启多进程处理请求,可以使用uwsgi+nginx组合进行部署。
这部分可以参考:Flask部署选择

2.9 部署多个模型

部署多个模型: 在webserver_recognize_api.py文件汇总,新建一个Recognizer对象;
并参照原有up_image函数编写的路由和识别逻辑。

Q = Recognizer(image_height, image_width, max_captcha, char_set, model_save_dir)

注意修改这一行:

value = Q.rec_image(img)

2.10 在线识别

在线识别验证码是显示中常用场景,即实时获取目标验证码来调用接口进行识别。
为了测试的完整性,这里搭建了一个验证码获取接口,通过执行下面的命令启动:

python webserver_captcha_image.py

启动后通过访问此地址:http://127.0.0.1:6100/captcha/可以接收到验证码图片的二进制流文件。
具体进行在线识别任务的demo参见:recognize_online.py

3 数据统计

3.1 训练数据统计

由于很多同学提出,“需要训练多久呀?”、“准确率可以达到多少?”、“为什么我的准确率一直是0?”类似的疑问。
这一小节,使用默认配置(2019.06.02),把训练过程中的数据做了统计,给大家做一个展示。
本次测试条件如下:

  • 验证码:本项目自带生成验证码程序,数字+小写英文
  • 数量:20000张
  • 计算引擎:GPU
  • GPU型号:笔记本,GTX 950X 2G显卡

经过测试: 5000次,25分钟,训练集字符准确率84%,图片准确率51%;
9190次,46分钟,训练集字符准确率100%,图片准确率100%;
12000,60分钟,测试集的准确率基本上已经跑不动了。

使用test_batch.py测试,日志如下:

100个样本识别耗时6.513171672821045秒,准确率37.0%

有37%的准确率,可以说是识别成功的第一步了。

曲线图如下:
训练集-
train_acc

测试集-
test_acc

3.2 压力测试和统计数据

提供了一个简易的压力测试脚本,可以统计api运行过程中识别耗时和请求耗时的相关数据,不过图需要自己用Excel拉出来。
打开文件recognize_time_test.py,修改main函数下的test_file路径,这里会重复使用一张图片来访问是被接口。
最后数据会储存在test.csv文件中。
使用如下命令运行:

python3 recognize_time_test.py
----输出如下
2938,5150,13:30:25,总耗时:29ms,识别:15ms,请求:14ms
2939,5150,13:30:25,总耗时:41ms,识别:21ms,请求:20ms
2940,5150,13:30:25,总耗时:47ms,识别:16ms,请求:31ms

这里对一个模型进行了两万次测试后,一组数据test.csv。 把test.csv使用箱线图进行分析后可以看到:
压力测试结果

  • 单次请求API总耗时(平均值):27ms
  • 单次识别耗时(平均值):12ms
  • 每次请求耗时(平均值):15ms
    其中有:请求API总耗时 = 识别耗时 + 请求耗时

4 开发说明

  • 20190209
  1. 目前tensorboard展示支持的不是很好。
  • 20190601
  1. 最近比较忙,issue回的有点慢,请大家见谅
  2. dev分支开发到一半一直没时间弄,今天儿童节花了一下午时间更新了一下:)
  3. 感谢看到这里的你,谢谢你的支持

4 已知BUG

  1. 使用pycharm启动recognize_api.py文件报错
2018-12-01 00:35:15.106333: W T:\src\github\tensorflow\tensorflow\core\framework\op_kernel.cc:1273] OP_REQUIRES failed at save_restore_tensor.cc:170 : Invalid argument: Unsuccessful TensorSliceReader constructor: Failed to get matching files on ./model/: Not found: FindFirstFile failed for: ./model : ϵͳҲָ·
; No such process
......
tensorflow.python.framework.errors_impl.InvalidArgumentError: Unsuccessful TensorSliceReader constructor: Failed to get matching files on ./model/: Not found: FindFirstFile failed for: ./model : ϵͳ\udcd5Ҳ\udcb5\udcbdָ\udcb6\udca8\udcb5\udcc4·\udcbe\udcb6\udca1\udca3
; No such process
	 [[Node: save/RestoreV2 = RestoreV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_save/Const_0_0, save/RestoreV2/tensor_names, save/RestoreV2/shape_and_slices)]]

由pycharm默认设置了工作空间,导致读取相对路径的model文件夹出错。 解决办法:编辑运行配置,设置工作空间为项目目录即可。 bug_api启动失败

  1. FileNotFoundError: [Errno 2] No such file or directory: 'xxxxxx'
    目录下有文件夹不存在,在指定目录创建好文件夹即可。

  2. api程序在运行过程中内存越占越大
    结果查阅资料:链接
    在迭代循环时,不能再包含任何张量的计算表达式,否在会内存溢出。 将张量的计算表达式放到init初始化执行后,识别速度得到极大的提升。

  3. 加载多个模型报错 原因是两个Recognizer对象都使用了默认的Graph。 解决办法是在创建对象的时候不使用默认Graph,新建graph,这样每个Recognizer都使用不同的graph,就不会冲突了。

  4. Flask程序用于生产 可以参考官方文档:Flask的生产配置

  5. OOM happens

Hint: If you want to see a list of allocated tensors when OOM happens,
add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

尽可能关闭其他占用GPU或者CPU的任务,或者减小sample_config.json中的train_batch_size参数。

版本历史

v1.0

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架