갈수록 어마어마한 발전을 이루는 AI. 그 중에서 이미지 인식 기능도 매우 핫한 기능입니다.
이걸 맛보기로 한번 해보려고 합니다.
이미지 인식이란?
이미지 인식를 간략하게 표현하자면,
어떠한 이미지가 입력되면 해당 이미지 내의 객체가 무엇인지 알려주는 것이라고 생각하면 됩니다.
아래 예시 사진으로 한번 확인해 보시죠
보시면 평범한 사진이라도 객체의 특징을 잡아내서 무엇인지 알려주고 %까지 안내해줍니다.
굉장히 신기하면서 어려울 것 같은 이미지 인식을 우린 Yolo v5를 사용해서 간단하게 해봅시다.
Yolo v5란?
You Only Look Once 는 한번 보고 바로 인식을 하는데 목표를 둔 모델입니다.
이름 뜻 그대로 신속한 이미지 인식 성능을 보이는 모델입니다.
그럼 이를 사용해 detction(인식)을 해보겠습니다.
Yolo v5 설치
아래 링크가 yolo v5 사이트 입니다.
https://github.com/ultralytics/yolov5
우리는 git을 통해 코드를 받아봅시다. 원하는 폴더로 이동을 해서 아래와 같이 작성합니다.
git clone https://github.com/ultralytics/yolov5.git
코드가 다 받아진 이후 해당 폴더에 requirements.txt가 있습니다. 파일에 적혀있는 라이브러리를 설치합니다.
pycharm을 사용하시면 해당 파일을 열고 자동 인스톨이 가능합니다.
그 외 는 pip을 통해 설치하시면 됩니다.
pip install -r requirements.txt
라이브러리까지 설치가 끝났다면 준비는 끝입니다.
Yolo v5 실행
설치가 끝났으니 한번 실행해봅시다.
detect.py를 실행해봅시다. 그러면 data - images 폴더 안에 있는 이미지들을 분석해줍니다.
저는 폴더 안에 fish, underwater란 사진을 추가로 해서 4장의 이미지가 분석이 되었습니다.
원래는 bus, zidane 두장만 있습니다.
결과는 runs - detect 폴더에 exp(실행 숫자)로 폴더가 새로 생성이 됩니다. 그 안에 저장이 됩니다.
아래는 bus.jpg의 결과 입니다.
정말 간단하게 끝이 났습니다.
궁금하실 점 몇개 작성해두었습니다.
● 영상 인식도 가능하나요?
- 넵 가능합니다. 다음에 작성해보겠습니다.
● 원하는 사진을 넣었는데 인식을 전혀 이상하게 하는데 어떻게 하나요?
- 인식하는 객체 리스트에 없는 사물일 가능성이 있습니다.
● 그러면 인식 대상 종류는 어떻게 되나요?
- 좀 많이 길긴 한데 80개 이며 리스트는 아래와 같습니다.
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
● 원하는 인식 객체가 없는데 어떻게 하나요?
- 원하는 객체를 학습을 시켜야 합니다. 방법을 원하시면 따로 포스팅 하도록 하겠습니다.
'개발잡담 > 기타' 카테고리의 다른 글
Git 명령어 사용법 - 기본 1 (0) | 2024.01.15 |
---|---|
파일 및 폴더 탐색할때는 Files.walk() (2) | 2024.01.01 |
Git commit 메세지 템플릿 설정 (0) | 2023.11.07 |
rand보단 well512 (0) | 2016.07.25 |
낙서시작 (0) | 2016.02.22 |