오픈 ai 챗 gpt 와 엑셀로 OCR하기
2024-06-18 22:52:56
오픈 ai 챗 gpt로 이미지를 첨부하고 물어보면 답을 해줍니다. 이것을 엑셀로도 구현할 수 있습니다. 차량번호판이 찍힌 사진에서 차량번호를 읽어내는 코드입니다.
오픈 ai 챗 gpt Vision API로 차량번호 알아내기
엑셀 VBA를 이용하여 내 PC의 차량 번호판이 찍힌 사진으로 차량번호를 읽어내는 예제입니다.
엑셀 문서를 만들고 Alt+F11을 눌러 VBA Editor를 엽니다.
삽입/모듈 메뉴에서 아래 소스 코드를 복붙합니다.
"your-key"에 openai api 회원가입 후 api-key를 복붙하시면 됩니다.
차량번호판이 찍힌 사진 파일이 있는 경로를 아래에 반영합니다.
imagePath = "C:\path\to\your\image.png"
' 오픈 ai 챗 gpt 와 엑셀로 OCR하기
Sub SendImageToOpenAI()
' OpenAI API 키 설정
Dim apiKey As String
apiKey = "your-key"
' 이미지 경로
Dim imagePath As String
imagePath = "C:\path\to\your\image.png" ' 여기에 올바른 이미지 경로를 입력하세요
' 이미지를 base64로 인코딩하는 함수 호출
Dim base64Image As String
base64Image = EncodeImageToBase64(imagePath)
' HTTP 요청을 보내기 위한 객체 생성
Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
' API 엔드포인트 URL 설정
Dim url As String
url = "https://api.openai.com/v1/chat/completions"
' JSON 페이로드 설정
Dim payload As String
payload = "{""model"": ""gpt-4o"", ""messages"": [{""role"": ""user"", ""content"": [{""type"": ""text"", ""text"": ""차량번호 스트링만 찾아줘.""},{""type"": ""image_url"", ""image_url"": {""url"": ""data:image/jpeg;base64," & base64Image & """}}]}], ""max_tokens"": 1000}"
' HTTP 요청 설정
With http
.Open "POST", url, False
.SetRequestHeader "Content-Type", "application/json"
.SetRequestHeader "Authorization", "Bearer " & apiKey
.Send payload
End With
' 응답 처리
Dim response As String
response = http.responseText
' 응답 내용 출력
Debug.Print response
End Sub
Function EncodeImageToBase64(imagePath As String) As String
' 이미지를 base64로 인코딩하는 함수
Dim inputStream As Object
Set inputStream = CreateObject("ADODB.Stream")
inputStream.Type = 1 ' adTypeBinary
inputStream.Open
inputStream.LoadFromFile imagePath
Dim base64Stream As Object
Set base64Stream = CreateObject("MSXML2.DOMDocument").createElement("Base64Data")
base64Stream.DataType = "bin.base64"
base64Stream.nodeTypedValue = inputStream.Read()
EncodeImageToBase64 = Replace(base64Stream.Text, vbLf, "")
inputStream.Close
Set inputStream = Nothing
Set base64Stream = Nothing
End Function
도구/참조 메뉴에서 아래 2가지를 체크합니다.
-
Microsoft XML, v6.0
-
Microsoft ActiveX Data Objects 6.1 Library
VBA editor에서 F5를 눌러 실행하면 디버그 창에 차량번호가 보입니다.
디버그 창은 Ctrl+G를 누르시면 열립니다.