전체 글

iOS 개발자 황성진의 블로그 입니다.
모바일 어플리케이션에서 진행하기 위해 tensorflow기반의 모바일 어플리케이션을 이용했다. Darknet YOLO(You Only Look Once) 학습을 위한 데이터 셋과 같은 경우에는 이전에 포스팅 했던 구글 이미지 크롤러를 이용해 데이터 세트를 수집하였다. https://sj-d.tistory.com/12?category=867326 [6] 구글 이미지 크롤러 전에 설명하였던 yolo를 통해 자신의 데이터를 학습 시키기 위해 데이터 세트를 수집하는 방법에 대해 설명드리겠습니다. 저와 같은 경우 구글에 이미지 검색을 통해 나오는 이미지를 학습에 사� sj-d.tistory.com Image labeling YOLO모델을 supervised learning에 속한다. 따라서, 가중치 학습을 위해 ..
Capstone What? - 라즈베리 파이를 이용해 도로 결함을 주기적으로 관찰하며 결함이 있는 도로를 탐지해 알려주는 시스템 Why? - 편리하고 효율적인 도로 결함 관리를 위해 시민들의 자발적인 참여없이 빠르게 도로 결함을 탐지하여 보수할수 있어 도로 결함으로 인한 사고를 예방할 수 있다. How? - 라즈베리 파이를 이용하여 도로 주행 영상과 GPS 데이터를 서버 컴퓨터로 전송후 YOLO 알고리즘을 사용해 도로의 결함을 탐지한다. 시스템 구상도 문제점 실시간 데이터 처리, GUI 구현 이번 학기의 진행 방향은 저번 학기에 모바일 어플리케이션으로 진행하여 정확도가 떨어졌던 부분을 보안하고자 서버에서 처리를 진행했습니다. https://sj-d.tistory.com/8 [1] 개발 배경 ( 포트홀로 ..
yolo를 이용해 저번에 라벨링했던 자신의 데이터 세트를 학습시키는 방법에 대해 알아 보겠습니다. 1. darknet 디렉토리로 들어갑니다. $ cd darknet 2. daknet 디렉토리 내의 cfg 디렉토리로 이동하여 자신이 학습을 진행시킬 cfg 파일을 바꿔줍니다. 예를들어 yolov3.cfg를 사용하여 학습을 진행할경우 yolov3.cfg를 vi로 열어주고 yolov2.cfg를 사용하여 학습을 진행할 경우 yolov2.cfg를 vi로 열어줍니다. 이글에선 yolov3.cfg를 기준으로 설명해드리겠습니다. [net] # Testing # batch=1 # subdivisions=1 # Training batch=64 subdivisions=16 width=608 height=608 channels..
다음은 이미지 증가의 코드입니다. 데이터 세트가 한정적일때 다음의 코드를 이용하여 데이터세트를 늘려 학습에 유용하게 사용할 수 있습니다. 다음의 파라미터를 이용하여 증가를 시킵니다. import numpy as np import os from os import listdir from os.path import isfile, join from PIL import Image from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img data_datagen = ImageDataGenerator(rescale=1./255) data_datagen = ImageDataGenerator(rescale=1...
전에 설명하였던 yolo를 통해 자신의 데이터를 학습 시키기 위해 데이터 세트를 수집하는 방법에 대해 설명드리겠습니다. 저와 같은 경우 구글에 이미지 검색을 통해 나오는 이미지를 학습에 사용하였습니다. 구글의 이미지를 크롤링 하는 방법은 두가지 방법을 사용하여봤습니다. 1. python 코드를 통한 이미지 크롤링 우선 이미지를 크롤링 하기위해선 chrome을 사용시 chromedriver를 설치해주셔야됩니다. Chrome : https://sites.google.com/a/chromium.org/chromedriver/downloads Downloads - ChromeDriver - WebDriver for Chrome WebDriver for Chrome sites.google.com 설치를 완료하셨다..
이전글에서 Yolo 설치 방법에 대해 알아봤습니다. 이렇게 설치된 Yolo를 자신의 데이터 세트로 학습 시키기 위해선 라벨링의 과정이 필요합니다. darknet 디렉토리에서 다음의 명령어를 입력 해줍니다. $ git clone https://github.com/AlexeyAB/Yolo_mark 그 다음에 Yolo_mark 디렉토리로 이동하여 다음의 명령어를 입력 해줍니다. $ cmake . $ make $ ./linux_mark.sh 만약 위의 명령어를 입력하였는데 permission denied: ./linux_mark.sh 다음의 오류가 발생한다면 아래의 명령어를 입력하여 권한을 부여해 줍니다. #오류 발생시 $ chmod +x linux_mark.sh 정상적으로 실행이 되었을시 다음과같은 비행기 창..
모든글의 설정 방식은 Ubuntu 18.04 버전에서 진행을 하였습니다. YOLO 공식 사이트입니다. https://pjreddie.com/darknet/yolo/ YOLO: Real-Time Object Detection YOLO: Real-Time Object Detection You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev. Comparison to Other Detectors YOLOv3 is extremel pjreddie.com 위의 ..
모든글의 설정 방식은 Ubuntu 18.04 버전에서 진행을 하였습니다. YOLO를 설치하기 이전에 먼저 Opencv 3.2를 설치 해주어야 됩니다. 만약 GPU 환경에서 작업시 Nvidia 그래픽드라이버, CUDA, cuDNN 또한 설치를 진행 해야 됩니다. 이때 Nvidia 그래픽 드리아버와 CUDA, cuDNN의 버전을 맞춰주어 설치를 해주어야 됩니다. GPU를 쓰지 않는 가정하에 OpenCV 3.2만 설치해보도록 하겠습니다. OpenCV는 현재 4.1.2(2019.12.13 기준) 버전까지 나와있습니다. 하지만 3.4.0 버전 이후에는 c 컴파일러가 안되므로 YOLO 설치를 하기위해선 3.4.0 버전 이전의 버전을 설치 해주어야 합니다. 1. update, upgrade 진행 $ sudo apt-..
docker logo 도커의 의미 공식 홈페이지에서 도커의 개요를 보면 도커란 "Docker는 컨테이너 이동을 주도하는 회사이며 하이브리드 클라우드의 모든 애플리케이션 을 처리할 수 있는 유일한 컨테이너 플랫폼 제공 업체입니다“ 라고 쓰여있다. 여기서 '컨테이너'란 말에 주목할 필요가 있다. 컨테이너란 무엇일까? 아래 그림을 보면 대충 감이 온다. 아래에 도커 이미지를 보면 귀여운 배 위에 컨테이너를 올린 모습을 볼 수 있다. 대충 아! 컨테이너란 "다양한 OS에 여러 application이 올려져 있는 것"을 의미하는 거고 그런 컨테이너를 도커 위에 올리는구나 도커는 2013년 3월에 출시한 오픈소스 컨테이너 프로젝트다. 현재 2년정도 지난 시점에 세계적으로 엄청난 인기를 구사중인 대단한 프로젝트기도 ..
포트홀이란 무엇인가 포트홀 (Pothole)은 말 그대로 도로 위에 생긴 구멍이다. 아스팔트 포장 위에 생기는 작은 구멍으로써 서울시내 도로에서도 크고 작은 포트홀을 가끔씩 만날 수 있다. 포트홀은 주로 오래된 아스팔트에서 반복된 충격으로 인해 작은 구멍이 생기기 시작하고 그것이 지나가는 차량들에 의해 점점 커지게 된다. 그러다 걷잡을 수 없는 크기가 되면 지나가는 차량에 심각한 피해를 줄 수도 있는 것이다. 가끔 아스팔트의 배수 구조 불량 때문에 물이 차서 생기는 경우도 있는데 그래서 특히 장마철에 포트홀들을 더 조심해야 한다. 포트홀이 내 차에 미치는 영향과 조심해야 하는 이유 포트홀은 정도에 따라 다르지만 깊은 포트홀을 고속으로 지나가게 되면 순간적으로 타이어가 받게 되는 충격 때문에 타이어가 찢어..
황썽진
망각의 코딩러