본문 바로가기

전체 글192

[AI 부트캠프] DAY 121 - 파이널 프로젝트 12 [오늘의 일지] 프로젝트 - YOLO 모델을 위한 데이터셋 구성 완료 [상세 내용] 데이터셋을 위한 작업 목록 - 참고 코드를 기반으로 내 데이터에 적용시키기 - 완성된 데이터셋 확인 후 문제점 수정 - 모델에 돌려보기 참고 코드를 기반으로 내 데이터에 적용시키기 - 데이콘 대회에 올라온 코드를 기반으로 했지만 결과적으로는 데이터가 많이 달랐기 때문에 얻어야 하는 annotation을 기반으로 데이터셋을 완성시키려고 노력했습니다. 어제도 설명했듯이 YOLO의 annotation의 형태는 아래와 같았습니다. # annotation 내용 완성된 데이터셋 확인 후 문제점 수정 - 완성된 데이터를 확인해 봤을 때는 뒤에 4개의 값은 무조건 0~1의 데이터를 가지고 있어야 한다는 것을 알게 되었습니다. 이유는 위.. 2024. 1. 12.
[AI 부트캠프] DAY 120 - 파이널 프로젝트 11 [오늘의 일지] 프로젝트 - YOLO 모델을 위한 데이터셋 알아보기 [상세 내용] YOLO 모델을 위한 데이터셋 - 다른 모델과는 다르게 딥러닝 모델들은 각 모델에 맞는 데이터셋을 잘 구축하는 것이 중요합니다. 제대로 된 데이터셋을 구축하지 않으면 모델이 제대로 학습되지 않기 때문입니다. 그래서 오늘은 YOLO 모델에 맞는 데이터셋을 구축하는 과정에 대해서 정리해 보겠습니다. 오늘은 아마도 일부만 정리하고 나머지는 내일 정리할 것 같습니다. 특징 - 여러 가지 사이트를 검색해 본 결과 YOLO 모델은 예를 들면 하나의 이미지가 존재한다면 하나의 annotation 파일이 존재해야지 학습이 가능한 것으로 파악을 했습니다. annotation이라는 단어는 그 자체로 주석이라는 뜻을 가지는데 YOLO 모델의 .. 2024. 1. 11.
[AI 부트캠프] DAY 119 - 파이널 프로젝트 10 [오늘의 일지] 프로젝트 - 이미지 데이터 확인 [상세 내용] 이미지 데이터 확인 - 이번 프로젝트를 위한 데이터는 이미지마다 하나의 클래스 라벨이 존재하고 그 라벨의 bbox가 존재하고 있습니다. 학습을 시키기 전에 이미지 안에 어떻게 bbox가 생성되어 있는지를 확인하기 위해서 이미지 위에 bbox와 클래스 라벨을 출력시켜 보면서 확인해 보는 과정을 진행해 보았습니다. 실행 코드 - 처음에는 cv2.imread를 사용해서 이미지를 읽으려고 했는데 오류가 나서 image 모듈로 대체해서 읽어왔습니다. def draw_boxes_on_image(image_path, filename): # 이미지 불러오기 image = Image.open(image_path) image = cv2.cvtColor(np.a.. 2024. 1. 10.
[AI 부트캠프] DAY 118 - 파이널 프로젝트 9 [오늘의 일지] 프로젝트 - 데이터 정제 [상세 내용] 데이터 정제 - 지난주에 데이터를 파악했을 때는 반정형 데이터인 json 파일로 되어 있어서 보는데도 불편하고 가져다가 쓰기 위해서도 불편한 부분이 많다는 것을 느꼈습니다. 그래서 기존에 프로젝트 때마다 사용했던 방식인 케글이나 데이콘에서 많이 제공하는 pandas 데이터 프레임 방식으로 정형화시키기를 시도했습니다. json 파일 열고 원하는 부분 정형화 하기 - 기존의 존재하는 라이브러리를 사용하여 json을 열고 pandas의 json을 노멀라이즈 하는 기능이 있어서 사용한 뒤 for문을 통해 순환되는 데이터들을 마지막으로 concat을 토해서 전체적으로 받았다. 아래와 같은 방법을 한 사이클로 해서 데이터를 받았습니다. data1_list = .. 2024. 1. 9.
[AI 부트캠프] DAY 117 - 파이널 프로젝트 8 [오늘의 일지] 프로젝트 - 데이터 파악하기 [상세 내용] 데이터 파악 - 이제 약 4주가량 시간이 남지 않았기 때문에 더 이상 지체하지 않고 Ai-hub를 통해서 공개된 데이터를 파악해 보고 어떤 식으로 학습을 위해서 데이터를 정제할 수 있을지 파악해 보기로 했습니다. 데이터에 대한 정보는 링크를 통해 가보면 자세하게 나와 있습니다. AI-Hub 샘플 데이터 ? ※샘플데이터는 데이터의 이해를 돕기 위해 별도로 가공하여 제공하는 정보로써 원본 데이터와 차이가 있을 수 있으며, 데이터에 따라서 민감한 정보는 일부 마스킹(*) 처리가 되 www.aihub.or.kr 데이터 종류 - 데이터는 학습을 위한 이미지 데이터와 이미지 데이터의 특징을 담고 있는 json 파일로 된 데이터로 나눠져 있었습니다. json.. 2024. 1. 6.
[AI 부트캠프] DAY 116 - 파이널 프로젝트 7 [오늘의 일지] 프로젝트 - 기업 미팅 후 불확실한 상황 정리 [상세 내용] 기업 미팅 후 불확실한 상황 정리 기존 요청 사항 - 기존에 저희 조는 각자 사용하는 로컬의 성능이 좋지 않은 관계로 최대한의 GPU를 사용할 수 있는 서버를 빠른 시간 내에 제공받기를 원했다. - 그리고 로컬이 좋지 못한 것을 감안해서 최대한 colab 환경에서라도 돌릴 수 있게 데이터 자체를 온라인 서버상으로 사용할 수 있게 구축해 주길 요청했습니다. - 그리고 기업에서 요구했던 학습 진행 방향성이 object detection이 아닌 multi-label classification만을 학습하는 것인데 평가 지표를 왜 mAP로 요구하고 있는지를 답변받기를 원했습니다. 답변 결과 - 결과적으로는 제대로 얻은 결과는 없었습니다... 2024. 1. 5.
[AI 부트캠프] DAY 115 - 파이널 프로젝트 6 [오늘의 일지] 프로젝트 - 본격적인 프로젝트 전 공부 [상세 내용] 본격적인 프로젝트 전 공부 용어 정리 - 프로젝트 전에 많이 사용될 용어에 대해서 간단하게 정리하려고 합니다 이미지 크롭 - 직역하자면 이미지를 자르는 건데 여기서 이미지를 크롭 하는 가장 중요한 이유는 주변의 배경에 걸리는 이미지로 인해서 발생하는 모델의 학습 저하를 방지하기 위함이라고 할 수 있습니다. 이번 프로젝트에서 아마도 중요하게 작용할 거 같습니다. 비엔나 코드 - 비엔나(Vienna) 코드는 주로 웹 개발 및 데이터 시각화를 위한 오픈 소스 라이브러리와 프레임워크를 지칭하는 용어입니다. 주로 JavaScript와 TypeScript를 사용하여 구축되어 있으며, 데이터 시각화 및 웹 애플리케이션 개발에 유용합니다. - 비엔나.. 2024. 1. 4.
[AI 부트캠프] DAY 114 - 파이널 프로젝트 5 [오늘의 일지] 프로젝트 - 본격적인 프로젝트 전 지정 모델 공부 [상세 내용] 본격적인 프로젝트 전 지정 모델 공부 YOLO - 이번 프로젝트에서 기업이 원하고 지정해 준 모델은 YOLO였습니다. 그 이유가 기존에 상용화되어 있는 모델에서 현재 사용 중에 있고 YOLO 모델 자체가 매년 새로운 버전을 발표하면서 기존 모델의 버전과 차이가 벌어진 이유도 있었을 것입니다. 즉 기업 측에서는 다른 모델로 교체하는 것도 좋지만 기존 모델을 향상된 새로운 버전으로 업그레이드하는 것을 더 원하고 있는 것 같았습니다. 조원분들도 기업이 원하는 방향으로 최대한 맞춰주는 것으로 회의를 통해서 결정하게 되었습니다. 정의 - YOLO(You Only Look Once)는 객체 감지(Object Detection)를 위한 .. 2024. 1. 3.
[AI 부트캠프] DAY 113 - 파이널 프로젝트 4 [오늘의 일지] 프로젝트 - 기업 미팅 후 방향성 [상세 내용] 기업 미팅 후 방향성 미팅의 주요 관점 - 이번 프로젝트가 시작된 지 일주일 정도가 되었는데 기업 미팅이 곧바로 진행된 것이 아니었기 때문에 미팅 전부터 걱정스러운 부분이 생각보다 많았습니다. 크게는 아래와 같은 4가지 부분이 프로젝트의 궁금증이었습니다. 기업이 원하는 이번 프로젝트의 최종 결과물(예를 들면 기존 모델을 새로운 모델로 개선) 대용량 학습 데이터 셋을 로컬이 아닌 코랩 환경과 같은 곳에서도 사용가능하게 만들어줄 수 있는지 모델을 학습시킬 수 있는 환경을 제공할 수 있는지 프로젝트 기간 동안 기업의 멘토링 환경이 어떻게 진행되는지 미팅 후 답변 - 위에 나와있는 4가지 궁금증에 대해서 대부분 명확하고 바로 다음 주 중에 해결해 .. 2023. 12. 30.
[AI 부트캠프] DAY 112 - 파이널 프로젝트 3 [오늘의 일지] 프로젝트 - Instance Segmentation 공부 [상세 내용] Instance Segmentation - Instance Segmentation은 컴퓨터 비전에서 이미지를 처리하는 기술 중 하나로, 이미지 내의 각 객체를 개별적으로 식별하고 해당 객체의 픽셀을 분할하는 작업입니다. 이는 객체 간의 경계를 명확하게 구분하면서 동시에 각 객체 내의 픽셀을 정확하게 식별하는 것을 목표로 합니다. 인스턴스 세그멘테이션은 주로 객체 검출(Object Detection)과 세그멘테이션(Segmentation)을 결합한 기술로 볼 수 있습니다. 자세한 비교는 아래의 그림을 보면 명확하게 확인할 수 있습니다. 활용 방안 - 이번 프로젝트에서는 이미지 상에서 여러 가지 클래스를 분류하기 위해서 .. 2023. 12. 29.
반응형