0816 개발일지

이나겸·2022년 8월 16일
0

1. 개발기록

  • yolo format Dataset convert to coco format
    번호판 detect 할 때, 번호가 순서대로 출력되지 않음.
    해결하기 위해서 이미지에 bbox 좌표가 필요한데 현재는 yolo 형식이라서 이것을 coco 형식으로 바꾸는 게 먼저라고 생각됨.
    coco형식으로 바꾸고나면 x, y 위치를 알 수 있기 때문에 이미지에서 x 순서대로 detect 한 문자를 뽑아내면 될 것같음.
    yolo를 coco 형식으로 바꿀 때, yolo를 진행한 이미지가 필요함!
    이미지의 width와 height를 사용하는데, yolo 형식의 x, y, w, h에 대해서 계산을 해줘야한다.
 file_path = '1.txt'
 with open(file_path, 'r') as f:
        data = f.readlines()
        for d in data :
            d = d.split(' ')
            w = float(d[3]) * img_width
            h = float(d[4]) * img_height
            x = float(d[1]) * img_width - (w / 2)
            y = float(d[2]) * img_height - (h / 2)

            draw = ImageDraw.Draw(image)
            draw.rectangle((x, y, x+w, y+h))
            image.show()
            exit()

yolo 형식의 txt 파일 전체에 대해서 진행해도 제대로 잘 박스치는 것을 확인

2. 느낀점

 easy OCR을 썼던 것을 yolov5 모델로 교체했다.. 근데 걸리는 시간이 두배가까이 된다... 허허
 이미지를 넣어주면 잘 detect 하는 것까지 확인했는데... 시간이 오래 걸리는 게 아쉽다ㅠㅠ
 시간이 많이 안 걸리려면 car랑 plate도 문자들과 같이 라벨링하면 모델을 하나만 불러와서 가볍겠지만 이미 지나간 버스..
 이왕 detect.py 사용해본거... yolov7 모델로 바꿔볼 수 있으면 바꿔봐야겠다.. detect도 잘되고 빠르다고 했으니...
 내일은 영상에서 detect 하는 부분이랑 고도화 부분을 좀 더 진행해봐야겠다.

1개의 댓글

comment-user-thumbnail
2022년 11월 18일

안녕하세요!
제가 현재 Yolov5를 이용하여 프로젝트를 진행하고 있는데 궁금한점이 있어서 이렇게 댓글을 남겨요
제가 지금 주차장 라인에 객체(차)를 인식하여 표면 안에 들어올 경우 주차가 불가능하다는 것을 판단하는 프로그램을 구현해야 하는데 혹시 객체에 대한 좌표 계산 방식을 알 수 있을까요?

답글 달기