목록이미지 (6)
Broccoli's House
7회차 - (1) 학습 모델 구성 : 단순 모델 컬러 이미지 - 앞서 흑백 이미지로 데이터를 모아서, 학습 모델을 구성하여 학습을 시켰다. 그러나 코스트(Cost) 즉, 오차 값이 굉장히 큰 값에서 수렴하여 줄어들지 않았다. 실제로는 모델 구성에 오류가 있었으나, 데이터가 워낙 많고 모델도 복잡하게 구성하다보니 오류를 찾기가 쉽지 않았다. 따라서 적은 데이터와 비교적 간단한 모델로 학습을 하여 어느 정도의 성능을 확인한 다음, 데이터를 많이 모으고 모델을 더 복잡하게 하기로 하였다. - 이미지의 수를 적게 하기로 했기 때문에, 흑백 보다는 컬러 이미지로 다시 데이터를 모았다. 컬러 이미지와 흑백 이미지의 가장 큰 차이는 이미지의 개수가 같다하여도 컬러 이미지는 RGB, 3채널이기 때문에 흑백 이미지보다 ..
6회차 - (2) 이미지 크기 조절 및 자르기 이미지 크기 조절 - 현재 모아놓은 훈련 데이터 이미지는 (960X540), 1채널의 흑백 이미지이다. 픽셀 수는 약 51만개로, 이 정도 데이터의 크기로 딥러닝 학습을 할 경우 시간이 매우 오래 걸린다고 판단하였다. 또한 현재 프로젝트의 모태가 되는 NVIDIA DAVE 2에서는 실제 도로 이미지를 사용하는 데에도 (200X66), 3채널의 컬러 이미지를 사용하였다. 컬러 이미지라 하더라도 픽셀 수가 4만개가 되지 않는다. 즉, 프로젝트 수준에 비해 너무 과한 시스템을 다루고 있는 것이다. - 따라서 현재의 이미지 크기를 줄이고, 도로를 제외한 차량이나 배경 화면 등은 자르기로 결정하였다. 크기는 NVIDIA DAVE 2와 유사한 수준의 이미지 크기로 줄이..
※ 이 글의 내용은 O'REILLY의 책을 기반으로 한다. 합성곱 신경망(CNN) : 소개 및 구조 합성곱 신경망 - 합성곱 신경망 : 합성곱 신경망(CNN : Convolutional Neural Network)은 음성 인식이나 이미지 인식 에서 주로 사용되는 신경망의 한 종류이다. 다차원 배열 데이터를 처리하도록 구성되어 있어, 컬러 이미지와 같은 다차원 배열 처리에 특화되어 있다. 따라서 이미지 인식 분야에서 딥러닝을 활용한 기법은 대부분 CNN을 기초로 한다. - 일반 신경망의 경우, 이미지 데이터를 그대로 처리한다. 즉, 이미지 전체를 하나의 데이터로 생각해서 입력으로 받아들이기 때문에, 이미지의 특성을 찾지 못하고 위와 같이 이미지의 위치가 조금만 달라지거나 왜곡된 경우에 올바른 성능을 내지 ..
5회차 - (4) 훈련 데이터 수집 및 저장 훈련 데이터 수집 - 딥러닝 모델을 만들어 학습시키기 위하여 앞서 작성했던 파이썬 코드들을 사용하여 훈련 데이터를 수집한다. 하나의 파이썬 파일 안에 스크린 이미지를 추출하는 코드와 로지텍 G27에서 조향, 엑셀, 브레이크 데이터를 추출하는 코드를 동시에 작성하는 경우, 전체 코드가 복잡해지고 깔끔하지 못하다. 따라서 두 개를 분리하여 다른 파이썬 파일 안에서 작성하고 훈련 데이터를 모으는 파이썬 파일을 새로 만들어, 모듈로써 각 기능을 하는 함수를 불러오도록 한다. 이미지 추출 모듈 및 함수 작성 - 컴퓨터 스크린을 촬영하고 이미지의 크기 조절 및 흑백 처리를 해주는 함수를 작성하고, 이미지를 저장해주는 함수를 따로 작성한다. 그 이유는 훈련 데이터를 다 모..
5회차 - (2) 파이썬을 이용한 이미지 크기 조절 및 흑백 처리 이미지 크기 조절 - 파이썬의 라이브러리 PIL의 ImageGrab.grab() 함수를 사용해서 스크린 이미지를 추출하면, 모니터의 해상도를 그대로 따르는 이미지가 추출된다. 현재 모니터의 해상도가 (1920X1080) 이므로, 이미지를 가공하기 위해 픽셀마다 어떠한 연산을 가하려면 너무 많은 계산량과 그에 따른 많은 시간이 소요된다. 따라서 이미지의 크기를 줄일 필요가 있다. - 이미지 크기 조절에는 이미지 관련 라이브러리인 OpenCV의 resize 함수를 사용한다. resize 함수를 사용하기 위해서는 스크린 이미지를 추출한 다음 배열로 변경해주어야 한다. 또한 줄이고자 하는 이미지의 크기와 크기를 변경할 때의 보간 방식(interp..
5회차 - (1) 파이썬을 이용한 시뮬레이터(BeamNG Drive) 영상 이미지 추출 직접적 방법 - 앞서 설치 및 환경을 구성한 Microsoft AirSim이나 TORCS에서는 프로그램 소스 코드를 이용하여 게임 이미지를 직접적으로 받아올 수 있다. AirSim의 경우 C언어 기반으로 작성된 시뮬레이터이지만, 서버-클라이언트 방식으로 파이썬에서 시뮬레이터의 이미지를 추출하는 API를 자체적으로 제공한다. 따라서 별 다른 어려움 없이, 예제 코드를 따라하면 그대로 영상을 추출할 수 있다. (https://github.com/Microsoft/AirSim/blob/master/docs/image_apis.md)를 참고하면 된다. - AirSim과는 다르게, TORCS에서 파이썬으로 이미지를 추출하는 것..