전체 글198 [AI 부트캠프] DAY 127 - 파이널 프로젝트 18 [오늘의 일지] 프로젝트 - YOLOv8 모델 성능 비교 [상세 내용] YOLOv8 모델 성능 비교 - 오늘의 실험 주제는 YOLOv8 모델의 n, s, m, l , x로 가벼운 모델인 n부터 시작해서 무거운 모델인 x까지의 모델의 성능을 비교해 보려고 했습니다. 모델의 알파벳의 의미는 n은 nano, s는 small, m은 middle, l은 large, x는 xlarge를 뜻합니다. 사실 이번 주제는 실제로 ultralytics 홈페이지 문서에 가보면 나와있듯이 각 모델의 성능비교는 잘 정리되어 있는 것으로 확인했습니다. 그러나 직접 모델을 돌려보면서 진짜 그런지에 대해서 평가해 보면 좋을 거 같아서 이번 실험을 진행게 되었습니다. YOLOv8 실시간 물체 감지기의 최신 버전인 YOLOv8 의 놀라운.. 2024. 1. 20. [AI 부트캠프] DAY 126 - 파이널 프로젝트 17 [오늘의 일지] 프로젝트 - 학습 모델 성능 비교 [상세 내용] 학습 모델 성능 비교 - 우선 더 좋은 gpu 환경인 원격 서버에서 돌리기 전에 로컬 환경에서 소수의 데이터로 학습을 돌려보는 과정을 진행해 보았습니다. 클래스는 단일 클래스로서 이미지를 resize 하는 기능을 통해서 데이터를 덜 사용하는 방향으로 실험을 진행했습니다. 학습 배경 스펙 - 빠르게 학습을 돌려보기 위해서 colab 환경의 T4와 V100 gpu를 선택하였습니다. YOLOv8 모델 자체가 디폴트값이 gpu 환경을 되어 있었기 때문에 컴퓨팅 단위가 A100보다는 적게 사용되는 T4를 사용하다가 너무 느려서 V100으로 교체해서 학습을 돌려보았습니다. resize 실험 - 이번 실험의 다른 조건은 모두 동일한 환경에서 진행했습니다.. 2024. 1. 19. [AI 부트캠프] DAY 125 - 파이널 프로젝트 16 [오늘의 일지] 프로젝트 - 원격 서버를 VSCode에 연결하기 [상세 내용] 원격 서버를 VSCode에 연결하기 - 오늘 정리할 내용은 제목에서 보이듯이 원격 서버 환경을 vscode로 가져와서 로컬과 똑같은 느낌으로 작업을 하는 것입니다. 그래서 정리할 게 생각보다 적을 거 같습니다. VSCode 내에서 확장 탭 다운로드 - 원격서버에 연결하기 위해서 VSCode 내에서 'Remote Development'를 검색해서 다운로드를 해주시면 됩니다. F1키를 누르고 원격 주소 기입하고 암호 입력 - 어제 일지에서 정리했던 리눅스 환경에서 ssh 명령어에서 ssh 만 빼고 [userid]@[address:ip]:[Port] 이런 식으로 아래와 같이 입력란이 뜨면 입력해 주고 서버에 맞는 암호를 입력해 주면.. 2024. 1. 18. [AI 부트캠프] DAY 124 - 파이널 프로젝트 15 [오늘의 일지] 프로젝트 - 원격 서버를 위한 리눅스 명령어 정리 [상세 내용] 원격 서버를 위한 리눅스 명령어 정리 - 이번 기업과 협업 프로젝트에서는 기업에서 gpu 사용을 위해서 원격 서버를 제공해 주었습니다. 원격 서버는 리눅스 환경인데 현재 사용하고 있는 리눅스 명령어에 대해서 간단하게 정리해 보도록 하겠습니다. 정리 목차 - 기본적인 리눅스 명령어 - 원격 서버 접속하기 - 원격 서버로 데이터 보내기 기본 리눅스 명령어 정리 # pwd (Print Working Directory):현재 작업 중인 디렉터리의 경로를 출력합니다. pwd # ls (List):현재 디렉터리의 파일 및 폴더 목록을 보여줍니다. ls # cd (Change Directory):디렉터리를 변경합니다. cd [디렉터리 경.. 2024. 1. 17. [AI 부트캠프] DAY 123 - 파이널 프로젝트 14 [오늘의 일지] 프로젝트 - 로컬 환경에서 gpu 설정하기 [상세 내용] 로컬 환경에서 gpu 설정하기 - 지난 일지에서 언급을 했듯이 제가 쓰는 노트북 환경에서 여러 가지 드라이버를 설치하고도 gpu는 확인이 되는데 pytorch가 gpu를 가져오지 못하는 상황에 대해서 정리해 보려고 합니다. 로컬 환경 (본인 노트북 환경) - cpu는 라이젠 5000번 때입니다. - 그래픽 카드는 rtx 3070 laptop용입니다. - cuda 버전 11.3입니다. - 파이썬 환경은 3.9와 3.10에서 모두 돌아가는 것을 확인했습니다. 환경 설정 요약 - gpu 드라이버 설치 (처음에 해도 되고 나중에 해도 되고 기존에 설치되어 있다면 안 해도 될 거 같습니다.) - anaconda 환경 구축 (기존 로컬에 해도.. 2024. 1. 16. [AI 부트캠프] DAY 122 - 파이널 프로젝트 13 [오늘의 일지] 프로젝트 - YOLO 모델 소규모 데이터 학습 성공 [상세 내용] YOLO 모델 소규모 데이터 학습 성공 - 어제 데이터셋을 구성한 뒤에 gpu 문제로 로컬에서 학습을 돌리는 것을 실패하고 gpu 세팅을 다시 하려고 했지만 모델 학습을 성공적으로 한 사이클 시켜보는 것이 더 중요하다고 생각해서 colab 환경에서 만들어진 데이터를 옮겨서 학습을 계속해서 시도했습니다. 학습을 시도하는 동안에 여러 가지 문제점이 또 발생했고 부분적으로 수정해 가면서 한 사이클 학습에 성공한 과정을 정리해 보겠습니다. bbox 좌표의 문제점 - 어제 발견했던 bbox 좌표 말고도 학습을 시도할수록 더 이상한 좌표값들을 발견했습니다. 이런 좌표값들은 어쩔 수없지만 지정 범위인 0~1의 값만 만족할 수 있도록 설.. 2024. 1. 13. [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. 이전 1 2 3 4 5 6 ··· 20 다음 반응형