前言
随着 AI 视觉技术的发展,扑克牌识别已经广泛应用于:
- 棋牌AI机器人
- 棋牌游戏直播分析
- 自动发牌设备
- 棋牌游戏裁判系统
- 棋牌游戏数据统计
- 娱乐互动应用
- 智能桌游终端
- AI视觉识别项目
相比传统模板匹配算法,如今基于深度学习的扑克牌识别 API 不仅识别速度更快,而且能够适应不同角度、光照和复杂背景。
本文将介绍如何通过扑克牌识别 API,实现牌值、花色、大小王识别,并返回检测框坐标、类别编码及识别置信度,同时提供 Python、Java、PHP 多语言调用示例。
什么是扑克牌识别 API?
扑克牌识别 API 是一种基于计算机视觉和目标检测技术的接口,可自动识别图片中的扑克牌信息,并返回结构化数据。
支持识别:
牌值
- A
- 2~10
- J
- Q
- K
- 小王
- 大王
花色
- 黑桃(♠)
- 红桃(♥)
- 梅花(♣)
- 方块(♦)
一次图片可同时识别多张扑克牌。
石榴智能扑克识别OCR:
- 支持免费在线体验,注册API账号送免费测试积分
- API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
免费在线体验:https://market.shiliuai.com/tools/poker-recognition
API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr

返回哪些识别结果?
接口通常返回以下信息:
- 扑克牌牌值
- 花色
- 类别编码
- 检测坐标(Bounding Box)
- 识别置信度
- 检测数量
示例返回:

