
OCR 성능 끌어올리기 마지막 내용 입니다.
이전에는 easyOCR 라이브러리로 확인했지만,
이번꺼는 PaddleOCR 적용 후 비교해보도록 하겠습니다.
먼저 아무것도 작업 하지 않은

이 이미지를 활용해보겠습니다.
먼저 적용 코드는
import cv2
from paddleocr import PaddleOCR
paocr = PaddleOCR(lang = 'korean')
results = paocr.ocr(img, cls = True)
text_only = [line[1][0] for res in results for line in res]
print(text_only)
와 같습니다.
그냥 results 값만 출력하게 되면 신뢰도 값도 같이 뜨게 되는데,
여기서는 텍스트만 추출 하기 위해서 위에 text_only 코드 추가했습니다.
이제 비교 결과를 봐보면,
easyOCR :
['EaATS위', '{어트;트', 'WIVNcostcocokr', '(주)', '고스트코', '코리 아', '상봉 손', '107-81-63829', '대 표자: 조민 수', '충항 주', "망우로'", '936', 'T)1899-9900)', '회원', '번호: 000000000063', '11', '판 매', '이 0 ^ 이메리가노', '577445', '2', '1000', '2,0))', '1', '(Sub-총상 품수', ':', '2)', '200)', '맨 시', '시', '1,813', '부', '7 어', '182', '합', '겨', '2,00)', '든', '10,0Cs', '현금( 소득공제) : 010***1234', '승신 ! 호; 122986911', '[V]', '승민 끝 백', '2000', '현 금근 수증', '문의', '8126', '산문', '8,0C~']
paddleOCR :
['5', "Wiv'wcostcocoKr", '주코스트코', '코리아', '상봉혼', '107-81-63829', '대표자:조민수', '중랑구', '망우로', ':36', 'T1899-9900', '회원', '번호:', '000000000066', '[1', '판매', '_스', '아메리카노', '577445', '12', '1000', '2', '00', 'T', 'Sub-총상품수', ':', '2', '2000', '먼서', '|', '과서', '1813', '부기서', '182', '합겨', '2', '000', '현금', '10', 'OCC', '금소득공제:', '010<<1234', '승인난호:', '122986911', '[V]', '승인클액:', '2000', '현금공수증', '문의', '2126', '잔돈', '8', 'OC3']
확실히 소문대로 잘 나오는게 보입니다.
좀 괜찮았던거 몇개 추려서 비교해보도록 하겠습니다.

GrayScale 변환 후, CLAHE 거친 이미지 입니다.
결과값 함 봐보면,
easyOCR :
['K44Z:위', '1S무;U트', "WI'NGostco.cokr", '(주)', '코스트린', '코리아', '상봉 손', '107-81-63829', '대표자: 조민 수', '중항다', '망우로', '336', 'T)1899-9900)', '회원', '번호: 000000000063', '11', '판매', '00 스아메리카노', '577445', '2', '1000', '2,0J)', '1', '(Sub-총상 품수', '2) 200)', '맨 시', '서', '1,813', '7', '서', '18z', '"', '곁', '2,00)', '10,oCs', '현금( 소득공제): 010***1234', '승인 문 호; 122986911', '[V]', '승민 끝 백', '2000', '현 금증 수증', '문의', '8126', '잔돈', '8,oCs']
paddleOCR :
['5so!', '-', "Wiv'wcostcocoK?", '주코스트코', '코리아', '상봉혼', '107-81-63829', '대표자:조민수', '중당대시', '망우로', 'G136', 'T1899', '-9900', '회원', '번호:', '00000000006', '[1', '판매', '아0', '스', '아메리카노', '577445', '2', '1000', '2', '00:', 'Sub-총상품수:', '2', '2000', '먼서', '과서', '1813', '부가서', '1E2', '합겨', '2', '000', '현금', '10', 'OC6', '현', '금소득공제:', '01O***', '1234', '승인한호:', '122986911', '[V]', '승인금액:', '2000', '현금공수증', '문의', '126', '진돈', '8', 'OCC']
와 같습니다.

이제는 그림자와 배경 제거 후, CLAHE 거친 이미지 입니다.
easyOCR :
['또C5Z{위', '{내귀o트교E', 'wIV ,costcocokr', '(주)', '고스트코', '코리 아', '상 봉 손', '107-81-63829', '대 표자: 조민 수', '충항 주 망우로', '236', 'T)1899-9900)', '회원', '반호: 000000000063', '11', '판 매', '이 0 스 이메리가노', '577445', '2', '1000', '2,0))', '1', '(Sub-상 ;수', '2)', '200)', '맨', '부', '셋', '1,813', '1t2', '합', '겨', '2,00J', '근', '10,oCs', '금( 소득공제) : 010***1234', '헌', '민', 'J', '호', '122986911', '[V]', '승민 끝 백', '2(()0', '헌 금근 수증', '문의', '8126', '돈', '8,0Cs']
paddleOCR :
["Wiv'ngostcocokr", "'주코스트", '코리아', '상병혼', '도', '107-81-63829', "대표자'조", '3민수', '중랑부한', '망우로', 'S36', 'T1899', '-9900', '회원', '번호:', 'O00000000O6!', '[]', '판매', '아0', '아메리카노', '577445', '2', '1000', '2', '003', 'I', '[Sub-총상흡수', ':', '2]', '2000', '시', '과시', '1813', '부그서', '1E2', '합겨', '2', '003', '현는', '10', 'OCS', "현금'소득공", '제:', '010***1234', '승 인산호:', '122986911', '[V]', '승인늘액:', '2000', '현금연수층', '문의', '2126', '잔는', '8 oce']
각각의 디테일한 비교는
이전 포스팅 내용과 겹치기 때문에,
따로 하지 않겠습니다.
다만, 한가지 확신할 수 있는건 easyOCR 보다 paddleOCR이
한글 인식에 있어서 좀 더 좋은 성능을 내고 있다는 것입니다.
그리고 다른것들과 비교해서,
paddleOCR이 더 경량화 되었다는 것으로 밀고 있습니다.
이는, 파인튜닝에 더 유리하다는 것을 뜻합니다.
당분간은 딴거 때문에 바빠서 일단은 여기서 마무리 짓지만,
멀지 않은 시일 내에
파인튜닝 내용으로 돌아오도록 하겠습니다.
감사합니당 ~ 🦾