zzdd111 发表于 2023-4-4 15:26

php 搞图文识别功能,怎么才能识别印章

本帖最后由 zzdd111 于 2023-4-4 15:38 编辑

老板让搞图文识别,成功一部分,但是印章这个还是不能成功,我想问问各位大神,怎么实现识别印章这个功能?
识别这中印章https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/0b46f21fbe096b638953ad690d338744ebf8ac45.jpg

闷骚小贱男 发表于 2023-4-4 15:54

利用OCR的API,例百度:https://cloud.baidu.com/doc/OCR/s/Mk3h7y47a

xiaobai1 发表于 2023-4-4 15:58

是调用第三方api不行嘛

ouzhzh 发表于 2023-4-4 16:01

本帖最后由 ouzhzh 于 2023-4-4 16:22 编辑

楼主的意思是要识别印章,还是要识别印章里的文字?识别印章的话,可以扫描,也可以提取。好像眼下还没有可以识别文字,同时又能把印章识别并单独弄在一边的软件(因为印章是盖在文字上的)。

陌小全 发表于 2023-4-4 17:30

百度OCR:百度公司推出的OCR识别服务,支持多种类型的印章识别功能,包括公章、私章、合同章等。
阿里云OCR:阿里云推出的OCR识别服务,支持印章的类型和位置检测,能够识别公章、私章、发票章等。
腾讯优图OCR:腾讯优图推出的OCR识别服务,支持多种文本和印章识别,能够快速识别公章、合同章、营业执照章等印章类型。

wulitucao 发表于 2023-4-4 18:09

我的理解是你想用php实现印章识别(包括印章上的公司名称),如果大家都是用的电子印章,直接对接电子印章技术方的API就可以,如果是纸质扫描件的印章最便捷的方式确实就是3楼所说的印章识别API接入,有很多第三方(百度、合合)已经支持调用。如果你是想免费白嫖,那就只能借用开源的项目,例如使用Flask PaddlePaddle PaddleX架构的chapter_tagging项目,但是很关键的一个问题是识别率,第三方API识别率会高不少。

宝宝丷 发表于 2023-4-4 19:37

本帖最后由 宝宝丷 于 2023-4-4 19:39 编辑

// 配置 APP_ID, API_KEY, SECRET_KEY
$app_id = 'YOUR_APP_ID';
$api_key = 'YOUR_API_KEY';
$secret_key = 'YOUR_SECRET_KEY';

// 印章图片路径
$image_path = 'YOUR_IMAGE_PATH';

// 调用百度OCR API 进行印章识别
$url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/seal';
$access_token = get_access_token($app_id, $api_key, $secret_key);
$img_base64 = base64_encode(file_get_contents($image_path));
$data = array(
    'image' => $img_base64,
    'detect_direction' => 'true',
    'probability' => 'true'
);
$result = request_post($url, $data, $access_token);

// 输出结果
print_r($result);

// 获取百度 OCR API 的 access_token
function get_access_token($app_id, $api_key, $secret_key) {
    $url = 'https://aip.baidubce.com/oauth/2.0/token';
    $post_data['grant_type'] = 'client_credentials';
    $post_data['client_id'] = $api_key;
    $post_data['client_secret'] = $secret_key;
    $o = "";
    foreach ($post_data as $k=>$v)
    {
      $o.= "$k=" . urlencode( $v ). "&" ;
    }
    $post_data = substr($o,0,-1);
    $res = request_post($url, $post_data);
    $access_token = json_decode($res, true)['access_token'];
    return $access_token;
}

// 发送 POST 请求
function request_post($url = '', $post_data = array(), $access_token = '') {
    if(false == $url || empty($post_data)){
      return false;
    }
    if(!empty($access_token)){
      $url = $url.'?access_token='.$access_token;
    }
    $o = "";
    foreach ($post_data as $k=>$v)
    {
      $o.= "$k=" . urlencode( $v ). "&" ;
    }
    $post_data = substr($o,0,-1);
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $output = curl_exec($curl);
    curl_close($curl);

    return $output;
}


以上代码中,$app_id、$api_key、$secret_key 分别为百度 OCR API 的 APP_ID、API_KEY 和 SECRET_KEY,需要替换成自己的信息;$image_path 为要识别的印章图片路径,也需要替换成自己的路径。运行代码后,会输出印章识别结果。

syh315 发表于 2023-4-4 21:17

宝宝丷 发表于 2023-4-4 19:37
// 配置 APP_ID, API_KEY, SECRET_KEY
$app_id = 'YOUR_APP_ID';
$api_key = 'YOU ...

注册帐号分别替换就可以用了吗

X14 发表于 2023-4-4 23:25

各位脑洞比较大,哈哈:keai

zzdd111 发表于 2023-4-6 09:39

342520a 发表于 2023-4-4 15:51
全能扫描王

政府相关的,不让用百度
页: [1] 2
查看完整版本: php 搞图文识别功能,怎么才能识别印章