帮助文档  > 产品文档 > API资源 > 图像识别

图像服务将在2019年4月19日零点停止服务

如需体验最新的搜狗图像技术,请访问https://deepi.sogou.com

搜狗AI技术服务 之 OCR

服务测试地址

http://api.ai.sogou.com/pub/ocr

请求方式

POST

POST 参数说明

参数名类型说明
picmultipart/form-data必要参数;图像数据,multipart/form-data 方式 post 图片的二进制原始数据
filenamestring必要参数;图片文件名,为 multipart/form-data 格式里,Content-Disposition部分的默认参数,推荐使用固定格式,目前推荐使用的格式为 a_b_c.jpg,其中 a 为毫秒级时间戳,b 为 IMEI 的 MD5 值,c 为固定平台标识,例如输入法 iOS 客户端使用 "ios",翻译君使用 "fyj"

注:旋转默认打开,无需指定

请求示例

<?php
function sign($ak, $sk, $url, $method) {
    /*
     * 生成app签名函数
     */
    $res = parse_url($url);
    $hst = $res["host"];
    $uri = $res["path"];

    if ($res["query"]) {
        parse_str($res["query"], $arg); ksort($arg);
    } else {
        $arg = array();
    }

    $arg = http_build_query($arg);


    $pre = "sac-auth-v1/$ak/".time()."/3600";
    $calc = "$pre\n$method\n$hst\n$uri\n$arg";

    return "$pre/".base64_encode(hash_hmac('sha256', $calc, $sk, true));
}
$now = intval(gettimeofday(true) * 1000);

// ocr测试应用:ak&sk
$ak = "";
$sk = "";


$file = "OCR-test03.jpg";
$url = "http://api.ai.sogou.com/pub/ocr";

$hdr = array(
    "Content-Type: multipart/form-data",
    "Authorization: ".sign($ak, $sk, $url, "POST")
); // cURL headers for file uploading

$postfields = array(
    "pic" => curl_file_create($file,'image/jpeg','a_b_c.jpg'),
);

$ch = curl_init();
$options = array(
    CURLOPT_URL => $url,
    CURLOPT_HEADER => false,
    CURLOPT_POST => 1,
    CURLOPT_HTTPHEADER => $hdr,
    CURLOPT_POSTFIELDS => $postfields,
    CURLOPT_RETURNTRANSFER => true
);
curl_setopt_array($ch, $options);
$res = curl_exec($ch);
if(curl_errno($ch)) {
    echo curl_error($ch)."\n";
}
curl_close($ch);

var_dump($res);
print_r(json_decode($res, true));
?>

返回结果

Array
(
    [result] => Array
        (
            [0] => Array
                (
                    [content] => 一开机一天

                    [frame] => Array
                        (
                            [0] => 387,357
                            [1] => 1478,357
                            [2] => 1478,519
                            [3] => 387,519
                        )

                )

            [1] => Array
                (
                    [content] => 一关机就过去了

                    [frame] => Array
                        (
                            [0] => 380,552
                            [1] => 1696,552
                            [2] => 1696,700
                            [3] => 380,700
                        )

                )

        )

    [success] => 1
)

返回结果字段解释

字段名类型说明
successint取值为 0 或 1。0 表示识别失败/没有识别到文字;1 表示识别成功
resultlist 每个元素表示一个识别出来的文字行。其中每行包括两个元素:
content: 识别出的文本
frame: 该行在图片中的位置(从左上角开始顺时针的四个顶点坐标)

版本记录

  • v 0.0 初次上线,OCR服务