Maison  >  Article  >  développement back-end  >  Golang se connecte à l'interface Baidu AI pour réaliser la fonction de reconnaissance de texte et démarre rapidement

Golang se connecte à l'interface Baidu AI pour réaliser la fonction de reconnaissance de texte et démarre rapidement

王林
王林original
2023-08-26 15:42:29948parcourir

Golang se connecte à linterface Baidu AI pour réaliser la fonction de reconnaissance de texte et démarre rapidement

Golang se connecte à l'interface Baidu AI pour implémenter la fonction de reconnaissance de texte, démarrage rapide

Aperçu :
À l'ère actuelle de l'explosion de l'information, la technologie de reconnaissance de texte est devenue un outil puissant. La plateforme ouverte Baidu AI fournit une puissante interface de reconnaissance de texte. Cet article expliquera comment utiliser le langage Golang pour se connecter à l'interface Baidu AI afin de réaliser la fonction de reconnaissance de texte. Grâce au démarrage rapide de cet article, les lecteurs pourront rapidement démarrer et utiliser le service de reconnaissance de texte de Baidu AI.

Étape 1 : demander un compte sur la plateforme ouverte Baidu AI
Tout d'abord, nous devons créer un compte sur la plateforme ouverte Baidu AI et créer une application de reconnaissance de texte. Lors de la création d'une application, vous devez activer manuellement le service « Reconnaissance de texte » et obtenir la « Clé API » et la « Clé secrète ».

Étape 2 : Installer la bibliothèque de requêtes HTTP de Golang
En langage Go, nous pouvons utiliser des bibliothèques tierces pour envoyer des requêtes HTTP. Nous vous recommandons ici d'utiliser la bibliothèque officielle "net/http", simple à utiliser et puissante. La bibliothèque peut être installée via la commande suivante :

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

Étape 3 : Écrivez le code pour appeler l'interface Baidu AI
L'exemple de code suivant montre comment utiliser Golang pour se connecter à l'interface Baidu AI afin d'implémenter la fonction de reconnaissance de texte :

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
}

Dans le code, vous devez d'abord remplir la clé API et la clé secrète appliquées dans les constantes apiKey et secretKey. Ensuite, obtenez le access_token de l'interface Baidu AI via la fonction getAccessToken, puis appelez l'interface Baidu AI via la fonction ocr pour la reconnaissance de texte. Enfin, extrayez les résultats de la reconnaissance et affichez-les.

Étape 4 : Exécutez le code et obtenez les résultats de la reconnaissance
Enregistrez le code ci-dessus en tant que fichier source Go (tel que main.go), puis exécutez la commande suivante sur la ligne de commande pour exécuter le code :

go run main.go

Le le code lira le fichier dans le fichier image example.jpg du répertoire actuel et affichera les résultats sur la console. En fonction des besoins réels, vous pouvez remplacer les images des exemples par vos propres fichiers image.

Résumé : 
Grâce aux étapes ci-dessus, nous avons utilisé avec succès Golang pour nous connecter à l'interface Baidu AI et réaliser la fonction de reconnaissance de texte. Vous pouvez modifier et étendre le code en fonction de vos besoins pour répondre à des scénarios d'application plus complexes. J'espère que cet article pourra vous aider et vous permettre de mieux comprendre et utiliser le service de reconnaissance de texte de Baidu AI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn