«

PHP调用百度AI图像识别文字并输出文本结果

时间:2024-3-3 10:42     作者:韩俊     分类: PHP


今天想着将一本书中的内容扫描成文字,用手机下载了一款软件测试,识别结果很好,但是复制出文字是要收费的。自己想起以前用过百度AI的人脸识别接口API,也见到过图像识别文字的接口,索性就自己用百度提供的免费接口来做一个吧。

百度提供的免费调用量足够自己测试使用了,而且应对一般小的应用也完全够用。

首先,先创建文字识别新应用,没有账号的赶紧注册一个吧。

这里使用的接口API是调用通用文字识别(高精度版)

<?
require_once 'AipOcr.php';
// 你的 APPID AK SK
const APP_ID = 'XXX';//这些自己去百度智能云管理中心去找就行了
const API_KEY = 'XXX';
const SECRET_KEY = 'XXX';
$client = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
$image = file_get_contents('image.jpg');
// 调用通用文字识别(高精度版)
$client->basicAccurate($image);
// 如果有可选参数
$options = array();
$options["detect_direction"] = "false"; //是否检测图像朝向,默认不检测,即:false。
$options["probability"] = "false";//是否返回识别结果中每一行的置信度
$options["language_type"] = "CHN_ENG"; //- CHN_ENG:中英文混合;
// 带参数调用通用文字识别(高精度版)
$image_ocr_array=$client->basicAccurate($image, $options);
print_r($image_ocr_array);//输出完整结果
/*
     图像识别出文字的返回输出结果数组如下:
        Array
        (
            [log_id] => 6.6965972121656E+18
            [words_result_num] => 29
            [words_result] => Array
                (
                    [0] => Array
                        (
                            [words] => 第21章优化 MySQL Server
                        )

                    [1] => Array
                        (
                            [words] => 64
                        )

                    [2] => Array
                        (
                            [words] => 21.4调整MySQ并发相关的参数
                        )
*/
echo "<hr>";
echo "共有结果:".$image_ocr_array['words_result_num']." 行";// 实际扫描识别图片中的文字,是按行来得出结果的。
echo "<hr>";
$words_list=''; //定义一个存储识别文字结果的变量
for ($i=0;$i<$image_ocr_array['words_result_num'];$i++){
    $words_list=$words_list. $image_ocr_array['words_result'][$i]['words']."<br />";//这里在结尾加入了换行符号。根据需要自己调整吧。
}
echo $words_list;//只输出图像识别文字合并后的结果
?>

下面图像文字和识别文字结果的对照图片:

这次就不提供更多的相关参数说明和文件引用的SDK文件下载地址了,这些在创建应用后都有最新版的文档说明和下载地址。自己动手吧。

标签: php php教程

热门推荐