[2021 국제캡스톤 프로젝트] #1 python을 이용한 qr코드 리더기

da__bi·2021년 8월 23일
0

project

목록 보기
1/3
post-thumbnail

❗ 국제 캡스톤 프로젝트?

2021년 8월 20일 부터 8월 26일까지 7일간 국제 캡스톤 대회에 참여하게 되었다.

캡스톤 대회의 주제는 'smart-life COVID-19', 우리 팀은 브레인스토밍을 진행한 후 일본 학생의 아이디어 였던(아마도..?) smart glasses를 만들기로 결정했다.

중국, 일본 국적의 학생들과 함께 참여하는데 계속 번역기를 사용하다 보니까 내 말투가 번역체로 변하고 있는 거 같은 착각이 스멀스멀🤦‍♀️


❗ 내가 맡은 역할

qr코드 리더기로 해독 한 뒤, 음성 추출이 가능하게 하기


간단하게 그려본 흐름도는 이 정도? 아무래도 못 하는 영어인데 하루 종일 하려니까 죽겠다!!! 2학기에는 영어 학습지 사서 speaking 공부해야겠다는 다짐X100

sofeware 중 일부분을 맡았는데, 부제목과 같이 '저장된 이미지를 qr코드 리더기로 decoding 하고 음성 추출이 가능하게 하기'가 내가 맡은 파트의 전부ㅎㅎ..ㅋㅋㅎㅎ..
팀원이 6명이고 개발 기간이 짧다 보니 지난 번 참여한 해커톤에 비해 할 일이 현저히 적다

3학년 1학기 캡스톤 주제와 상당히 유사해서 하루 만에 끝나버림ㅠ_ㅠ

❗ python으로 구현하기

pip install opencv-python
pip install pyzbar
pip install gtts
pip install numpy

  1. 윈도우의 cmd 창에서 위 4개의 라이브러리를 다운로드 받는다.

    -> opencv는 영상처리를 위한 패키지
    -> pyzbar는 qr코드 및 바코드 인식
    -> gtts(Google Text-to-Speech)는 텍스트의 음성변환
    -> numpy 연산처리

  2. 아래 코드를 입력한다

  3. 파이썬 코드와 해독을 원하는 .jpg(혹은 .png)파일을 동일 경로에 둔다

  4. 실행을 하면 qr코드 값이 리턴된다

  5. 사전에 만들어놓은 qrbarcode_data.txt로 해석된 qr코드 값이 입력되며, mp3로 음성 추출이 완료된다.

+) 하단에 입력해놓은 나이스 코딩님의 qr코드 리더기 만들기 영상을 근본으로 시작했다.
우리의 프로젝트는 노트북에 있는 웹캠으로 qr코드를 인식시키는 것이 아닌, 사전에 아두이노 카메라를 통해 저장된 jpg 파일을 python으로 불러와 해독하는 과정이었기 때문에 코드 수정이 필요했다..

import cv2
import pyzbar.pyzbar as pyzbar
from gtts import gTTS
import numpy as np

used_codes = []
data_list = []

try:
    f = open("qrbarcode_data.txt","r",encoding="utf8")
    data_list = f.readlines()
except FileNotFoundError:
    pass
else:
    f.close()

    for i in data_list:
        used_codes.append(i.rstrip('\n'))


        #Set file name here

        inputImage = cv2.imread("qrguide1.jpg")   
        inputImage = cv2.resize(inputImage, None, fx=0.2, fy=0.2, interpolation=cv2.INTER_AREA)

        qrDecoder = cv2.QRCodeDetector()


        data,bbox,rectifiedImage = qrDecoder.detectAndDecode(inputImage)
    
        if len(data)>0:
            print("Decoded Data : {}".format(data))

            rectifiedImage = np.uint8(rectifiedImage)
            f2 = open("qrbarcode_data.txt", "a", encoding="utf8")
            f2.write(format(data)+'\n')
            f2.close()
    
        else:
            print("QR Code not detected")


    textpath = 'qrbarcode_data.txt'

with open(textpath, mode='r', encoding='UTF-8') as text:
        script = text.read()

script.replace('\n', '') 
speech = gTTS(text=script, lang='en') 
speech.save('sample.mp3')

위 코드들은 다양한 youtube 및 구글링을 통해서 욱여넣은 코드들이라 파이썬을 공부한 후 차근차근 다듬어 보아야 한다.

아래는 위 코드를 작성하기 위해 참고한 링크들이니 응용을 원하시는 분들은 참고하세용

###❗️ 출처
나이스 코딩 - 바코드 QR코드 리더기 만들기
Zbar , OpenCV 사용해서 QR코드 인식하기
파이썬 gtts Module을 이용한 텍스트 음성 변환
Python gTTS로 텍스트 음성 변환

전체적인 프로젝트에 대한 이야기들은 대회가 끝나면 기록해야지🖋

profile
세상의 격차를 줄여보자!

0개의 댓글