푸터 콘텐츠로 바로가기
바코드 도구

딥러닝을 활용한 QR 코드 인식 이해 방법

QR(Quick Response) 코드는 원활한 데이터 공유 및 정보 검색을 가능하게 하며 디지털 생활의 필수적인 부분이 되었습니다. 이미지에서 QR 코드를 인식하는 것은 인공지능의 하위 분야인 심층 학습의 유용한 적용 사례입니다. 이 글에서는 .NET/C# 환경에서 딥러닝을 사용하여 QR 코드 인식 시스템을 구축하는 과정을 안내해 드리겠습니다.

심층 학습을 통한 QR 코드 인식 이해하기

머신러닝의 한 갈래인 심층 학습은 데이터로부터 복잡한 패턴을 학습하도록 신경망을 훈련하는 것입니다. QR 코드 인식의 맥락에서 심층 학습 모델은 다양한 크기, 방향 및 조건을 가진 이미지에서 QR 코드를 식별하고 해독하도록 훈련될 수 있습니다. 컨볼루션 신경망(CNN)은 복잡한 시각적 특성을 포착할 수 있기 때문에 QR 코드 인식과 같은 이미지 기반 작업에 선호되는 선택입니다.

이 글에서는 모델 훈련을 위해 ML.NET Model Builder를 사용할 것입니다.

ML.NET 모델 빌더

Model Builder는 .NET/C#에서 머신러닝 모델 구축을 위한 ML.NET 프레임워크의 일부로 마이크로소프트가 제공하는 강력한 도구입니다. 이는 심층적인 머신러닝 알고리즘 지식이나 광범위한 코딩 전문지식 없이도 커스텀 머신러닝 모델을 쉽게 만들고 가속화합니다. 모델 빌더는 사용자 친화적이고 접근성이 뛰어나며, 애플리케이션에서 머신러닝의 기능을 활용하려는 개발자들에게 훌륭한 도구입니다. 모델 빌더는 AutoML을 지원하여 자동으로 다양한 머신러닝 알고리즘과 설정을 탐색하여 시나리오에 가장 적합한 알고리즘을 찾을 수 있도록 도와줍니다.

QR 코드 인식 모델 훈련

모델 빌더를 사용한 QR 코드 인식 모델 훈련은 모델 생성 및 훈련 과정을 안내하는 일련의 단계로 진행됩니다. 이 단계별 가이드에서는 .NET/C#의 모델 빌더를 사용하여 QR 코드 모델을 훈련하는 각 단계를 안내합니다.

1단계: 환경 설정

구현에 들어가기 전에 다음 필수 사항을 확인하세요:

  • Visual Studio: .NET 개발을 위한 다양한 통합 개발 환경(IDE)인 Visual Studio를 다운로드하고 설치하세요.
  • 모델 빌더: ML.NET 모델 빌더를 여기를 클릭하여 다운로드할 수 있습니다.

2단계: 데이터 준비

모델 훈련을 위해 QR 코드 이미지를 준비해야 합니다. Kaggle 또는 Roboflow에서 QR 코드 이미지를 얻을 수 있습니다. 이 예시에서는 Roboflow에서 QR 코드 이미지를 다운로드했습니다.

3단계: 모델 빌더 열기

Visual Studio 프로젝트를 엽니다.

프로젝트를 우클릭 > 추가 > 머신러닝 모델....

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 1

다음 창이 나타납니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 2

모델 이름을 입력하고 추가 버튼을 클릭하십시오. 다음 창이 다음과 같이 나타납니다:

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 3

스크롤하여 컴퓨터 비전에서 '객체 감지'를 찾으세요.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 4

4단계: 훈련 환경 선택

객체 감지를 선택합니다. 우리는 주어진 데이터셋에서 QR 코드를 감지해야 합니다. 선호에 따라 로컬 또는 Azure를 선택합니다. 이 예시에서는 로컬을 선택합니다.

로컬을 클릭하면 다음 창이 나타납니다:

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 5

선택에 따라 로컬 CPU나 GPU를 선택하세요. Azure도 선택할 수 있습니다. 이를 위해서는 활성 Azure 구독이 필요합니다. 테스트 환경을 선택한 후, 다음 버튼을 클릭하십시오. 다음 창이 나타납니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 6

단계 5: 데이터 선택

데이터 선택은 학습 과정에서 가장 중요한 부분입니다. 앞서 언급했듯이, 저는 Robo Flow에서 데이터를 받을 것입니다. RoboFlow를 열고, QR 코드를 검색합니다. 데이터에는 흰색 QR 코드가 있거나 많은 로컬 특징이 있을 수 있습니다. 이 튜토리얼을 위해 QR 검출 컴퓨터 비전 데이터셋을 사용하고 있습니다. 형식을 선택하여 데이터를 다운로드합니다. 이 데이터를 다운로드하기 위해 COCO 형식을 선택했으며, 이 형식은 데이터 전처리 및 이미지 인식을 위해 추가적으로 사용됩니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 7

