[00:00]
알다시피, 문서에서 데이터를 추출하는 것은
[00:01]
비즈니스에 매우 중요합니다.
[00:03]
그래서 오늘은 지금 바로
[00:05]
사용할 수 있는 최고의 무료 OCR 도구
[00:07]
4가지를 N8N에서 비교하고
[00:09]
놀라운 결과로 저를 놀라게 한 도구를 공개하겠습니다.
[00:12]
먼저 OCR이 무엇인지
[00:12]
정확히 설명하고, 각 도구를 살펴보며
[00:14]
실제 문서에서 어떻게 작동하는지 보여드리겠습니다.
[00:16]
그래프, 표, 그리고
[00:17]
손글씨 텍스트까지 테스트하고
[00:19]
N8N 내에서 설정하는 방법을
[00:20]
시연해서 오늘부터
[00:22]
이미지와 PDF에서 데이터를 추출할 수 있게 하겠습니다.
[00:24]
첫 번째 OCR 도구부터 시작해보겠습니다.
[00:26]
튜토리얼을 따라하려면
[00:28]
school.com/scrapes로 가서
[00:30]
커뮤니티 클래스룸에 들어가서
[00:31]
리소스 허브를 클릭하고
[00:32]
이 플러그 앤 플레이 템플릿 라이브러리에서
[00:33]
OCR이라고 써진 운영 템플릿으로 갑니다.
[00:36]
워크플로우 JSON을 다운로드하고
[00:38]
N8N 환경을 열어서
[00:39]
새 워크플로우를 생성하고
[00:41]
파일에서 가져오기를 하면 됩니다.
[00:43]
그러면 오늘 사용하고 테스트할
[00:44]
모든 다양한 노드들이 열리고
[00:46]
집에서도 테스트하고 싶다면
[00:48]
훨씬 쉬워집니다.
[00:50]
아니면 직접 만들 수도 있습니다.
[00:51]
오늘 정확히 무엇을 추출할지
[00:53]
빠르게 살펴보겠습니다.
[00:54]
첫 번째는 우리 웹사이트의
[00:55]
캡처본입니다.
[00:57]
그 다음은 데이터 표가 있습니다.
[00:59]
그래프와 텍스트가 모두
[01:00]
여기에 있습니다.
[01:03]
OCR이 추출해야 할
[01:05]
손글씨 샘플이 있습니다.
[01:07]
그리고 표에 있는
[01:09]
상당히 읽기 어려운 데이터 세트도
[01:10]
손글씨로 되어 있습니다.
[01:12]
신문의 오래된
[01:14]
주식 차트도 있습니다.
[01:16]
마지막으로 29페이지의
[01:17]
긴 문서가 있습니다.
[01:19]
공식 등이 포함된
[01:21]
다중 페이지 문서입니다.
[01:22]
어떤 무료 모델이 오늘
[01:25]
이런 작업을 처리할 수 있는지, 각 모델이 얼마나 좋은지
[01:27]
살펴보겠습니다.
[01:28]
충분히 명확하게 설명하지 않았다면,
[01:30]
OCR은 기본적으로 광학 문자
[01:32]
인식입니다.
[01:34]
왼쪽의 이런 문서를
[01:37]
종이 문서의 스캔본을
[01:38]
오른쪽의 이런 것으로
[01:40]
실제로 검색하고 색인할 수 있는
[01:42]
형태로 변환하는 능력입니다.
[01:44]
왼쪽의 모든 것은 물리적 스캔이고
[01:45]
오른쪽은 이것을
[01:47]
검색 가능한 문서로 변환한 OCR 도구의 출력입니다.
[01:50]
저장하고 나중에 검색할 수 있습니다.
[01:51]
예를 들어 이 표가
[01:53]
여기 이 표로 나타나는 것을 볼 수 있습니다.
[01:55]
하지만 이제는 디지털이고
[01:56]
검색이 가능해서
[01:58]
종이 문서보다 비즈니스에 훨씬 유용합니다.
[02:00]
말씀드린 바와 같이
[02:02]
광학 문자 인식은 이미지를 텍스트로 변환하거나
[02:04]
더 정확히는 텍스트의 이미지를
[02:07]
기계가 읽을 수 있는
[02:08]
편집 가능한 텍스트 데이터로 변환합니다.
[02:11]
페이지에서 보는 모양과 패턴을 가져와서
[02:13]
그것이 어떤 글자나 문자인지 추론하는 방식으로 작동합니다.
[02:15]
OCR은 모든 종류의 비즈니스에서 사용됩니다.
[02:17]
모든 종류의 비즈니스에서 사용됩니다. 여러분이
[02:19]
매일 마주치게 될 것들이죠.
[02:21]
예를 들어, 은행들은 OCR을 오랫동안
[02:23]
사용해왔으며, 현재 OCR 기술로
[02:25]
연간 200억 장 이상의 수표를
[02:27]
처리하고 있습니다. 그리고
[02:29]
영수증과 경비 관리 도구들인
[02:31]
Expensify와 QuickBooks 같은
[02:32]
서비스들도 있습니다. 이들은 OCR을 사용해
[02:34]
영수증의 모든 세부사항을 캡처합니다.
[02:36]
또한 제품 카탈로그나 가격 목록,
[02:38]
공급업체 문서를 스캔하여
[02:40]
실시간 재고 관리를 위해
[02:42]
OCR을 활용할 수 있습니다. 그리고
[02:43]
이미 언급했듯이, 종이 계약서나
[02:45]
협정서, 법적 문서, 매뉴얼을
[02:47]
검색 가능한 디지털 파일로
[02:49]
변환하는 데도 사용됩니다. OCR은
[02:51]
정말 강력한 기술입니다. 하지만 기존의
[02:53]
OCR은 손글씨처럼
[02:54]
정확도가 80% 미만으로 떨어지거나
[02:56]
텍스트와 이미지가 혼재된 복잡한 레이아웃에서
[02:58]
어려움을 겪어왔습니다. 예를 들어
[03:00]
차트가 있는 경우, 차트에서는
[03:01]
아무것도 읽어내지 못하고
[03:03]
텍스트만 읽어냅니다.
[03:04]
하지만 이제 OCR 기술은
[03:06]
특히 지난 2년 동안
[03:08]
극적으로 향상되었습니다. 오늘은
[03:09]
4가지 최고 평점을 받은 무료 OCR 도구들을
[03:12]
살펴보고 앞서 본 다양한 형식에서
[03:14]
어떻게 성능을 발휘하는지
[03:16]
보여드리겠습니다. 다양한 형식을
[03:18]
선택한 이유는 실제로 제가
[03:19]
고객들과 작업하면서 그리고
[03:21]
제 비즈니스 경험을 통해
[03:22]
자주 접하게 되는 비즈니스
[03:24]
문서들을 대표하기 때문입니다. 텍스트가
[03:25]
많은 문서들이 혼재되어 있습니다. 긴 연구 논문
[03:28]
같은 경우 여러 페이지로 된
[03:30]
문서가 있습니다. 우리는 단순히
[03:31]
하나의 것만 스캔하는 게 아니라 그래프나
[03:33]
표, 이미지 등 혼합된 콘텐츠를 원합니다.
[03:36]
또한 품질 변화도 고려해야 합니다.
[03:37]
이 모델들이 최상의 경우가 아닌
[03:38]
최악의 경우에서 어떻게 성능을 발휘하는지
[03:40]
이해하고 싶습니다. 왜냐하면 그것이
[03:42]
실제로 중요하기 때문입니다. 정말
[03:44]
읽기 어려운 손글씨나 훼손된 텍스트에서
[03:46]
얼마나 잘 성능을 발휘할 것인가 말이죠.
[03:48]
여기서는 다른 언어로 된 것은
[03:49]
없지만 동일한 원리가 적용됩니다.
[03:50]
마지막 문서에는 수학 공식들이
[03:52]
포함되어 있습니다. 그리고
[03:54]
실제 상황의 캡처를 대표하고 싶습니다.
[03:55]
스캔 대신 사진을 찍어서
[03:56]
업로드하는 경우에도 여전히
[03:58]
좋은 결과와 높은 품질 또는
[04:00]
기대되는 결과를 원합니다.
[04:02]
그래서 제가 이 모든 다양한
[04:04]
테스트 문서들을 PDF와
[04:06]
JPEG로 설정했습니다. 대부분 JPEG, 즉
[04:09]
마지막 연구 논문을 제외하고는
[04:11]
대부분 이미지입니다. 연구 논문은
[04:12]
N8N 환경 내에서 PDF로 되어 있고
[04:14]
Google Drive에서 가져오고 있습니다.
[04:15]
예를 들어, 모든 것을 비활성화하고
[04:18]
첫 번째 캡처만 실행하면 여기로 와서
[04:20]
이것이 N8N 내에 바이너리 파일로
[04:22]
저장되어 있는 것을 볼 수 있고
[04:23]
이를 확인하면 그 캡처를 볼 수 있습니다.
[04:25]
그리고 오른쪽에는
[04:26]
모든 노드들을
[04:28]
미리 구성해 놓았습니다.
[04:29]
만약 여러분이 가져오고 싶다면
[04:31]
템플릿을 가져와서 정말 빠르게 할 수 있습니다.
[04:33]
대부분이 API 호출인 모든 노드들이
[04:35]
이러한 다양한 모델들로 연결되는데
[04:37]
이들은 현재 최고의 모델들로 여겨지고 있습니다.
[04:39]
그리고 일부러 무료 모델들을 선택했으니
[04:41]
정말 쉽게 접근할 수 있습니다.
[04:42]
그리고 이 과정에서 다룰 내용은
[04:44]
종종 바이너리 데이터 파일로
[04:46]
사용할 수 없는 경우가 있어서
[04:48]
어딘가에 URL로 호스팅해야 한다는 점입니다.
[04:49]
일부 모델이나 서비스 제공업체는
[04:51]
파일을 직접 업로드하는 대신 호스팅된 이미지 URL만 허용합니다.
[04:54]
특히 API를 통해서는 더욱 그렇죠.
[04:56]
imageb를 사용해서
[04:57]
무료로 이미지를 호스팅하는 방법도 보여드릴 거예요.
[04:59]
그래서 전체 과정을
[05:01]
표준 n8n 호스트 비용을 제외하고는
[05:03]
무료로 할 수 있습니다. 이제 테스트하기 전에
[05:05]
오늘 테스트할 네 가지 모델을
[05:06]
살펴보고 제가 왜 특별히
[05:08]
이들을 선택했는지 알아보겠습니다.
[05:10]
먼저 OCR.space가 있습니다.
[05:11]
그다음 Mistral OCR이 있습니다.
[05:14]
Qwen 2.5VL과 n8n의 OCR이 있습니다.
[05:18]
이 네 가지 모델은 다양한 출처에서
[05:20]
정말 높은 평가를 받고 있습니다.
[05:22]
Get Omni.ai에서 진행한 이 연구를 포함해서 말이죠.
[05:24]
실제로 여기서 Qwen을 볼 수 있습니다.
[05:26]
2.5VL, Mistral OCR과 함께
[05:28]
다른 LLM들도 포함되어 있습니다.
[05:30]
이들은 이러한 LLM과 OCR 모델을 사용해서
[05:33]
정말 엄격한 접근 방식으로 전체 테스트를 진행했습니다.
[05:36]
문서를 가져와서 OCR 결과를 얻고
[05:37]
GPT-4o 같은 평가 모델과 비교해서
[05:39]
실제로 JSON 정확도를 결정했습니다.
[05:41]
이 튜토리얼에서는 그런 세부사항까지는
[05:43]
다루지 못하겠지만
[05:44]
실제 비즈니스 문서에서
[05:45]
이러한 다양한 모델들의 결과를
[05:47]
직접 확인해보고 어떤 것이
[05:49]
여러분의 사용 사례에 가장 적합한지
[05:51]
결정하는 데 도움을 드릴 것입니다.
[05:52]
하지만 궁극적으로 다양한 이유로
[05:54]
여러분의 사용 사례에 맞는
[05:55]
최적의 모델을 찾기 위해서는
[05:57]
이 모든 모델들을 시도해봐야 할 것입니다.
[05:58]
그럼 OCR.space로 가보면
[06:01]
무료 OCR API 키가 있습니다.
[06:04]
한 달에 최대 25,000건의 요청을
[06:07]
완전히 무료로 할 수 있습니다.
[06:08]
그리고 마지막에는 검색 가능한 PDF까지
[06:11]
출력할 수 있습니다. OCR.space는
[06:13]
꽤 오랫동안 운영되어 왔고
[06:14]
이 분야에서 정말 높은 평가를 받고 있습니다.
[06:16]
하지만 그 이상이 필요하다면
[06:17]
유료 플랜으로 이동해야 합니다.
[06:18]
그다음 Mistral OCR이 있습니다.
[06:20]
Mistral OCR은 몇 달 전에 출시되었고
[06:21]
최고 성능의 OCR 모델 중 하나로
[06:23]
많은 주목을 받고 있습니다.
[06:25]
무료 플랜의 일부로
[06:27]
OCR 모델을 사용해볼 수 있고
[06:29]
예를 들어 1,000페이지를 원한다면
[06:31]
단 1달러만 비용이 듭니다.
[06:32]
정말 매우 저렴합니다.
[06:34]
이것이 그들의 문서 AI와 OCR 모델입니다.
[06:36]
Mistral은 그래프와 차트를 읽는 능력 같은
[06:38]
인상적인 결과들을 보여왔고
[06:39]
이것도 보여드릴 예정입니다.
[06:41]
그다음 Qwen 2.5VL로 넘어가겠습니다.
[06:43]
이것은 직접 호스팅할 수도 있고
[06:44]
Open Router 같은 서비스를 사용할 수도 있습니다.
[06:46]
하지만 이것은 최근에
[06:48]
최근 몇 주 동안 OCR 분야에서
[06:50]
큰 파장을 일으키고 있는 모델로
[06:52]
수천 개의 문서로 파인튜닝되어
[06:54]
다른 많은 유료 서비스들을
[06:56]
능가하는 성능을 보이고 있습니다.
[06:58]
그리고 이것을 오픈 라우터 같은
[07:00]
서비스를 통해 무료로 이용할 수 있고
[07:01]
또는 말씀드린 것처럼 로컬에서 셀프 호스팅해서
[07:03]
무료로 사용할 수도 있습니다.
[07:05]
그리고 마지막으로 나넷은
[07:07]
허깅페이스에서 최근 7일간
[07:09]
가장 많이 사용된 모델 중 하나로
[07:11]
큰 인기를 끌고 있습니다. 정말 최신 모델이죠.
[07:13]
나넷은 다양한 소프트웨어와 연결되는
[07:15]
여러 워크플로우를 제공합니다.
[07:16]
따라서 나넷을 사용하기 위해 N8N이
[07:18]
반드시 필요한 것은 아닙니다.
[07:20]
실제로 나넷 안에서 워크플로우를 만들 수 있지만
[07:22]
해당 API를 사용할 수 있고
[07:24]
가입할 때 200달러 상당의
[07:27]
크레딧을 받아
[07:28]
무료로 시작할 수 있습니다.
[07:30]
그리고 나넷은 실제로 Qwen 2.5VL 위에
[07:32]
구축되었습니다. 특정 유형의 문서들,
[07:34]
예를 들어 금융 문서들에 대해
[07:36]
해당 모델 위에서 특별히 파인튜닝된 모델입니다.
[07:38]
그래서 이것의 성능도 확인해보겠습니다.
[07:39]
자, 이제 각각을 살펴보고
[07:40]
결과를 보여드리겠습니다.
[07:42]
캡처부터 시작해서
[07:43]
그래프, 손글씨, 신문,
[07:46]
주식 그리고 연구 논문 순으로 진행하겠습니다.
[07:47]
이제 할 일은
[07:48]
이 특정 노드들 각각을
[07:50]
여기 있는 각기 다른 채널에 연결하고
[07:52]
이들을 활성화해서 모두 동시에
[07:54]
실행하도록 하여
[07:55]
서로 비교한 결과를 볼 수 있게 하는 것입니다.
[07:57]
다양한 OCR 제공업체들을 테스트할 때,
[07:58]
특히 API를 통해서는
[08:00]
보통 두 가지 또는 세 가지 타입의
[08:02]
업로드 방법이 있습니다. 첫 번째는 어딘가에서 호스팅하고 있는
[08:05]
이미지의 URL을 보내는 것입니다.
[08:07]
하지만 보통 파일들이
[08:08]
데스크톱이나 구글 드라이브에
[08:09]
있는 경우처럼, 파일을
[08:11]
이미지나 PDF 같은 바이너리 파일로
[08:14]
직접 업로드하고 싶을 때가 있습니다.
[08:16]
대부분은 이를 허용하지만
[08:17]
모든 서비스가 그런 것은 아닙니다.
[08:19]
예를 들어, Qwen과 나넷에
[08:22]
오픈 라우터를 통해 업로드할 때
[08:23]
그리고 나넷에 직접 업로드할 때
[08:24]
이미지를 URL로 호스팅해야 합니다.
[08:26]
그리고 세 번째 방법은 실제로
[08:28]
Base64 인코딩인데, 솔직히 말해서
[08:30]
이 튜토리얼에서는 너무 복잡합니다.
[08:31]
그래서 이미지를 호스팅하는 방법과
[08:33]
특정 API에 대한 특정 URL이 필요한 경우
[08:35]
엔드포인트 또는 N8N을 통해
[08:37]
바이너리 파일로 직접 업로드하는 방법을
[08:40]
보여드리는 것에 집중하겠습니다.
[08:42]
이미지를 호스팅하고 URL로 업로드하려면,
[08:43]
그런데 모든 모델들이
[08:45]
URL 업로드를 허용합니다.
[08:46]
그래서 편의상 모든 이미지를
[08:48]
호스팅하고 싶을 수도 있는데,
[08:50]
ImageBB라는 서비스를 사용하겠습니다.
[08:51]
이것은 수동으로도 할 수 있습니다.
[08:53]
이미지를 업로드할 수 있고,
[08:55]
업로드 시작을 클릭하고
[08:57]
OCR 폴더로 가서
[08:58]
아무 이미지나 클릭하면
[09:00]
여기에 직접 업로드됩니다. 자동 삭제 안 함으로 설정하고,
[09:02]
URL을 체크해서 업로드가 되었는지 확인해보겠습니다. 올바르게 업로드되었지만
[09:03]
이것은 필요한 링크가 아니에요. 그리고
[09:05]
이것은 호스팅되는 링크가 아닙니다. 그래서
[09:06]
호스팅되는 링크가 아니에요. 해야 할 일은
[09:08]
우클릭하고 이미지를 새 탭에서 열기입니다.
[09:09]
그러면 호스팅된 URL을 얻을 수 있어요.
[09:11]
다시 n8n으로 돌아가서
[09:14]
이 HTTP 요청에서 효과적으로 수행하고 있는 작업은
[09:15]
방금 화면에서 본 것과 정확히 같은 일이지만
[09:18]
imageㆍ API를 통해 하고 있는 거예요.
[09:20]
여기에 이 URL 엔드포인트가 있습니다.
[09:21]
쿼리 매개변수 안에 API 키를 추가해야 하고
[09:24]
그것을 key라고 부르고 그 안에 키를 추가합니다.
[09:28]
그리고 데이터라고 불리는
[09:30]
n8n 바이너리 파일을 업로드하고 있어요.
[09:31]
보시는 바와 같이요. 그리고 그것이 반환할 것은
[09:34]
효과적으로 우리가 OCR 도구에 전달할 수 있는
[09:35]
URL입니다. 그래서
[09:38]
이것이 우리가 사용할 방법입니다
[09:40]
Qwen 2.5VL과 nanoets 모델에 대해.
[09:41]
그리고 이 HTTP 요청들 안에서 볼 수 있듯이
[09:44]
이 엔드포인트에서 우리는
[09:46]
효과적으로 다시 헤더를 얻었고
[09:48]
여기에 인증이 있고
[09:49]
나중에 보여드릴 헤더가 있습니다.
[09:51]
그리고 우리가 하고 있는 모든 일은
[09:53]
이미지 URL을 전달하는 것이고
[09:54]
그것은 해당 텍스트와 함께 돌아올 것입니다
[09:56]
업로드하고 있는 이미지에서 추출된.
[09:58]
업로드하고 있는 이미지에서 추출된 텍스트요.
[10:00]
Qwen 2.5VL도 마찬가지로
[10:01]
이를 위해 Open Router를 사용하고 있습니다.
[10:04]
그리고 우리가 하고 있는 것은 다시
[10:06]
Open Router로 보내는 것이고
[10:08]
Open Router JSON에서 모델을 지정하고 있습니다.
[10:10]
여기서요. 그리고 우리가 할 일은
[10:11]
이것을 동적으로 만드는 것입니다. 그래서
[10:14]
이미지 URL 안에서 이것을 가져오게 만드는 거예요.
[10:16]
그리고 그것은 맨 아래에 떨어졌네요.
[10:17]
그래서 올려보겠습니다. 그리고
[10:19]
URL을 매개변수로 넣고 있어요.
[10:21]
다시, 그것은 URL로 호스팅하고 있습니다
[10:23]
이전에 바이너리 파일로 가지고 있었던 것을.
[10:25]
하지만 Mistral OCR과
[10:27]
OCR.space는 바이너리 파일을 직접 업로드할 수 있게 해줍니다.
[10:29]
바이너리 파일을 직접요. 그래서
[10:31]
OCR space에서 폼 데이터에
[10:34]
몇 가지 다른 매개변수가 있습니다.
[10:36]
JPG 파일 타입입니다. 영어로 변환하고 싶고
[10:39]
검색 가능한 PDF를 만들고 싶어요
[10:40]
출력 끝에서 볼 수 있을 거예요.
[10:42]
그리고 실제로 입력하고 있다고 지정하고 있습니다
[10:44]
바이너리 타입의 데이터를.
[10:45]
Mistral도 정확히 같지만
[10:47]
Mistral은 요청하는 방식에서 약간 더 복잡합니다.
[10:49]
요청하는 방식에서요. 먼저 파일을
[10:51]
Mistral에 업로드해야 합니다.
[10:52]
그다음 파일의 URL을 검색해야 하고
[10:54]
그다음 업로드된 파일 URL에서
[10:57]
OCR을 수행해야 합니다.
[10:59]
그래서 3단계 프로세스입니다.
[11:01]
하지만 다시 여기서 이 엔드포인트를 사용하고 있는 것을 볼 수 있어요.
[11:03]
우리는 Mistral OCR의 헤더를 전달하고 있고
[11:05]
표준 API 키이며
[11:07]
OCR 기능을 수행하라고 요청하고
[11:09]
업로드해야 하는 데이터를 보여주고 있습니다.
[11:12]
그래서 우리가 할 일은 네 개 모두를 실행하고
[11:14]
연결해서 캡차에서 어떻게 수행하는지 보고
[11:15]
그다음 다른 각각의 문서들도 살펴볼 거예요.
[11:18]
그래서 다시 상기시켜드리자면
[11:20]
캡차는 이렇게 생겼습니다. CL I
[11:21]
라고 되어 있죠.
[11:23]
질입니다. 이것은 대부분의 모델이
[11:24]
이해하기에 꽤 직관적일 것이고
[11:26]
이것이 바로 사람들이
[11:28]
봇이 웹사이트의 캡차를 풀어버리는 것을
[11:29]
걱정하는 이유입니다. 캡차는 오직
[11:31]
인간만이 읽을 수 있도록 설계된
[11:33]
보안 메커니즘이니까요. 먼저
[11:35]
OCR.space 결과를 살펴보면
[11:37]
여기에 여러 패스 결과가 있고 실제로
[11:39]
패스된 텍스트가 이 필드 안에
[11:40]
나와야 하는데요. 보시다시피
[11:42]
작동하지 않았다는 게 명확합니다. 왜냐하면
[11:44]
실제로는 이 검색 가능한 PDF를 출력했거든요
[11:46]
여기서 바로 열어볼 수 있는데
[11:48]
실제로 이미지는 있지만 만약 우리가
[11:50]
C 같은 문자를 검색해보면
[11:52]
실제로는 아무것도 나오지 않습니다
[11:54]
이게 이미지라는 걸 이해하지 못했고
[11:55]
실제로 이미지를 표현하는 첫 번째 단계에서
[11:57]
실패했습니다. Mistral OCR을
[11:58]
살펴보겠습니다. 이미지에 대해
[12:00]
OCR을 검색하거나 수행하는
[12:01]
마지막 것이 될 것입니다.
[12:03]
그리고 우리가 얻은 것은 효과적으로
[12:05]
실제로 바이너리 섹션으로 가보면
[12:08]
출력 형식인데, 이것은
[12:10]
JSON을 출력하고 있습니다. 왜냐하면
[12:12]
거기에 텍스트가 있다는 걸 인식했고
[12:13]
# CIZ라는 마크다운을 주었는데
[12:15]
이미지에서 추측할 수 있듯이
[12:18]
실제로는 틀렸습니다.
[12:20]
그래서 거기서는 특별히 잘하지 못했네요
[12:21]
이것을 다시 실행하면 다른 때에
[12:24]
실제로 더 나은 성능을 낼지
[12:25]
궁금합니다. 다시 view로 들어가보면
[12:27]
# cisiz로 이해한 것 같네요. 그래서
[12:30]
Mistral이나 OCR.space에서는 첫 시도가
[12:32]
별로 좋지 않았습니다. 그리고 OCR.space는 여전히
[12:34]
거기에 검색할 텍스트가 있다는 걸
[12:36]
이해하지 못했습니다. 그럼 Quen 모델을
[12:38]
살펴보고 더 나은 성능을 보였는지
[12:40]
확인해봅시다. 그런데
[12:42]
이런 캡차들은 컴퓨터가 읽기 어렵게
[12:43]
설계되었습니다. 왜냐하면 그렇지 않으면
[12:45]
많은 봇들이 그것들을 읽어버리기
[12:47]
때문입니다. 이것은 이미지의 텍스트가
[12:49]
chis, C-H-I-Z라고 말하는데, 이것도
[12:52]
완전히 맞지는 않지만 문자들로부터
[12:53]
그것을 어떻게 추론했는지 볼 수 있고
[12:55]
그것이 양식화되거나 장식적인 텍스트로
[12:57]
보인다고 말합니다. Nanet이 어떻게
[12:59]
수행했는지 살펴보겠습니다. 그리고 다시
[13:01]
그것도 실패했습니다. 원시 텍스트가
[13:04]
실제로는 그냥 TZ라고 말했는데 우리가 명확히
[13:06]
볼 수 있듯이 TZ가 아닙니다. 캡차에서는
[13:08]
모든 것들이 실패했습니다. 하지만 다른 것들에서는
[13:10]
이것들이 훨씬 더 나은 성능을 보일 것입니다.
[13:12]
하지만 실제로 오늘날에도 여전히
[13:13]
완벽하지 않다는 걸 볼 수 있습니다. 다음으로 테스트할
[13:15]
샘플은 실제로 인간의 눈으로도 매우
[13:17]
읽기 어렵습니다. 여기 확대해서 보시면
[13:19]
효과적으로 페이지에 몇 개의 표가 있는 것 같은데
[13:22]
명백히 사진이 좋지 않고
[13:24]
조명이 나쁘고, 읽기 어렵고 또한
[13:26]
회전되어 있어서 더욱
[13:28]
어렵습니다. 그리고 우리는 그것을
[13:30]
각각의 다른 OCR 도구들로 실행했습니다.
[13:32]
OCR.space가 있습니다. 이것을
[13:33]
다시 PDF로 열어보겠습니다. 하지만 만약 제가
[13:35]
그것의 어떤 부분이라도 검색해보면
[13:37]
실제로는 그냥 이미지로 반환했고
[13:39]
텍스트는 하나도 통과시키지 않았습니다.
[13:40]
이것이 두 번째인데 실제로 JSON
[13:42]
결과를 보면 텍스트가 전혀 통과되지 않았습니다
[13:44]
이 도구를 잘못 사용하고 있는 건지
[13:45]
아니면 이 샘플들에서 아예 작동하지 않는 건지
[13:47]
모르겠네요. 다음은 Mistral입니다.
[13:49]
이것도 JSON으로 출력했습니다.
[13:51]
마크다운을 보시면
[13:53]
실제로 상당한 양의 텍스트가 있고
[13:55]
실제로 이 텍스트 안에
[13:56]
테이블이 있다는 것도 이해했습니다.
[13:58]
모든 줄을 일일이 확인해서
[13:59]
정확한지 검사하지는 않겠습니다.
[14:01]
이건 잠재적인 출력의 샘플만
[14:02]
보여주는 것이니까요.
[14:05]
특정 문서 유형에 대해 테스트해봐야 합니다.
[14:06]
여기 '어류 및 야생동물 관리 관행'
[14:08]
카운티 보존 책임자가 승인한
[14:09]
계획에 따라'라고 되어 있네요.
[14:11]
확대해보면 실제로 첫 번째 텍스트가
[14:13]
'어류 및 야생동물 관리 관행
[14:14]
카운티 보존 책임자가 승인한
[14:16]
계획에 따라'인 것을 확인할 수 있습니다.
[14:17]
그 다음에 '제5조, 구역, 마당,
[14:19]
높이 요구사항'이 있고
[14:21]
여기 '제5조, 구역, 마당
[14:22]
아, 죄송합니다. 높이 요구사항'이 있습니다.
[14:25]
저보다 더 정확하게 인식했네요.
[14:26]
이걸 마크다운에서 제목으로
[14:27]
표시한 것을 볼 수 있습니다.
[14:30]
이것이 H2 제목이라는 것을
[14:32]
이해했습니다. 그리고 다음 섹션인
[14:34]
아래의 섹션 V는 H3 제목입니다.
[14:37]
이렇게 마크다운으로 변환했다는 것은
[14:38]
이를 디지털 문서로
[14:40]
변환할 수 있다는 의미입니다.
[14:41]
위의 예시에서 본 것과 비슷하게
[14:44]
효과적으로 이런 마크다운
[14:45]
구조를 가질 수 있습니다.
[14:47]
테이블은 이렇게 나타나고
[14:48]
헤더는 이렇게 나타납니다.
[14:50]
입력된 문서와는 다르게 말이죠.
[14:52]
정말 명확합니다. Mistral이
[14:53]
정말 잘 했네요.
[14:55]
Qwen을 살펴보겠습니다.
[14:56]
여기 JSON을 보면 다시
[14:59]
'어류 야생동물 관리 관행
[15:00]
계획 제5조에 따라'라고 되어 있고
[15:02]
여기서도 마크다운 별표를 사용해서
[15:04]
굵은 글씨라고 인식하거나
[15:06]
다른 제목들로 만들었습니다.
[15:08]
Mistral처럼 이것이 H2 헤더라는 것을
[15:10]
완전히 이해하지는 못했지만
[15:12]
아래 테이블과 다양한
[15:13]
정보들을 잘 인식한 것 같습니다.
[15:15]
이것도 정말 잘 작동했네요.
[15:16]
그리고 Nannets는 실제로 여기 아래에
[15:20]
실제 단어들로 추출했지만
[15:23]
원시 텍스트도 있습니다. 하지만
[15:25]
실제로는 여기 원시 텍스트를
[15:26]
제대로 이해하지 못하고
[15:28]
임의의 문자들이 함께 나온 것 같습니다.
[15:30]
Nanet이 요구사항을 제대로
[15:32]
이해하지 못한 것 같네요.
[15:34]
Mistral과 Qwen은 정말 잘 작동했지만
[15:36]
Nannets와 OCR.space는
[15:38]
이 예시에서는 그렇지 못했습니다.
[15:39]
나머지들을 빠르게 살펴보면
[15:41]
이것들이 어떻게 작동하는지 알 수 있고
[15:42]
직접 테스트해볼 수도 있습니다.
[15:45]
여기 손글씨 2 예제가 있는데
[15:47]
이것은 효과적으로 다양한
[15:48]
측정값과 시간들의 테이블이었습니다.
[15:52]
3.75마일, 7.5, 11.25, 15가 있고
[15:53]
아래에는 다양한 측정값들이
[15:55]
있습니다. 이것은 테이블 구조로 되어 있어서
[15:56]
포맷하기가 어려웠습니다. 그래서 실제로 이 문서 하나를
[15:58]
Nanet에 직접 업로드해서 웹사이트를 통해 어떻게 출력되는지
[16:00]
테스트해봤는데,
[16:01]
결과에 매우 놀랐습니다.
[16:03]
결과가 정말 인상적이었거든요.
[16:05]
여기에 업로드했는데
[16:06]
보시면 Nanet의 추출 결과가
[16:08]
3.75마일, 7.5, 11.25, 15로 나왔고
[16:11]
그리고 아래쪽 텍스트 부분에서도
[16:14]
이 부분이 읽기 어려운데도
[16:15]
696, 이건 아마 757로 읽혔고
[16:18]
정말 멋진 점은 결과를
[16:20]
나란히 비교해서 볼 수 있다는 것입니다.
[16:22]
모든 걸 완벽하게 이해하지는 못했지만
[16:24]
여기 아래 부분에서
[16:25]
88, 859로 추정되는 부분에
[16:28]
기호를 넣어놨습니다.
[16:30]
하지만 이것만으로도 작업의 90%를 줄여주고
[16:32]
나란히 비교하면서
[16:33]
차이점을 쉽게 찾을 수 있게 해줍니다.
[16:35]
특히 이렇게 복잡하고
[16:37]
포맷이 이해하기 어려운 경우에는 더욱 그렇죠.
[16:40]
이런 OCR 모델들에서 자주 일어나는 일은
[16:42]
특정 템플릿에 대해 훈련된 OCR 모델이
[16:44]
읽는 방법을 학습한다는 것입니다.
[16:46]
예를 들어, 이런 문서를 읽을 때
[16:47]
이 특정 템플릿을 더 잘 이해하게 됩니다.
[16:49]
컬럼명이 무엇인지 등을 파악했기 때문이죠.
[16:51]
따라서 대량으로 여러 번 업로드할 수 있습니다.
[16:52]
OCR.space도 이번 테스트에서
[16:54]
처음으로 좋은 성능을 보였고
[16:57]
여기 있는 다양한 라인들을 추출해서
[16:58]
과거 텍스트로 라벨링했지만
[17:01]
모든 과거 텍스트보다는
[17:02]
훨씬 짧게 멈춰서
[17:05]
첫 번째 라인만 식별한 것 같습니다.
[17:07]
3.75m, 7.530은 나왔지만
[17:08]
구조에 대한 기본적인 이해가 부족합니다.
[17:10]
여전히 Mistral OCR 같은 것보다는
[17:13]
성능이 떨어지네요.
[17:15]
결과를 빠르게 살펴보겠습니다.
[17:16]
보시면 모든 다양한 결과들이
[17:17]
정말 깔끔하게 분류되어 있습니다.
[17:19]
이것을 마크다운 변환기에 붙여넣으면
[17:21]
여기 있는 것과 정확히 같은 테이블을
[17:23]
디지털 포맷으로 볼 수 있을 것입니다.
[17:24]
OCR과 이미 Nanet 결과도 봤고
[17:26]
이제 그래프가 포함된 이미지를
[17:28]
어떻게 처리하는지 살펴보겠습니다.
[17:30]
결과를 빠르게 살펴본 바로는
[17:32]
그래프를 처리할 때
[17:34]
모든 모델이 특별히 좋은 성능을
[17:36]
보여주지 못했습니다.
[17:37]
OCR.space에서 다시 일부 텍스트를 얻었지만
[17:39]
그 텍스트는 여기서 읽기 쉬운 부분이었고
[17:41]
어떤 모델에게도 어렵지 않았어야 할 부분입니다.
[17:43]
심지어 그래프와 이미지의 맥락을
[17:44]
식별할 수 있다고 자부하는 Mistral도
[17:46]
아래쪽 텍스트 외에는
[17:48]
아무것도 추출하지 못했습니다.
[17:49]
보시면 수동 소형 24비트 매개변수
[17:52]
오픈소스 버전이라고 나와있고
[17:54]
그게 전부입니다. 그리고 아래쪽 텍스트에서도
[17:56]
JSON 요청 내부에서도 그게 전부입니다.
[17:58]
Mistral에는 이를 위한 특별한 매개변수가 있는데
[18:00]
BBox 주석 포맷이라고 하며
[18:02]
업로드된 이미지 안에 이미지가 있거나
[18:04]
이미지 내부에 이미지가 있을 때
[18:07]
이를 식별하는 기능입니다.
[18:10]
이는 이미지 안에 이미지가 있을 때
[18:11]
식별하는 것에 관한 것입니다.
[18:14]
업로드된 이미지나
[18:16]
이미지 내부의 이미지를 식별할 때
[18:18]
PDF 내부에 있는 이미지를 실제로 인식하고
[18:20]
해당 이미지를 영어로 설명해야 합니다.
[18:22]
이러한 매개변수들을 설정했지만
[18:24]
어떤 이유인지 API를 통해 인식하지 못했습니다.
[18:25]
따라서 이 부분에서 어려움을 겪을 수 있습니다.
[18:27]
Quen과 Nanets도 마찬가지입니다.
[18:28]
둘 다 이미지를 인식하지 못했습니다.
[18:30]
이런 경우에는 차라리
[18:32]
LLM을 사용하는 것이 더 나을 수 있습니다.
[18:33]
별도의 영상에서
[18:35]
OCR과 LLM의 비전 모델을 통한 OCR 중
[18:38]
어느 것이 더 나은지 다룰 예정입니다.
[18:40]
하지만 지금은 차트와 같은 경우
[18:42]
해당 파일들을 MLM에 직접 업로드하여
[18:43]
차트 자체에 대한 피드백을 받는 것이
[18:45]
대량 문서 업로드에 특화된
[18:47]
OCR 도구를 사용하는 것보다 낫습니다.
[18:49]
마지막으로 연구 논문을 살펴보겠습니다.
[18:50]
이제 연구 논문만 다뤄보겠는데
[18:52]
이는 다른 것들과 달리
[18:53]
이미지가 아닌 PDF 형태의 연구 논문입니다.
[18:55]
이것은 실제로 OCR.space의 경우
[18:57]
PDF 문서를 받도록 설정하지 않았지만
[18:59]
다른 모든 도구들은 설정했습니다.
[19:01]
따라서 Mistl 하위에
[19:02]
PDF 문서를 허용하는 또 다른 분기가 있으며
[19:04]
Mistl만 PDF 문서를 받도록 설정했습니다.
[19:06]
Quen과 nanets는 이미지만 허용하지만
[19:08]
문서도 받도록 설정하기는 매우 쉽습니다.
[19:10]
안의 매개변수를 변경하기만 하면 됩니다.
[19:12]
예를 들어 여기서
[19:14]
이미지 타입을 다른 것으로 변경하면 됩니다.
[19:16]
이 모든 내용은 오픈 라우터 등의
[19:18]
문서에서 확인할 수 있습니다.
[19:20]
하지만 연구 논문이
[19:21]
어떤 모습인지 다시 한번 보겠습니다.
[19:24]
이것은 더 복잡하고
[19:25]
다른 비즈니스 사용 사례와 더 유사한데
[19:27]
실제로 연구 논문이나 법률 문서는
[19:29]
종종 이상한 문자들을 포함하며
[19:30]
수식뿐만 아니라
[19:32]
다중 페이지도 비즈니스에서
[19:33]
매우 중요한 경우가 많습니다.
[19:35]
예를 들어 Mistl을 통해
[19:37]
이것이 어떻게 나타나는지
[19:39]
보여드리고 싶었습니다.
[19:40]
다시 OCR 출력을 받았고
[19:42]
파일로도 가져갈 수 있지만
[19:43]
그것은 단순히 업로드된 파일입니다.
[19:46]
따라서 바이너리 데이터를 로드하고
[19:48]
실제로 할 수 있는 것은
[19:48]
이 데이터를 가져와서
[19:50]
다양한 인덱스로 분할되었음을 볼 수 있습니다.
[19:53]
첫 번째 부분에는 이미지가 없다고 하며
[19:54]
이것이 마크다운 텍스트입니다.
[19:56]
마크다운에서 PDF로 변환할 수 있고
[19:57]
그것을 여기에 복사해보겠습니다.
[19:59]
더 쉬운 형식으로 텍스트를 효과적으로 볼 수 있습니다.
[20:02]
그렇게 쉬워 보이지는 않지만요.
[20:03]
세타 함수를 계산하는 부분이 있고
[20:06]
돌아가서 여기와 직접 비교해보면
[20:09]
이미지였던 모든 다른 텍스트들을
[20:12]
분해하기 시작할 수 있고
[20:14]
이제 여기서도 사용할 수 있습니다.
[20:15]
모든 올바른 줄 바꿈 등을 넣으면
[20:17]
이 모든 텍스트가 배치되는 것을 보기 시작할 것입니다.
[20:20]
더 복잡한 부분들은
[20:22]
f RN이 r로 향하게 하는 것이고
[20:24]
그것을 인식하기 시작했음을 볼 수 있습니다.
[20:26]
실제로 이러한 수학 기호들을 얻었는데
[20:28]
분리하면 실제로 마크다운으로
[20:31]
변환될지 궁금합니다.
[20:33]
실제로 시도해보았고
[20:34]
그곳에 수학 기호가 있다는 것을 이해했지만
[20:36]
그 수학 기호들을 완전히 추출하지는 못했습니다.
[20:38]
그리고 그것이 마크다운에서
[20:40]
그것들에 접근하는 방법에 대한
[20:41]
제 이해 부족인지
[20:43]
아니면 단순히 올바르게
[20:44]
이해하지 못한 것인지 모르겠습니다.
[20:46]
모든 정보를 매우 명확하게
[20:48]
인식했음을 볼 수 있습니다.
[20:49]
단지 실제 수학 기호와
[20:51]
약간 어려움을 겪고 있을 뿐입니다.
[20:53]
하지만 여기 결과로 돌아가서
[20:55]
보면 수백 개의 마크다운 페이지가 있고
[20:57]
이를 자동화하여 실제로
[20:59]
디지털 문서로 변환할 수 있으며
[21:01]
입력한 이미지와 달리
[21:03]
검색 가능한 문서가 됩니다.
[21:05]
이것이 가장 강력한
[21:06]
4가지 무료 오픈소스
[21:08]
또는 종종 오픈소스인
[21:11]
OCR 템플릿 또는 모델과
[21:14]
N8N 내에서 연결하는 방법에 대한
[21:16]
좋은 아이디어를 제공했기를 바랍니다.
[21:18]
이 영상과 함께 작업하고 싶다면
[21:20]
말씀드린 대로 커뮤니티에 들어가서
[21:21]
템플릿을 가져가세요.
[21:23]
다음 영상에서 다룰 내용은
[21:25]
LLM 대 OCR입니다.
[21:27]
그리고 OCR에 관한 다음 영상은
[21:29]
LLM 대 OCR과 언제 어떤 것을 사용해야 하는지에 관한 것입니다.
[21:32]
LLM이 이제 매우 강력해져서
[21:33]
실제로 많은 비전 기능이
[21:35]
내장되어 있기 때문입니다.
[21:36]
그렇다면 실제로 OCR을 전혀 사용하지 않고
[21:38]
컨텍스트가 내장된 LLM을
[21:39]
사용하는 것으로 되돌아가야 할까요?
[21:41]
시청해 주셔서 감사합니다.
[21:42]
콘텐츠가 마음에 드셨다면 좋아요와 구독 부탁드립니다.