2023 IN-GPS 팀 첫 회의에 참석했다. 주제는 도로 노면의 크랙을 탐지하는 알고리즘 개발이다. 현재까지는 크랙 O 이미지 / 크랙 X 이미지 몇 백장 정도 직접 수집한 상태이다. GAN으로 학습 이미지를 증강시킬 계획인 것 같다. 우선 DCGAN을 채택했다고 하는데, 차근차근 알아봐야겠다. 3월 중으로 이미지 증강을 끝내고, 그 후로 이미지...
우리 팀은 도로 이미지 증강을 위해 GAN을 채택했다. 여러 GAN 모델을 찾아본 결과, DCGAN은 비교적 적은 이미지 데이터셋으로도 동작하지만, 고해상도 이미지 생성에는 한계가 있다고 한다. PGGAN은 고해상도 이미지 생성에 뛰어난 성능을 보이지만, 대규모 데이터셋과 많은 컴퓨팅 자원이 필요하다고 한다. PGGAN을 개선한 것이 StyleGAN...
요 며칠 간 StyleGAN2와 싸웠다. 처음에는 StyleGAN2 tensorflow 버전을 시도했다. StyleGAN2-Official TensorFlow Implementation Requirement를 보고 python 3.6과 tensorflow 1.14 버전을 맞추려 했다. 여기서 시간을 엄청나게 썼고, 별 짓을 다 해봐도 버전을 맞출 수 없...
사실상 StyleGAN2 모델은 포기한 상태이다. 3일 동안 진행되던 학습이 RAM 문제로 끊겼다. 저장된 모델로 학습 재개 → 실패 새로운 데이터셋으로 처음부터 학습 → 실패 모두 같은 에러가 발생해 진행할 수 없었다. 아무래도 이것도 RAM 공간이 부족해 발생한 문제 같은데, 내 환경에서는 가상머신 서버에 접근할 수 없어 해결이 불가능할 것 같다...
Stable Diffusion을 직접 코드로 구현하고자 했다. 관련 API를 찾다보니 대부분의 Stable Diffusion API는 text2img로, prompt(텍스트)를 입력하면 이미지를 생성해주는 방식이었다. (Open AI - DALL·E) 하지만, 지금 필요한 것은 img2img. 즉, 사용자가 입력한 이미지와 prompt를 동시에 고려해 ...
이번에 새로 나온 YOLOv8 모델이 object detection과 segemantion을 동시에 지원한다는 이야기를 듣고 시도해보았다. Instance segmentation YOLO v8 | Opencv with Python tutorial COCO 데이터셋으로 학습된 모델을 다운로드 받고 적용해보았다. 이 모델은 총 80개의 클래스
우리의 연구 방향을 다시 한 번 되짚었다. '이미지 데이터 증강 + Object Detection 모델 개발'을 목적으로 시작했지만, 둘 중 하나에 집중하는게 옳지 않을까 생각이 들었다. 새로운 아키텍처를 제안하는 논문의 경우, 고정된 데이터셋으로 학습 시킨 후 평가지표를 통해 성능을 정량적으로 나타낸다. 예를 들어, ImageNet 또는 COCO 데이...
Object Detection 용으로 만들어진 크랙 데이터셋을 찾아보았다. Kaggle에서 고화질의 데이터셋을 찾았다. Annotated Potholes Image Dataset 레이블 값이 xml 파일로 저장되어있어, 여기서 bounding box 정보만 따로 추출해줘야 하는 것인지 고민했다. Roboflow에 파일 그대로 업로드 해봤는데, 알아서 ...
최근 Meta에서 출시한 SAM(Segment Anything Model)을 알아보았다. SAM 데모도 잘 되어있고, Segmentation 속도도 매우 빨라서 신기했다. 직접 객체를 클릭해 분리하는 방법, Box로 해당 영역 객체를 분리하는 방법, 전체 이미지를 알아서 분리하는 방법이 있다. Demo 페이지에서 도로 크랙 데이터를 업로드 해보았다. ...
Kaggle에서 또 다른 데이터셋을 찾았다. Road Pothole Images for Pothole detection 우리가 수집한 로드뷰 이미지와 유사한 각도에서 찍은 사진으로, 분명 유용하게 쓰일 수 있을 것 같았다. 화질도 우수하고, 데이터 양도 충분히 많았다. 하지만, 레이블 데이터가 따로 존재하지 않고 레이블 정보를 담은 csv 파일이 있을 ...
Grounding DINO(Grounding Discriminator INterpolation)는 Zero-Shot Object Detection을 수행하기 위한 기술이다. DINO는 대규모 데이터셋에서 pre-train 된 self-supervised learning 모델이다. 기존의 Object Detection은 학습된 모델을 사용하여 annota...
이전에 Language SAM의 포트홀 탐지 성능이 매우 우수했던 것을 활용하여, Language SAM 포스팅 Automated Annotation을 시도해보았다. 즉, 탐지된 포트홀의 Bounding Box 정보를 자동으로 추출해, 이를 레이블로 사용하는 것이다. 과정은 다음과 같다. (1) Language SAM을 이용해 포트홀을 탐지하고 Bou...
학습 데이터셋에 따른 YOLOv8 Object Detection 결과를 비교해보았다. 실험 내용을 정리해보면 다음과 같다. (1) 원본 이미지는 300장이다. (2) Stable Diffusion을 이용한 이미지 생성으로 데이터셋을 증강시킨다. (3) 각 데이터셋을 사용하여 YOLOv8 모델을 학습시킨다. (4) 평가 지표 및 객체 탐지 결과를 비교한다...
총 2700장(원본 300장 + 생성 2400장)의 이미지 데이터셋을 이용해 학습시킨 YOLOv8 Object Detection 모델을 얻을 수 있었다. 지금까지는 테스트 이미지로 결과를 확인해봤지만, 동영상 탐지에는 어떻게 적용될 지 알아보고자 했다. 실험에는 유튜브 동영상을 일부 발췌하여 사용했다. roadviewyoutube1, roadviewyo...
[High-Resolution Image Synthesis with Latent Diffusion Models] (https://arxiv.org/abs/2112.10752) 논문을 읽고 내용을 간략히 정리함 Diffusion Model Diffusion Model은 점진적인 Denoising 작업을 통해 데이터 분포를 학습하는 확률 모델임 입력 이...
IN-ISP 프로젝트를 마무리 하며, 지금까지의 성과를 정리하고자 작성한다.포트홀 탐지를 실제 자율주행차량에 적용하는 것이 궁극적인 목표였지만, 탐지 이후의 차량 제어에 대해서는 다루지 못했다.운전자 보조 시스템으로 활용하기에는 고려해야 할 사항이 많았다.보다 빠른 시