이제 데이터를 얻었으니, Visual Studio로 돌아가 보겠습니다. 위에서 다운로드한 COCO 파일의 입력 경로를 선택합니다. Vott를 선택할 수도 있지만, 이를 위해서는 데이터를 위한 Vott 파일을 생성해야 합니다. 다음 창이 나타납니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 8

이제 다음 단계 버튼을 클릭하고 학습 탭으로 이동합니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 9

단계 6: QR 코드 검출 모델 학습

이제 학습을 시작하려면 시작 모델 학습을 클릭합니다. 모델 빌더는 자동으로 이진 이미지를 변환하고 원하는 신경망을 사용합니다. 아무 것도 지정할 필요가 없습니다. 모델 빌더의 가장 큰 장점은 최소한의 딥러닝 배경을 가진 개발자도 모델을 학습, 테스트, 활용할 수 있다는 것입니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 10

모델 빌더는 지정된 데이터셋으로 모델을 학습하고 학습 진행을 표시합니다. 위의 학습은 시스템에 따라 시간이 걸립니다. 모델은 모든 QR 코드를 하나씩 학습하고 그 특징을 학습할 것입니다. 훈련이 완료된 후에는 테스트 QR 코드 이미지를 모델에 전달하여 모델을 테스트할 수 있습니다.

단계 7: 모델 평가

훈련 후, 모델 빌더는 검증 데이터에서 모델의 성능을 평가합니다.

정확도, 정밀도, 재현율, F1-스코어 등 평가 척도를 볼 수 있습니다. 이 척도들은 모델이 얼마나 잘 수행하고 있는지를 평가합니다.

단계 8: 활용

이제 모델이 학습되고 QR 코드 검출기가 준비되었으니, 모델을 사용하여 코드를 검출한 다음 검출된 QR 코드를 디코딩해야 합니다. 이 모델은 주어진 입력에 빠른 응답 코드가 있는지만 확인합니다. 이는 QR 코드를 디코딩하지 않습니다. QR 코드 디코딩을 위해서는 타사 라이브러리가 필요합니다. Iron Barcode는 QR 코드 이미지를 읽는 가장 좋은 라이브러리입니다. 앞으로 진행하기 전에 Iron Barcode에 대해 조금 알아봅시다.

Iron Barcode - QR 코드 디코딩 라이브러리

IronBarcode는 특히 QR 코드 작업을 위해 설계된 .NET 라이브러리로, URL, 텍스트, 연락처 정보 등을 인코딩하는 데 널리 사용되는 2D 바코드의 한 종류입니다. 이 라이브러리는 개발자가 크기, 색상, 오류 수정과 같은 맞춤 설정 기능을 사용하여 직관적인 도구를 제공함으로써 QR 코드 생성 작업을 단순화합니다.

또한, IronBarcode는 이미지 내에 내장된 QR 코드에서 정보를 추출할 수 있어 .NET 애플리케이션에 QR 코드 생성 및 디코딩 기능을 원활하게 통합할 수 있는 필수 리소스입니다.

이 튜토리얼에서는 모델이 QR 코드를 검출하면 QR 코드를 디코딩하기 위해 이를 사용할 것입니다.

Iron Barcode NuGet Install-Package

IronBarcode NuGet 패키지를 다운로드하려면 아래 명령을 NuGet 패키지 관리자 콘솔에 작성합니다.

Install-Package BarCode

위 명령은 Iron Barcode 패키지를 설치하고 프로젝트에 참조를 추가합니다.

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 11

QR 코드 디코드

단일 검출 QR 코드를 읽기 위해 아래 코드를 작성하십시오.

using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
$vbLabelText   $csharpLabel

다음은 출력 결과입니다:

딥러닝을 이용한 QR 코드 인식을 이해하는 방법: 그림 12

결론

결론적으로, 모델 빌더와 IronBarcode 라이브러리는 QR 코드를 사용하고자 하는 .NET 개발자에게 귀중한 조합입니다. Model Builder는 QR 코드 인식을 위한 모델 생성 및 훈련이라는 까다로운 작업을 꽤 쉽게 만들어 줍니다. IronBarcode 라이브러리를 추가하면 더 간단해집니다. 이는 사진에서 QR 코드를 문제 없이 읽도록 도와줍니다. 이러한 팀워크는 재고 및 마케팅 작업을 개선할 뿐만 아니라 앱 사용을 더 즐겁게 만듭니다. Model Builder와 IronBarcode가 함께할 때, 마치 .NET 앱에 슈퍼 스마트 기술을 블렌딩하는 것과 같아 QR 코드 작업에 대한 모든 종류의 멋진 가능성을 열어줍니다. Iron Barcode 상용 라이선스는 무료 체험판 라이선스와 함께 매우 저렴한 가격으로 제공됩니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me