KT 에이블스쿨 : 딥러닝 심화 3일차 - 라벨링, 자체 딥러닝 모델, ChatGPT API, Pandas AI
24.04.19 (금)
이미지수집 - 데이터라벨링 - 모델학습 - 예측
그동안 roboflow의 데이터셋이나, YOLO 모델을 불러와서 딥러닝 모델을 만들었는데,
드디어 이미지 수집부터 데이터라벨링, 학습과 예측까지 전과정을 직접해봤다. !!!
- 예측할 이미지 분야 결정
- 옷의 종류 (자켓, 바지, 치마, 드레스 등)
- free image 사이트에서 이미지 수집
- 길에서 찍은 전신샷 36개 수집함
- 폴더 구조 만들기
- ybat-master 폴더에 txt 파일 생성 → 클래스명 입력
- ybat-master 폴더에 train / valid 폴더 각각 만들고
안에는 images, labels 두개의 폴더를 각각 만듦
images : 수집한 이미지 넣고, labels는 일단 비우기
- 데이터 라벨링해서 데이터셋 만들기
- 로컬에서 데이터 라벨링 툴을 활용해 바운딩 박스 생성
- 로컬에서 하는 이유 : 웹으로 하면 서버가 불안정해서 날라갈수도 있음
- 아래 사진과 같이 작더라도 흐리더라도 박스 추가
- Save YOLO 버튼을 누르면, 이미지 이름별 박스 위치정보, 클래스 정보가 담긴 txt 파일이 만들어짐
- labels 폴더로 이동
- YOLO_prac 폴더 생성하고 여기에 train, valid 폴더들 넣기
-
data.yaml 파일 만들기
-
- 메모장에서 아래와 같이 작성하고, 확장명을 yaml으로 저장
- 코랩에서 모델링
- ultralytics 라이브러리 설치
- YOLO 불러오기
- data.yaml 파일의 경로 수정
- YOLO 모델 선언
- 모델 학습
- 모델 예측
아래는 예측한 결과이다 !
생각보다 예측이 잘되서 너무 뿌듯 ^---------^- epochs = 50 으로 학습했을때
- jacket / pants / dress 는 잘 인식이 됐지만, 이외에는 아예 인식을 못했다
- 확실히 epochs가 50이었을때에 비해 정확도와 예측률이 올랐음
- 크기가 작은 사람들의 옷 형태도 정확하게 예측했다
- (아래 사진의 2번째, 3번째)
- 잘못 인식한 경우도 있었다
- 치마를 바지로 인식 (아래의 1번째 사진)
- 드레스를 셔츠와, 치마로 인식함 (아래의 2번째 사진)
- 클래스 6개 중에서 유일하게 muffler 만 예측을 아예 못함 (아래의 3번째 사진)
- 수집한 이미지 수가 적고, 자켓에 가려져있는 경우가 많아 예측을 못한 듯
비교적 식별이 쉬운 오피스룩으로 많이 수집을 해서인지 인식이 생각보다 잘되서 기분이 좋았다
정교한 라벨링과 더 많은 이미지로 데이터셋을 고도화시키면 인식하지 못한 머플러같은 어려운 것도 인식이 될거라 생각한다.
36개의 이미지로 이정도의 성능이 나와서 대만족
ChatGPT API
API : 클라이언트에서 받은 요청을 서버로 전달해주는 역할
언어지능은 transformer가 베스트 - GPT, BERT 모델이 있다
이전 크롤링 실습때에는 카카오에서 만든 GPT 기반 LLM 모델을 API로 가져와 실습했는데,
이번에는 오픈AI의 API를 사용해 ChatGPT를 사용해봤다.
확실히, 이전에 실습한 카카오 LLM 보다 훨씬 답변이 정교했다.
- 사용 순서
1. 채팅을 위한 함수 생성
- 어떤 모델을 쓸건지 정함 model=gpt-3.5-turbo'
- 아래에 대한 Input 을 받음
- ChatGPT에 어떤 역할을 부여할것인지
- ChatGPT에 묻고싶은 질문이 무엇인지
- return 값으로 ChatGPT 서버로 response 받은 message.content 출력
2. GPT에게 request하고 답변 response 받기
## 여행 플래너
role = '너는 전세계의 모든 곳을 다 가본 유능한 여행 플래너야. 20대 힐링여행을 주제로 여행계획 세우는걸 아주 잘해.'
question = "여름철에 가기 좋은 해외 여행지를 추천해줘. 20대 여자인 친구 3명과 갈것같고, 맛집 많았으면 좋겠어"
response = ask_chatgpt2(role, question)
print(response)
산토리니는 화려한 일몰로 유명한 아름다운 섬으로, 푸른 바다와 흰 담장 건물들이 만드는 풍경이 아름다운 곳입니다.
맛있는 그리스 음식과 맛집들도 많아서 음식을 즐기는 것도 좋을 거에요.
또 다른 추천지로는 포르투갈의 리스본이 있습니다. 리스본은 다채로운 건축물, 예술과 문화가 어우러진 아름다운 도시로, 다양한 레스토랑과 카페들이 있어 맛집 탐방을 즐기기에 안성맞춤입니다.
마지막으로 태국의 코사무이 섬도 좋은 선택일 수 있어요.
휴양지로 유명한 코사무이는 아름다운 해변과 푸른 바다가 매력적인 곳으로, 맛있는 태국 음식을 맛보며 여유로운 여행을 즐길 수 있을 거에요.
이 세 곳 중에서 친구들과 함께 잊지 못할 여름휴가를 보낼 수 있을 거예요!
이렇게 여러곳을 추천 받았는데 재작년에 갔던 코사무이가 나와서 엄청 반가웠다 ..
예전에 한번 배워서 인지, API로 LLM 활용하는건 이전보다 더 쉬워진 느낌이다.
Pandas AI를 활용한 데이터 분석
-
Pandas AI : 생성 AI(open AI)를 사용하여 데이터 전처리 및 탐색 및 분석 가능
- Pandas AI는 1년전에 만들어진 것.
- Open AI의 API 키를 연결해서 질의하고 응답을 바로 받을수 있다.
- 최근에 이런 자동 데이터탐색 라이브러리가 많아지고 있음
-
데이터셋을 불러와서, 직접 데이터 탐색을 하지 않더라도 순식간에 데이터 탐색이 가능하다
- 질의가 순서대로 기록에 남기때문에, 이전 질문의 답변과 이어지는 경향이 있음.
-
최신기술은 에러가 많고 불안정
- 실제로 같은 코드더라도 되는사람 안되는 사람이 있었고, 실행되더라도 다른 결과가 나옴
-
SmartDataframe : PandasAI용 df
-
SmartDatalake : 두개의 df를 merge해서 분석할수있음
df를 합쳐서 데이터분석 가능
- 주의점
- 합치고자하는 컬럼명이 같아야함
- df 이름, 칼럼이름, 값에 한글이 들어가면 오류가 남
- 주의점
댓글
댓글 쓰기