>  기사  >  백엔드 개발  >  Golang은 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능을 실현하고 빠르게 시작합니다.

Golang은 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능을 실현하고 빠르게 시작합니다.

王林
王林원래의
2023-08-26 15:42:29948검색

Golang은 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능을 실현하고 빠르게 시작합니다.

Golang은 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능 구현, 빠른 시작

개요:
오늘날의 정보 폭발 시대에 텍스트 인식 기술은 강력한 도구가 되었습니다. Baidu AI 개방형 플랫폼은 강력한 텍스트 인식 인터페이스를 제공합니다. 이 기사에서는 Golang 언어를 사용하여 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능을 구현하는 방법을 소개합니다. 이 글의 빠른 시작을 통해 독자들은 바이두 AI의 문자 인식 서비스를 빠르게 시작하고 사용할 수 있을 것이다.

1단계: 바이두 AI 오픈 플랫폼 계정 신청
먼저 바이두 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
}

In the 코드를 사용하려면 먼저 apiKey 및 secretKey 상수에 적용된 API 키와 비밀 키를 입력해야 합니다. 그런 다음 getAccessToken 함수를 통해 Baidu AI 인터페이스의 access_token을 얻은 다음 텍스트 인식을 위한 ocr 함수를 통해 Baidu AI 인터페이스를 호출합니다. 마지막으로 인식 결과를 추출하여 출력합니다.

4단계: 코드 실행 및 인식 결과 가져오기
위 코드를 Go 소스 파일(예: main.go)로 저장한 후 명령줄에서 다음 명령을 실행하여 코드를 실행합니다.

go run main.go

코드는 현재 디렉터리 example.jpg 이미지 파일의 파일을 읽고 결과를 콘솔에 출력합니다. 실제 필요에 따라 예제의 이미지를 사용자 고유의 이미지 파일로 바꿀 수 있습니다.

요약:
위 단계를 통해 Golang을 사용하여 Baidu AI 인터페이스에 연결하고 텍스트 인식 기능을 구현하는 데 성공했습니다. 보다 복잡한 애플리케이션 시나리오를 충족하기 위해 필요에 따라 코드를 수정하고 확장할 수 있습니다. 이 글이 여러분에게 바이두 AI의 문자 인식 서비스를 더 잘 이해하고 사용하는 데 도움이 되기를 바랍니다.

위 내용은 Golang은 Baidu AI 인터페이스에 연결하여 텍스트 인식 기능을 실현하고 빠르게 시작합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.