반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 교토 여행
- 오사카 여행
- 교토역 스타벅스
- 오사카 가볼만한곳
- 제주도 여행 계획
- 서울 맛집
- 엠버호텔
- 대전 신세계
- 하와이 여행
- 제주도 여행계획
- 하와이 가볼만한곳
- 비짓재팬웹
- 강릉
- 동해
- 코엑스
- 하와이 액티비티
- 낙산공원
- 영동 가볼만한곳
- 서울 가볼만한곳
- 일본 후쿠오카 여행
- 다낭 호이안 올드타운 맛집
- 아쿠아리움
- 제주도 가볼만한곳
- 하와이 맛집
- 다낭 호이안 올드타운 카페
- 교토 가볼만한곳
- 순천
- 베트남 다낭 태교 여행
- 호텔 스카이파크
- 하와이 카페
Archives
- Today
- Total
나의 여행과 일상 일기장
(11) 캡스톤디자인 11강_실제 사진을 이용한 번호판 인식 본문
반응형
1. 새로운 번호판 인식 코드 newprocess.py로 교체
(1) 함수 씌우기
def computervision3():
import sys #코드 실행을 강제 종료하기 위해 import sys
import numpy as np
import os #코드가 한번 실행한 후 기존의 사진파일을 삭제해야 한다.
import pymysql #데이터베이스 import
from time import sleep #sleep()을 사용하기 위한 방법
import io # 파일을 읽고 쓰기위한 모듈
import re
import shutil
- 초음파 센서 다음에 유기적으로 실행하기 위해 computervision3함수를 씌웠고 sys, pymysql, time 등을 import
(2) 데이터베이스
#네이버 클라우드 데이터베이스
conn = pymysql.connect(host = 'xx.xx.xxx.xxx', user='xx', password='xx', db = 'firstdb', charset='utf8')
curs=conn.cursor()
- 네이버 클라우드 데이터베이스와 연결하는 코드
(3) 이미지를 바이너리파일로 변환하는 함수
def convertToBinaryData(filename): #데이터베이스에 바이너리 이미지넣기
with open(filename, 'rb') as file:
binaryData = file.read()
return binaryData
- 데이터베이스에는 이미지파일이 들어가지 않기 때문에 바이너리파일로 변환하는 함수를 생성
(4) 현재 시간변수 생성, 이미지 변환
import datetime #현재 시간을 넣기위해
now = datetime.datetime.now()
empPicture = convertToBinaryData("/home/pi/CarLicensePlate/test_img/pic.jpg") #넣을 이미지의 위치지정
- 데이터베이스에 현재시간을 넣고 이미지를 바이너리로 만드는 함수를 이용하여 바이너리 파일로 변환
(5) 데이터베이스 입력
sql = "UPDATE picam SET piTime = %s, piImg = %s, piExtract=%s where id=13" #id가 13인 위치에 데이터 수정
curs.execute(sql, (now, empPicture, carplate)) #sql실행
conn.commit()
conn.close()
print(carplate) #쉘에 출력
return carplate # 최종적으로 번호판이 출력되는 부분
- sql문을 이용해서 업데이트 방식으로 데이터베이스에 입력
(6) 마무리
#주차여부인식
def parking_classfication(img_path):
//
for i in prediction_ap:
pre_ans_ap = i.argmax() # 예측 레이블
pre_abs_str_ap =''
if pre_ans_ap > 0.5 : #주차 안됨
pre_ans_str_ap = "주차 상태 아님"
print("해당 " + img_path + " 이미지는 " + pre_ans_str_ap + "으로 추정됩니다.")
print("다시 조도센서 인식으로 넘어갑니다.") #주차되지 않았다고 판단
import serialard
serialard.sensor()
else : #주차됨
pre_ans_str_ap = "주차완료"
print("해당 " + img_path + " 이미지는 " + pre_ans_str_ap + "로 추정됩니다.")
sleep(1)
recognition_carlicenseplate('/home/pi/CarLicensePlate/test_img/pic2.jpg','/home/pi/testfolder') #번호판 추출
print("cnn 주차됨. QRcode 인식으로 넘어갑니다 ")
import qrprocess
qrprocess.qr()
#cnt += 1
parking_classfication("/home/pi/CarLicensePlate/test_img/pic2.jpg")
#sys.exit(1) #메모리 과부하를 막기 위한 exit()
//
- "주차완료"와 "주차상태 아님"으로 나누었다. 기존 방식과 마찬가지로 번호판 인식 후에 qrcode인식으로 넘어가기
2. cnn모델만들기
- 그동안은 인터넷에서 찾은 데이터를 가지고 기계를 학습했지만 이제는 실제 파이카메라로 찍은 사진들을 이용해서 기계학습 해야 할 것이다.
.
반응형
'일상일기' 카테고리의 다른 글
(13) 캡스톤디자인 13강_오류처리 및 인터넷 환경2 (0) | 2022.04.27 |
---|---|
(12) 캡스톤디자인 12강_오류 처리 및 인터넷 환경 (0) | 2022.04.27 |
(10) 캡스톤디자인 10강_유효하지 않은 QRcode 처리 (0) | 2022.04.27 |
(9) 캡스톤디자인 9강_qrprocess.py 수정 (0) | 2022.04.26 |
(8) 캡스톤디자인 8강_부저 모듈과 QRcode 인식 (0) | 2022.04.26 |