ホームページ >バックエンド開発 >Golang >Golang は Baidu AI インターフェースに接続し、クイックスタートのためのテキスト認識機能を実装します。

Golang は Baidu AI インターフェースに接続し、クイックスタートのためのテキスト認識機能を実装します。

王林
王林オリジナル
2023-08-26 15:42:291023ブラウズ

Golang は Baidu AI インターフェースに接続し、クイックスタートのためのテキスト認識機能を実装します。

Golang は Baidu AI インターフェイスに接続してテキスト認識機能を実装します。クイック スタート

概要:
今日の情報爆発の時代において、テキスト認識テクノロジは強力な強力なツール。 Baidu AI オープン プラットフォームは、強力なテキスト認識インターフェイスを提供します。この記事では、Golang 言語を使用して Baidu AI インターフェースに接続し、テキスト認識機能を実現する方法を紹介します。この記事のクイック スタートを通じて、読者は Baidu AI のテキスト認識サービスをすぐに使い始めて使用できるようになります。

ステップ 1: Baidu AI オープン プラットフォーム アカウントを申請する
まず、Baidu AI オープン プラットフォームにアカウントを登録し、テキスト認識アプリケーションを作成する必要があります。アプリケーションを作成する場合は、「テキスト認識」サービスを手動で有効化し、「API キー」と「秘密キー」を取得する必要があります。

ステップ 2: Golang の HTTP リクエスト ライブラリをインストールする
Go 言語では、サードパーティのライブラリを使用して HTTP リクエストを送信できます。ここでは、使いやすく強力な公式の「net/http」ライブラリを使用することをお勧めします。次のコマンドを使用してライブラリをインストールできます。

go get -u github.com/go-redis/redis/v8

ステップ 3: Baidu AI インターフェイスを呼び出すコードを作成する
次のサンプル コードは、Golang を使用して Baidu AI インターフェイスに接続し、テキスト認識機能を実装する方法を示しています。 :

package main
  
import (
    "bytes"
    "encoding/base64"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
    "path/filepath"
)
  
const (
    apiKey = "YOUR_API_KEY"
    secretKey = "YOUR_SECRET_KEY"
)
  
type AccessTokenResponse struct {
    AccessToken string `json:"access_token"`
}
  
type OCRResponse struct {
    WordsResult []struct {
        Words string `json:"words"`
    } `json:"words_result"`
}
  
func main() {
    // 读取图片文件
    imageFile, err := os.Open("example.jpg")
    defer imageFile.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 将图片文件编码为base64字符串
    fileInfo, _ := imageFile.Stat()
    size := fileInfo.Size()
    buffer := make([]byte, size)
    imageFile.Read(buffer)
    imageBase64 := base64.StdEncoding.EncodeToString(buffer)
  
    // 获取百度AI接口的access_token
    accessToken, err := getAccessToken(apiKey, secretKey)
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 调用百度AI接口进行文字识别
    ocrResponse, err := ocr(accessToken, imageBase64)
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 提取识别结果
    for _, words := range ocrResponse.WordsResult {
        fmt.Println(words.Words)
    }
}
  
// 获取百度AI接口的access_token
func getAccessToken(apiKey string, secretKey string) (string, error) {
    client := &http.Client{}
    request, err := http.NewRequest("GET", "https://aip.baidubce.com/oauth/2.0/token", nil)
    if err != nil {
        return "", err
    }
    q := request.URL.Query()
    q.Add("grant_type", "client_credentials")
    q.Add("client_id", apiKey)
    q.Add("client_secret", secretKey)
    request.URL.RawQuery = q.Encode()
  
    response, err := client.Do(request)
    if err != nil {
        return "", err
    }
    defer response.Body.Close()
  
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        return "", err
    }
  
    var accessTokenResponse AccessTokenResponse
    err = json.Unmarshal(body, &accessTokenResponse)
    if err != nil {
        return "", err
    }
  
    return accessTokenResponse.AccessToken, nil
}
  
// 调用百度AI接口进行文字识别
func ocr(accessToken string, imageBase64 string) (OCRResponse, error) {
    client := &http.Client{}
    request, err := http.NewRequest("POST", "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic", bytes.NewBuffer([]byte(imageBase64)))
    if err != nil {
        return OCRResponse{}, err
    }
    request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  
    q := request.URL.Query()
    q.Add("access_token", accessToken)
    request.URL.RawQuery = q.Encode()
  
    response, err := client.Do(request)
    if err != nil {
        return OCRResponse{}, err
    }
    defer response.Body.Close()
  
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        return OCRResponse{}, err
    }
  
    var ocrResponse OCRResponse
    err = json.Unmarshal(body, &ocrResponse)
    if err != nil {
        return OCRResponse{}, err
    }
  
    return ocrResponse, nil
}

コードでは、まず、申請した API キーと秘密キーを apiKey 定数と SecretKey 定数に入力する必要があります。次に、getAccessToken 関数を通じて Baidu AI インターフェイスの access_token を取得し、テキスト認識のために ocr 関数を通じて Baidu AI インターフェイスを呼び出します。最後に認識結果を抽出して出力します。

ステップ 4: コードを実行して認識結果を取得する
上記のコードを Go ソース ファイル (main.go など) として保存し、コマンド ラインで次のコマンドを実行して実行します。コード:

go run main.go

このコードは、現在のディレクトリにある example.jpg 画像ファイルを読み取り、結果をコンソールに出力します。実際のニーズに基づいて、例の画像を独自の画像ファイルに置き換えることができます。

概要:
上記の手順により、Golang を使用して Baidu AI インターフェイスに接続し、テキスト認識機能を実現することに成功しました。より複雑なアプリケーション シナリオに対応するために、ニーズに応じてコードを変更および拡張できます。この記事が役に立ち、Baidu AI のテキスト認識サービスをよりよく理解し、使用できるようになることを願っています。

以上がGolang は Baidu AI インターフェースに接続し、クイックスタートのためのテキスト認識機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。