{
"code":200,
"data":[
{
"card":"A",
"suit":"Spade",
"class_id":1,
"confidence":0.998,
"bbox":[120,85,245,280]
},
{
"card":"10",
"suit":"Heart",
"class_id":24,
"confidence":0.996,
"bbox":[320,90,445,286]
}
]
}
API 能解决哪些场景?
棋牌游戏直播分析
实时识别桌面扑克牌,实现牌局数据统计。
棋牌AI训练
自动获取牌面信息,辅助 AI 模型训练。
自动发牌设备
识别发出的牌是否正确,提高设备稳定性。
棋牌游戏监管
识别桌面牌面信息,实现自动记录。
图像数据标注
自动生成扑克牌检测数据,提高标注效率。
API 的主要特点
支持:
- A~K 全牌值识别
- 大王、小王识别
- 黑桃、红桃、梅花、方块识别
- 多张扑克同时检测
- 返回坐标信息
- 返回类别编码
- 返回识别置信度
- 支持旋转扑克识别
- 支持复杂背景识别
- 支持高清图片识别
Python 调用示例
python
# ==============================================================================
# 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
# API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
# 支持免费在线体验
# API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
#
# ----- 配置信息 -----
# 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
# ==============================================================================
# -*- coding: utf-8 -*-
import requests
import base64
import json
# 请求接口
URL = "https://ocr-api.shiliuai.com/api/game_ocr/v1"
# 图片转base64
def get_base64(file_path):
with open(file_path, 'rb') as f:
data = f.read()
b64 = base64.b64encode(data).decode('utf8')
return b64
def demo(appcode, file_path):
# 请求头
headers = {
'Authorization': 'APPCODE %s' % appcode,
'Content-Type': 'application/json'
}
# 请求体
b64 = get_base64(file_path)
data = {"image_base64": b64}
# 请求
response = requests.post(url=URL, headers=headers, json=data)
content = json.loads(response.content)
print(content)
if __name__=="__main__":
appcode = "你的APPCODE"
file_path = "本地图片路径"
demo(appcode, file_path)
Java 调用示例
java
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
//
// ----- 配置信息 -----
// 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
// ==============================================================================
//main.java
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Base64;
public class Main {
public static String get_base64(String path) {
String b64 = "";
try {
// 使用Commons IO简化文件读取
byte[] content = FileUtils.readFileToByteArray(new File(path));
// 使用JDK自带的Base64
b64 = Base64.getEncoder().encodeToString(content);
} catch (IOException e) {
e.printStackTrace();
}
return b64;
}
public static void main(String[] args) {
String url = "https://ocr-api.shiliuai.com/api/game_ocr/v1";// 请求接口
String appcode = "你的APPCODE";
String imgFile = "本地图片路径";
Map headers = new HashMap<>();
headers.put("Authorization", "APPCODE " + appcode);
headers.put("Content-Type", "application/json");
// 请求体
JSONObject requestObj = new JSONObject();
requestObj.put("image_base64", get_base64(imgFile));
String bodys = requestObj.toString();
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// 创建POST请求
HttpPost httpPost = new HttpPost(url);
// 设置请求头
for (Map.Entry entry : headers.entrySet()) {
httpPost.addHeader(entry.getKey(), entry.getValue());
}
// 设置请求体
StringEntity entity = new StringEntity(bodys, "UTF-8");
httpPost.setEntity(entity);
// 执行请求
HttpResponse response = httpClient.execute(httpPost);
int stat = response.getStatusLine().getStatusCode();
if (stat != 200) {
System.out.println("Http code: " + stat);
return;
}
String res = EntityUtils.toString(response.getEntity());
JSONObject res_obj = JSON.parseObject(res);
System.out.println(res_obj.toJSONString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
PHP 调用示例
php
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/poker-recognition
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/poker-recognition-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
//
// ----- 配置信息 -----
// 从石榴智能API市场获取API_KEY或SECRET_KEY:https://market.shiliuai.com/
// ==============================================================================
//图片转base64
function get_base64($path){
if($fp = fopen($path, "rb", 0)) {
$binary = fread($fp, filesize($path));// 文件读取
fclose($fp);
$b64 = base64_encode($binary);// 转base64
}else{
$b64="";
printf("%s 文件不存在", $path);
}
return $b64;
}
$url = "https://ocr-api.shiliuai.com/api/game_ocr/v1";
$appcode = "你的appcode";
$img_path = "图片路径";
$method = "POST";
//请求头
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
array_push($headers, "Content-Type:application/json");
//请求体
$b64 = get_base64($img_path);
$data = array(
"image_base64" => $b64
);
$post_data = json_encode($data);
//请求
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($curl);
var_dump($result);
如何提高识别准确率?
建议上传:
- 图片清晰
- 保持扑克牌完整
- 避免严重反光
- 避免遮挡牌角
- 保持适当光照
如果图片存在模糊、噪点或压缩严重等问题,可先使用 AI 图片增强接口进行预处理,再进行扑克牌识别,可进一步提升识别效果。
为什么推荐石榴智能?
如果需要快速集成 AI 视觉能力,石榴智能提供完整的图像识别 API 与图片处理能力。
- 支持免费在线体验,注册API账号送免费测试积分
- API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
主要优势包括:
- 支持扑克牌识别、OCR、目标检测等多种视觉能力
- 支持识别牌值 A、2-10、J、Q、K 以及大小王
- 支持识别黑桃、红桃、梅花、方块四种花色
- 返回检测坐标、类别编码和识别置信度,方便二次开发
- 提供在线工具,可免费体验识别效果
- 提供完整 API 文档及示例代码
- 支持 Python、Java、PHP、JavaScript、C#、易语言、按键精灵、懒人精灵、天诺、触动精灵、EasyClick 等多种开发语言和自动化脚本
- 同时提供 OCR、智能抠图、图片去水印、图片变清晰、证件照制作等 AI 能力,方便构建完整的视觉处理流程
对于需要快速落地 AI 识别项目的开发者和企业来说,可以有效降低开发成本和接入难度。
总结
扑克牌识别 API 已广泛应用于棋牌 AI、智能设备、视觉检测、直播分析和自动化系统等场景。
相比传统算法,AI 模型具备更高的识别准确率、更强的环境适应能力以及更好的扩展性。
如果项目需要识别扑克牌牌值、花色,并获取检测坐标和置信度,直接接入成熟 API 通常比自行训练模型更高效,也能缩短开发周期。
推荐阅读
《OCR API 接口怎么调用?2026 从0到1完整接入指南(Python/Java/PHP/C#)》
《OCR 在线识别 + API 接口实战:从网页验证到系统集成》
《2026 图文识别与图片处理技术选型全攻略:OCR API vs 在线工具 vs 本地部署怎么选?》
《图片变清晰 API 实战:模糊图片一键变高清(附 Python / Java / PHP 完整代码)》
《【组合实战】OCR + 图片去水印 API:自动清洗图片再识别文字(完整方案 + 代码示例)》