woonadz :)

차량 번호판 가상 데이터 만들기 - 이미지 합치기 본문

프로젝트/인공지능 개발(미완성)

차량 번호판 가상 데이터 만들기 - 이미지 합치기

C_scorch 2021. 11. 25. 03:55
반응형

배경과 차량 이미지 합치기 코드

import cv2
import numpy as np

def plus(hpos,vpos):
    img_array2 = np.fromfile('C:\\Users\\pc\\OneDrive\\문서\\인공지능\\이미지 합성\\4-2.png',np.uint8)
    img2 = cv2.imdecode(img_array2, cv2.IMREAD_COLOR)
    img_array1 = np.fromfile('C:\\Users\\pc\\OneDrive\\문서\\인공지능\\이미지 합성\\1-1.png',np.uint8)
    img1 = cv2.imdecode(img_array1, cv2.IMREAD_COLOR)
    h, w, c = img2.shape
    roi = img1[vpos:vpos+h, hpos:hpos+w]#배경이미지 위에 차량을 넣을  영역
    mask = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)#차량을 흑백처리
    #이미지 이진화 : 배경은 검정. 글자는 흰색
    mask[mask[:]==255]=0
    mask[mask[:]>0]=255
    mask_inv = cv2.bitwise_not(mask) #mask반전 => 배경은 흰색. 글자는 검정
    car = cv2.bitwise_and(img2, img2, mask=mask)
    back = cv2.bitwise_and(roi, roi, mask=mask_inv)
    dst = cv2.add(car, back)
    img1[vpos:vpos+h, hpos:hpos+w] = dst
    cv2.imshow('img1', img1)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    cv2.imwrite("img2.png", img1)
    
plus(250,200) #x,y 값으로 차량 위치를 정함

참조 : https://cyberpunk.tistory.com/25 

 

배경과 차량이 합쳐진 이미지에 다른 코드를 작성하여 번호판까지 합치려하였으나 실패했다. 시간이 부족해 더 공부하고 구현해보는 것은 불가능 할 것 같아 Photoshop을 이용해 번호판과 이미지를 합쳤다. 또 시간이 부족해 스타일 변환 과정은 생략하였다.추후에 더 개발 할 수 있는 기회가 온다면 다시 고쳐보겠다.

 

(앞 포스팅에 있던 논문의 방법)

만약 원래 과정이라면 이미지를 합성시키기 전에 번호판 스타일 변환시키고 그 후 번호판과 이미지를 합성하여야한다. 그 후 인조 번호판을 GAN 모델 중 하나를 이용해 실제 번호판 데이터와 비슷한 결과를 얻어야 한다.

 

 

발전시켜야 할 두가지 문제

1. 번호판 + 배경을 합성할 경우 흰색 번호판이 사라짐.(새로운 코드를 짜야할 것으로 보임)

 

2. cv2.error: OpenCV(4.5.4-dev) 경로 설정이 잘 되었음에도 오류가 발생하고 특정 사진에 대해서만 코드가 동작함.

4번 이미지를 인식하지 못함 -> 아마도 3차원 이미지가 아닌 2차원 이미지를 회전하였기에 인식을 못하는 것 같다.

 

 

반응형