본문 바로가기

AI/Computer Vision

(7)
[Yolov10] Custom Data 실습 코드 실습 중 경량화된 Object Detection 모델이 필요했고, Yolov10 nano를 학습해보기로 했음 #1.  Yolov10 Git clone & 가상환경 세팅경로 : /home/project/yolov10https://github.com/THU-MIG/yolov10 GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024] - GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]github..
[Vision Transformer(ViT)] 코드 설명 및 인자 정리 [Vit 를 사용한 코드 구현 중 인자 정리 및 개념 정리] 참고 코드 : https://github.com/lucidrains/vit-pytorch/blob/main/vit_pytorch/vit.py vit-pytorch/vit_pytorch/vit.py at main · lucidrains/vit-pytorchImplementation of Vision Transformer, a simple way to achieve SOTA in vision classification with only a single transformer encoder, in Pytorch - lucidrains/vit-pytorchgithub.com class Transformer(nn.Module): def __init_..
[Active Learning] 데이터 Pre-training, 학습 진행 동양인 데이터로 Pre-training된 모델로 Active Learning 진행 pre-training모델은 찾을 예정 데이터셋은 추가 수집 예정 우리 데이터셋을 보완해 Active Learning 진행 Pre-trained datasetCategory: female, Age group: 0, Number of images: 20 Category: female, Age group: 10, Number of images: 12799 Category: female, Age group: 20, Number of images: 38118 Category: female, Age group: 30, Number of images: 11162 Category: female, Age group: 40, Number ..
[실전! 컴퓨터 비전을 위한 머신러닝] 06. 전처리 전처리를 하는 이유 모양 변환, 데이터 품질 변환, 모델 품질 향상 등의 이유 모양 변환 tf.keras.layers.Flatten(input_shape =(512,256,3)) 모든 레이어는 생성 당시에 정한 명세에 맞는 이미지를 필요로함 512*256*3=393,216개의 입력 노드를 갖도록 만들어짐 데이터 품질 개선 햇빛이 비치는곳 / 그렇지 않은 곳 = > 밝기에 차이 생김 지구 상의 지점에 비치는 햇빛을 고려해 각 픽셀값을 정규화 할 수 있음 모델 품질 향상 픽셀값 조정, 데이터셋 증강 크기와 해상도 5장의 꽃 이미지 사용 이미지 크기가 제각각임 케라스 전처리 레이어 사용 입력레이어에서 예상하는 모양에 맞게 바꾸는 전처리를 진행해야 함 img = tf.image.resize(img, [IMG_H..
[실전! 컴퓨터 비전을 위한 머신러닝] 04 객체 검출과 이미지 세분화 객체 검출 이미지에서 위치 정보를 제공하는 과업 YOLO YOLO 격자 그림은 N x M 칸으로 분할 셀 내부 어딘가에 중심점을 갖는 객체에 대한 경계 박스를 예측함 객체 검출 헤드 숫자 6개 예측 - 경계 박스의 좌표 4개, 객체가 검출됐는지를 나타내는 확신도, 객체의 클래스 너비와 높이는 [0,1] 범위에 속하도록 시그모이드 활성화 사용 확신도 C도 [0,1] 범위에 있으므로 소프트맥스 활성화 사용 Q. 올바른 차원의 특징 맵을 얻는 방법에는? A. 컨볼루션 백본에서 반환되는 특징 맵을 모두 평탄화해서 출력 개수와 같은 수의 완전 연결 레이어에 먹이는 것 손실 함수 훈련 데이터 내에 정답 - 실측 박스 (ground truth box) 예측 박스 (predicted box) 실측 박스와 결자 셀 내의..
[실전! 컴퓨터 비전을 위한 머신러닝] 03. 이미지 비전 (2) 모듈식 아키텍처 더 복잡한 빌딩 블록 - 모듈 고안 인셉션 인셉션V3 - 3x3 및 1x1 컨볼루션 필터만을 사용 데이터와 훈련을 기반으로 네트워크가 선택할 수 있는 몇 가지 대안을 제공 여러 경로의 출력이 최종 특징 맵으로 이어 붙여짐 아키텍처 - 다중 경로 컨볼루션 모듈들의 시퀀스 스퀴즈넷 채널 수가 1x1 컨볼루션만큼 감소하는 수축 단계와 채널 수가 다시 증가하는 팽창 단계가 교대로 있음 마지막 레이어는 전역 평균 풀링 - 가중치 수 줄임 각 모듈의 컨볼루션 레이어 3개 중 2개는 1x1 컨볼루션 - 학습 가중치 수 줄임 (?) '발화 모듈' def fire(x, squeeze, expand): y = tf.keras.layers.Conv2D(filters=squeeze, kernel_size=1,..
[실전! 컴퓨터 비전을 위한 머신러닝] 03. 이미지 비전 픽셀을 독립적인 입력으로 취급 ▶ 근처에 있는 픽셀끼리 상관성이 높다는 점을 이용하지 못함, 이미지에 대한 성능 좋지 않음 미리 훈련된 임베딩 임베딩 - 이미지를 저차원 공간에 수학적으로 표현한 것 ▷임베딩을 형성하는 16개의 숫자는 전체 이미지의 모든 정보를 표현함 미리 훈련된 모델 매우 큰 범용 데이터 셋으로 사전훈련 ▷분류할 실제 데이터셋에 관한 지식을 전이함 ▶ 모델의 용도를 변경함 예측헤드(Prediction head)라는 마지막 레이어만 교체 가능 (?) 사전 훈련 모델 - 대규모 데이터셋에서 훈련된 모델이며 임베딩을 만드는 데 사용할 수 있음 ex. 모바일 넷의 임베딩을 이용해 효율적인 훈련 가능 이미지넷 (ImageNet) 데이터 import tensorflow_hub as hub laye..