Heim  >  Artikel  >  Backend-Entwicklung  >  Golang stellt eine Verbindung zur Baidu-KI-Schnittstelle her, um die Texterkennungsfunktion zu realisieren, und ist schnell einsatzbereit

Golang stellt eine Verbindung zur Baidu-KI-Schnittstelle her, um die Texterkennungsfunktion zu realisieren, und ist schnell einsatzbereit

王林
王林Original
2023-08-26 15:42:29998Durchsuche

Golang stellt eine Verbindung zur Baidu-KI-Schnittstelle her, um die Texterkennungsfunktion zu realisieren, und ist schnell einsatzbereit

Golang stellt eine Verbindung zur Baidu AI-Schnittstelle her, um die Texterkennungsfunktion zu implementieren, Schnellstart

Übersicht:
In der heutigen Zeit der Informationsexplosion ist die Texterkennungstechnologie zu einem leistungsstarken Werkzeug geworden. Die offene Plattform Baidu AI bietet eine leistungsstarke Texterkennungsschnittstelle. In diesem Artikel wird erläutert, wie Sie mithilfe der Golang-Sprache eine Verbindung zur Baidu-KI-Schnittstelle herstellen und so die Texterkennungsfunktion realisieren können. Durch den Schnellstart dieses Artikels können Leser schnell loslegen und den Texterkennungsdienst von Baidu AI nutzen.

Schritt 1: Beantragen Sie ein Konto für die offene Baidu AI-Plattform.
Zuerst müssen wir ein Konto auf der offenen Baidu AI-Plattform registrieren und eine Texterkennungsanwendung erstellen. Beim Erstellen einer Anwendung müssen Sie den Dienst „Texterkennung“ manuell aktivieren und den „API-Schlüssel“ und den „geheimen Schlüssel“ erhalten.

Schritt 2: Installieren Sie die HTTP-Anfragebibliothek von Golang.
In der Go-Sprache können wir Bibliotheken von Drittanbietern verwenden, um HTTP-Anfragen zu senden. Hier empfehlen wir die Verwendung der offiziellen „net/http“-Bibliothek, die einfach zu verwenden und leistungsstark ist. Die Bibliothek kann über den folgenden Befehl installiert werden:

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

Schritt 3: Schreiben Sie Code zum Aufrufen der Baidu AI-Schnittstelle
Der folgende Beispielcode zeigt, wie Sie Golang verwenden, um eine Verbindung zur Baidu AI-Schnittstelle herzustellen, um die Texterkennungsfunktion zu implementieren:

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
}

In der Um Code zu erstellen, müssen Sie zunächst den angewendeten API-Schlüssel und den geheimen Schlüssel in die Konstanten apiKey und SecretKey eingeben. Rufen Sie dann das access_token der Baidu AI-Schnittstelle über die Funktion getAccessToken ab und rufen Sie dann die Baidu AI-Schnittstelle über die ocr-Funktion zur Texterkennung auf. Extrahieren Sie abschließend die Erkennungsergebnisse und geben Sie sie aus.

Schritt 4: Führen Sie den Code aus und erhalten Sie die Erkennungsergebnisse.
Speichern Sie den obigen Code als Go-Quelldatei (z. B. main.go) und führen Sie dann den folgenden Befehl in der Befehlszeile aus, um den Code auszuführen:

go run main.go

The Der Code liest die Bilddatei example.jpg im aktuellen Verzeichnis und gibt die Ergebnisse an die Konsole aus. Je nach tatsächlichem Bedarf können Sie die Bilder in den Beispielen durch Ihre eigenen Bilddateien ersetzen.

Zusammenfassung:
Durch die oben genannten Schritte haben wir Golang erfolgreich verwendet, um eine Verbindung zur Baidu AI-Schnittstelle herzustellen und die Texterkennungsfunktion zu realisieren. Sie können den Code entsprechend Ihren Anforderungen ändern und erweitern, um komplexere Anwendungsszenarien zu erfüllen. Ich hoffe, dieser Artikel kann Ihnen helfen und es Ihnen ermöglichen, den Texterkennungsdienst von Baidu AI besser zu verstehen und zu nutzen.

Das obige ist der detaillierte Inhalt vonGolang stellt eine Verbindung zur Baidu-KI-Schnittstelle her, um die Texterkennungsfunktion zu realisieren, und ist schnell einsatzbereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn