대학(공학부)의 의뢰를 받은 자율주행 AI, 디플로닌 프로그램 콘텐츠입니다. 언리얼로 제작된 대학교 맵에서 자율주행하는 차량 AI를 제작했습니다. 이번 프로젝트에 사용된 자율주행 차량 AI 학습 방법론은 (3D 가상 환경을 시뮬레이션하여 해당 환경에서 자율주행 AI를 학습시켜 얻은 데이터를 실제 차량에 적용하는 것)의 주요 차량 제조사, 연구소 등에서 보편적으로 사용되고 있는 안전하고 효율적인 방법입니다. 위의 방법으로 3개월 기간 동안 언리얼로 차량 시뮬레이션 환경 조성, 물리 모델 적합성을 검증하고 이후 디플로닌 학습 도구 선정을 진행하였으며, 이후 2개월의 기간 동안 AI 학습 로직을 작성하였습니다. *시뮬레이션 도구 Unreal 엔진: 시뮬레이션 결과가 실제 자율주행 차량에 대응할 수 있도록 실제 자율주행 차량에서 사용된 카메라에 대응하는 가상의 카메라 출력 이미지와 라이다 센서에 대응하는 뎁스 렌더링 결과를 AI 학습에 입력 레이어로 사용했습니다. 대학(공학부)의 의뢰를 받은 자율주행 AI, 디플로닌 프로그램 콘텐츠입니다. 언리얼로 제작된 대학교 맵에서 자율주행하는 차량 AI를 제작했습니다. 이번 프로젝트에 사용된 자율주행 차량 AI 학습 방법론은 (3D 가상 환경을 시뮬레이션하여 해당 환경에서 자율주행 AI를 학습시켜 얻은 데이터를 실제 차량에 적용하는 것)의 주요 차량 제조사, 연구소 등에서 보편적으로 사용되고 있는 안전하고 효율적인 방법입니다. 위의 방법으로 3개월 기간 동안 언리얼로 차량 시뮬레이션 환경 조성, 물리 모델 적합성을 검증하고 이후 디플로닌 학습 도구 선정을 진행하였으며, 이후 2개월의 기간 동안 AI 학습 로직을 작성하였습니다. *시뮬레이션 도구 Unreal 엔진: 시뮬레이션 결과가 실제 자율주행 차량에 대응할 수 있도록 실제 자율주행 차량에서 사용된 카메라에 대응하는 가상의 카메라 출력 이미지와 라이다 센서에 대응하는 뎁스 렌더링 결과를 AI 학습에 입력 레이어로 사용했습니다.

-(왼쪽) 라이다 센서에 대응하는 Depth 이미지 — (우)카메라의 이미지 센서에 대응하는 렌더링 이미지 – 상 실제 센서에 대응하는 결과는 최종적으로 가공되어 디플로닌 입력 레이어에 사용됩니다. 위 이미지를 그대로 사용할 경우 정보의 명확성이 떨어지고 디플로닌에 불필요하고 반복적인 정보가 포함되어 있어 실시간으로 해상도 조정, 이미지 보정(필터링)을 하였습니다. 이 입력 정보의 전처리 과정은 AI 디플로닌 학습의 실수나 시간을 줄여주는 중요한 과정입니다. *AI 디플로닌의 학습 도구 : 1차 작업은 Python에서 구동되는 Keras 환경으로 선정하였습니다. 1차 작업의 짧은 기간에 대응하기 위해 직관적인 Keras를 AI 학습 도구로 선정하였으며, 2차 진행부터는 보다 촘촘한 AI를 구현하기 위해 파이썬으로 구동되는 PYTORCH를 사용할 계획입니다. -(왼쪽) 라이다 센서에 대응하는 Depth 이미지 — (우)카메라의 이미지 센서에 대응하는 렌더링 이미지 – 상 실제 센서에 대응하는 결과는 최종적으로 가공되어 디플로닌 입력 레이어에 사용됩니다. 위 이미지를 그대로 사용할 경우 정보의 명확성이 떨어지고 디플로닌에 불필요하고 반복적인 정보가 포함되어 있어 실시간으로 해상도 조정, 이미지 보정(필터링)을 하였습니다. 이 입력 정보의 전처리 과정은 AI 디플로닌 학습의 실수나 시간을 줄여주는 중요한 과정입니다. *AI 디플로닌의 학습 도구 : 1차 작업은 Python에서 구동되는 Keras 환경으로 선정하였습니다. 1차 작업의 짧은 기간에 대응하기 위해 직관적인 Keras를 AI 학습 도구로 선정하였으며, 2차 진행부터는 보다 촘촘한 AI를 구현하기 위해 파이썬으로 구동되는 PYTORCH를 사용할 계획입니다.
소스 코드 샷의 일부 소스 코드 샷의 일부
소스 코드 샷의 일부(Python 코드를 제작한 IDE 환경은 PyCharm을 사용합니다.) – 언리얼로 시뮬레이션되고 Python 기반 Keras에서 딥러닝되고 있는 언리얼 샷과 소스 코드의 일부 -*AI 딥러닝 과정 아래에는 총 20일간의 딥러닝 과정 영상을 첨부하였습니다. 소스 코드 샷의 일부(Python 코드를 제작한 IDE 환경은 PyCharm을 사용합니다.) – 언리얼로 시뮬레이션되고 Python 기반 Keras에서 딥러닝되고 있는 언리얼 샷과 소스 코드의 일부 -*AI 딥러닝 과정 아래에는 총 20일간의 딥러닝 과정 영상을 첨부하였습니다.
딥러닝에 사용된 Geforce RTX 4090*2 way 머신 딥러닝에 사용된 Geforce RTX 4090*2 way 머신
딥러닝에 사용된 Geforce RTX 4090*2 way 머신 딥러닝에 사용된 Geforce RTX 4090*2 way 머신
(이번 프로젝트에 사용된 위의 Geforce RTX 4090*2 way기계의 AI디플러 닌 처리 속도는 대략 Geforce RTX 3090*4 way정도의 속도가 나옵니다.)*주행 시나리오:사용자가 지정한 목적지까지 사고 없이 달리도록, 나열된 가상의 GPS좌표를 차례로 통과하는 시나리오입니다.이 때문에 GPS신호를 받는 교차로의 반경 3m정도의 공간에서 AI의 핸들과 브레이크 조절에 개입하고 다음 방향의 도로 입구까지 진입하게 하였습니다.*사용자의 목적 때문에 논리가 AI의 조절에 개입할 때 발생하는 문제에 대한 계획:논리가 차량 통제에 개입할 경우 AI의 판단에 따른 제동, 회피 등 중요한 컨트롤이 무시당할 위험이 있습니다.이에 대한 대안으로, 논리가 개입하는 구간에서 AI의 컨트롤 변수를 모니터링 하고, AI에 의한 브레이크(브레이크), 핸들(회피)으로 판단된 경우 AI컨트롤의 값을 사용하면서 GPS의 방향 지시 등의 구간 로직의 개입 때도 AI에 의한 보행자의 브레이크 등이 이뤄질 것으로 판단됩니다.*안 사실적이어서 제작된 현장감이 높은 대학 내부 모습.(이번 프로젝트에 사용된 위의 Geforce RTX 4090*2 way기계의 AI디플러 닌 처리 속도는 대략 Geforce RTX 3090*4 way정도의 속도가 나옵니다.)*주행 시나리오:사용자가 지정한 목적지까지 사고 없이 달리도록, 나열된 가상의 GPS좌표를 차례로 통과하는 시나리오입니다.이 때문에 GPS신호를 받는 교차로의 반경 3m정도의 공간에서 AI의 핸들과 브레이크 조절에 개입하고 다음 방향의 도로 입구까지 진입하게 하였습니다.*사용자의 목적 때문에 논리가 AI의 조절에 개입할 때 발생하는 문제에 대한 계획:논리가 차량 통제에 개입할 경우 AI의 판단에 따른 제동, 회피 등 중요한 컨트롤이 무시당할 위험이 있습니다.이에 대한 대안으로, 논리가 개입하는 구간에서 AI의 컨트롤 변수를 모니터링 하고, AI에 의한 브레이크(브레이크), 핸들(회피)으로 판단된 경우 AI컨트롤의 값을 사용하면서 GPS의 방향 지시 등의 구간 로직의 개입 때도 AI에 의한 보행자의 브레이크 등이 이뤄질 것으로 판단됩니다.*안 사실적이어서 제작된 현장감이 높은 대학 내부 모습.
자율주행 AI 딥러닝 시 현장감 높은 그래픽은 매우 중요합니다. 가상의 3D 환경에서 학습된 AI 딥러닝 데이터를 실제 차량에 적용했을 때 실제 카메라로 보이는 이미지와 엔진에서 학습할 때 얻은 이미지가 비슷해야 엔진 세계에서 학습된 데이터가 실제 차량의 자율주행에 유용하게 사용될 수 있기 때문입니다. 자율주행 AI 딥러닝 시 현장감 높은 그래픽은 매우 중요합니다. 가상의 3D 환경에서 학습된 AI 딥러닝 데이터를 실제 차량에 적용했을 때 실제 카메라로 보이는 이미지와 엔진에서 학습할 때 얻은 이미지가 비슷해야 엔진 세계에서 학습된 데이터가 실제 차량의 자율주행에 유용하게 사용될 수 있기 때문입니다.