The Korean Society Of Automotive Engineers
[ Article ]
Transactions of the Korean Society of Automotive Engineers - Vol. 29, No. 12, pp.1123-1132
ISSN: 1225-6382 (Print) 2234-0149 (Online)
Print publication date 01 Dec 2021
Received 01 Jun 2021 Revised 27 Aug 2021 Accepted 30 Aug 2021
DOI: https://doi.org/10.7467/KSAE.2021.29.12.1123

다채널 라이다의 주행 및 가상 데이터셋에 대한 딥러닝 기반 차량 검출 알고리즘의 학습 및 성능 비교 연구

김윤범 ; 이태현 ; 송봉섭*
아주대학교 기계공학과
Training and Performance Analysis of Vehicle Detection Neural Networks to Field Test and Simulation Datasets of Multi-channel Lidar
Yunbeom Kim ; Taehyun Lee ; Bongsob Song*
Department of Mechanical Engineering, Ajou University, Gyeonggi 16499, Korea

Correspondence to: *E-mail: bsong@ajou.ac.kr

Copyright Ⓒ 2021 KSAE / 193-08
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium provided the original work is properly cited.

Abstract

In this paper, the training method used in a lidar-based, object detection algorithm is applied to different types of datasets, i.e., experimental driving data and virtual simulation data. Then, their performances are compared with respect to different key performance indexes(KPIs). Among many object detection methods introduced in the literature, three distinguished networks that consider the representation of lidar cloud points are chosen to compare fine tuning and performance. While most open datasets reflect only safe driving situations, it is necessary to develop and validate the object detection algorithm in dangerous and critical situations. With the generation of a virtual simulation dataset, including unsafe scenarios, the performance of the object detection algorithms can improve when the fine-tuning method is applied, along with the virtual dataset.

Keywords:

Vehicle detection, Deep learning, 3D LiDAR, Fine tuning, Sensor simulator, Virtual data

키워드:

차량 검출, 심층 학습, 3차원 라이다, 세부 튜닝, 센서 시뮬레이터, 가상 데이터

1. 서 론

자율주행 자동차에 대한 관심이 나날이 커짐에 따라 딥러닝을 기반으로 한 인지 기술이 급속도로 발전하고 있다. 우선적으로 카메라 영상에 대한 차량, 보행자, 또는 차선 등 다양한 객체를 검출(Object detection)하고 구분(Recognition)하는 기술이 제안되었고 최근에는 라이다(Lidar)를 기반한 딥러닝 인식기술로 활발하게 연구가 확대되고 있다.1) 특히 3D라이다는 3차원 포인트 클라우드(Point cloud)를 생성하여 주변 환경에 대해 정확한 거리 정보를 얻을 수 있기에 2D뿐만 아니라 3D 객체 검출 연구에 사용되고 있다.2)

라이다 기반 객체 검출 연구는 대부분 지도 학습(Supervised learning) 기반의 딥러닝 알고리즘이 개발되고 되고 있으며 이를 가속화하기 위한 데이터셋(Dataset)이 공개되고 있다.2-4) 그중 가장 널리 알려진 KITTI 데이터셋을 이용하여 객체 검출 알고리즘을 개발하고 그 성능을 비교하는 리더보드(Leader board)가 공개되어 있다.2)

리더보드에 소개된 객체 검출 기술은 크게 포인트 클라우드의 표현방법(Representation)과 검출 단계(Stage)로 구분할 수 있다. 우선 라이다 정보를 표현하는 방법에 따라 4가지로 나눌 수 있다. 영상기반 객체 검출에 널리 사용하는 Convolution Neural Network(CNN)를 사용하기 위해 2D 격자(Grid)로 표현하는 이미지 기반 표현, 3D 격자로 표현하는 복셀(Voxel) 기반 표현, 포인트 클라우드의 정보를 직접 사용하는 포인트 기반 표현, 주변 포인트와의 관계를 정점(Vertex)과 간선(Edge)으로 이루어진 그래프로 표현하는 그래프 기반 표현이 있다. 검출 단계로는 물체를 사각형으로 표현하고 해당 위치와 종류를 동시에 예측하는 단식(Single stage) 기법과 이를 단계적으로 객체의 위치를 먼저 예측하고, 후에 종류를 분류하는 다단식(Multi stage) 기법으로 나눌 수 있다.1) 대표적으로 Complex-YOLOv3,5) YOLO3D,6) Birdnet7) 등이 2D 이미지 기반으로 표현하고 YOLO8)(Single stage), RCNN9)(Multi stage) 등을 검출 알고리즘의 백본(Backbone)으로 사용하여 개발되었다. 다음으로 VoxelNet,10) SECOND,11) Fast Point-RCNN12) 등이 복셀(Voxel)기반으로 표현하고 Fast Point-RCNN의 경우 Fast RCNN을 검출하기 위한 백본 네트워크로 사용되었다. 세 번째로 포인트 기반 접근방법으로 Point Pillars,13) 3DSSD,14) PointRCNN15) 등이 제안되고 있으며 더 나아가 복셀과 포인트 기반 접근 방법을 혼용한 PV-RCNN16)이 최근에 제안되었다. 마지막으로 그래프 기반 표현 방법을 사용한 것으로는 PC-RGNN,17) Point-GNN18) 등이 있다.

객체 검출 알고리즘의 검증과 평가는 일반적으로 AP(Average Precision)와 실행시간 등을 주요 KPI(Key Performance Index)를 설정한 후 주어진 데이터셋에 대하여 상대적인 비교를 통하여 이루어지고 있다. AP는 물체 검출 알고리즘의 두 성능인 정밀도(Precision)과 재현율(Recall)을 종합한 수치이다.30) 하지만 공개된 데이터셋은 일반적으로 안전하게 주행하는 시나리오가 대부분을 차지하고 있어 충돌이 날 수 있는 위험 상황 시나리오에 대한 알고리즘의 검증과 평가는 한계가 있다. 즉, 라이다의 객체 검출 시 중요한 시나리오 또는 획득하기 어려운 상황(Edge-case)에 대한 공개 데이터셋을 찾아보기 어려워 검증과 평가 관점에서 미흡한 점이 존재한다. 이러한 이유로 최근에는 시뮬레이터를 사용한 가상환경에서 생성한 데이터를 바탕으로 알고리즘을 학습하고 평가하는 방법이 제시되고 있다.22)

본 논문에서는 포인트 클라우드의 표현방법과 검출 단계의 구분에 따라 대표적인 딥러닝 기반 차량 검출 네트워크 3종을 선정하고 이를 실제 주행데이터와 시뮬레이터를 통해 생성된 가상데이터를 통합한 데이터셋에 대해서 학습을 하고 상대적 성능을 비교하고자 한다. 좀 더 구체적으로 충돌 위험성이 큰 가상 위험 시나리오에 대한 시뮬레이션을 수행하고 성능 비교 시 평가지표는 자차량의 주행 궤적 상에 있는 선행 차량(Primary vehicle) 검출로 제한하여 안전성 관점에서의 성능 분석을 수행하고자 한다. 더 나아가, 학습하는 방법이 객체 검출 성능에 미치는 영향을 살펴보고자 한다.


2. 문제 정의

라이다 기반 차량 검출 알고리즘의 검증 및 평가를 위하여 64채널 라이다 데이터를 제공하는 KITTI 데이터셋이 가장 널리 알려져 있다.2) 그 외에도 Waymo, Audi 등 많은 기업에서 라이다의 장착위치, 개수, 채널 수가 다른 다양한 라이다 데이터셋이 지속적으로 공개되고 있다.3,4) 국내의 경우 상대적으로 공개 데이터셋은 적으며 최근에 128채널 라이다를 기반으로 KODAS라 명명되는 고속도로와 국도 주행 데이터가 일부 공개되고 있다(Fig. 1 참조).19,20) 이러한 데이터셋 에서는 차량 검출 알고리즘의 성능 평가를 위하여 일반적으로 AP를 기준으로 순위를 공개하고 있다. 즉 Fig. 1(a)의 경우 7대 차량(붉은색 박스)에 대해서 얼마나 차량을 잘 인식하느냐(녹색 박스)로 평가하고 있지만 ADAS나 자율주행으로의 응용 측면을 고려한다면 자차 주변 차량의 인식 성능이 상대적으로 더 중요하다고 할 수 있다. 다시 말해서, Fig. 1(a)의 경우 자차 기준으로 가까운 전방 3대의 인식 성능이 좀 더 멀리 있는 4대의 전방 차량 인식 성능보다 안전성 관점에서 더 중요하다고 말할 수 있다. 또 다른 예로 Fig. 1(b)의 경우 멀리 보이는 차선 내 차량의 인식 성능보다 옆 차선에서 가까이 보이는 차량의 인식 성능이 중요하다는 뜻이다. 따라서 본 연구에서는 모든 차량 검출 성능을 비롯하여 충돌 위험성이 높은 선행 차량(Primary vehicle)에 대한 검출 성능을 KPI에 포함하여 성능 분석 연구를 진행하고자 한다.

Fig. 1

Example of vehicle detection based on KODAS dataset: detected vehicle(green) and ground truth (GT) for vehicles(red)

다음으로 Fig. 1에서 보는 바와 같은 공개 데이터셋은 대부분 안전한 주행 상황에서의 데이터만을 포함하고 있다. 알고리즘의 작동범위를 확대하고 성능 안전성을 제고하기 위해서는 실제 교통사고 상황과 같은 위험 시나리오에 대한 데이터 획득, 이를 통한 학습과 평가가 수행되어야 하지만 데이터 획득 자체가 현실적으로 어렵다. 이에 대안으로 시뮬레이터를 이용한 가상 데이터셋을 생성하고 이를 기반으로 운전 보조 시스템의 성능을 개선시키려는 연구가 활발하게 시작되고 있다.21,31) 본 연구에서는 가상 데이터셋 생성을 위하여 위험 시나리오 생성 방법론 및 데이터 자동 생성 도구를 적용하고 이를 기반으로 네트워크를 학습하고 세부 튜닝에 따른 인식 성능을 비교하고자 한다.

Fig. 2에서는 IPG CarMaker 시뮬레이터의 128채널 라이다 센서 모델을 사용하여 Fig. 1의 시나리오를 가상화한 결과를 보여주고 있다. 문헌에서 소개된 바와 같이 CARLA와 Prescan과 같은 다른 시뮬레이터 환경을 이용하여 라이다 데이터를 가상으로 생성할 수 있으며 본 연구에서는 우선 CarMaker 시뮬레이터를 기반으로 성능 분석 연구를 진행하였다.22) 더 나아가 시뮬레이터를 사용하여 Fig. 2와 같은 급격하게 끼어드는 위험 시나리오 데이터를 생성할 수 있어 실제 국내 교통사고 데이터 분석을 기반으로 한 시나리오에 대한 위험 상황을 고려하고 이를 기반으로 알고리즘의 성능을 검증 및 평가하고자 한다.24)

Fig. 2

Examples of vehicle detection based on virtual lidar dataset: detected vehicle(green) and ground truth (GT) for vehicles(red)


3. 차량 검출 알고리즘

3.1 검출 알고리즘 선정 및 설정

데이터셋의 변화에 따른 차량 검출 알고리즘의 비교 성능 분석 연구를 위하여 3차원 라이다 정보를 2차원 이미지로 표현하여 접근하는 방법으로 Complex-YOLO를 선정하고, 복셀과 포인트를 종합적으로 표현하여 접근하는 PV-RCNN, 그리고 그래프로 접근하는 Point-GNN을 각각 선정하였다. 다음으로 64채널과 128채널 라이다 데이터셋에 각각 적용하기 위한 설정상수(Configuration parameter)에 대해서 설명하고자 한다.

3.1.1 Complex-YOLOv3

네트워크의 구성은 3D 형태인 라이다 데이터를 격자(Grid cell)형식의 2D 이미지로 표현한 후 영상기반 객체인식 알고리즘에서 사용되었던 CNN기법의 하나인 YOLOv2를 백본으로 차량을 검출한다.5) 네트워크의 입력은 BEV(Bird Eye’s View) 이미지로 각 채널(RGB)에 격자 내 라이다 포인트의 최대 높이, 반사율(Intensity), 밀도(Density) 값을 각각 포함하고 있다. 또한 YOLOv2와 다르게 객체의 방위각(Orientation)을 포함하여 객체의 크기, 위치, 신뢰도를 예측하기 위한 Euler-Region Proposal Network(E-RPN)를 포함한다.

64채널 라이다 데이터셋(KITTI)으로 학습된 네트워크를 라이다의 장착 위치 및 채널 수가 다른 데이터셋(128채널 라이다)에 적용하기 위해서 2D 이미지로 변환하기 전에 선정되는 라이다 포인트의 관심영역(ROI)과 앵커 박스(Anchor box)의 크기를 조정하였다. 3차원의 관심영역을 x, y, z 방향으로 [0 50], [-25 25], [-2.6 2] (m)으로 설정하였다. 특히 z방향의 범위는 KODAS 데이터셋에 해당하는 차량의 센서 장착 위치를 고려하여 최솟값을 선정하고 신호등, 표지판과 같은 물체가 포함되지 않으며, 트럭, 버스와 같은 대형 차량은 표현할 수 있도록 최댓값을 설정하였다. 앵커 박스의 크기는 학습데이터의 평균적인 차량이 2D 이미지로 변환될 때의 폭과 길이가 될 수 있도록 폭 21픽셀(약 1.7 m), 길이 55픽셀(약 4.4 m)으로 선정하였다.

3.1.2 PV-RCNN

기본적인 네트워크의 구조는 크게 라이다 데이터를 복셀로 표현한 뒤 3D CNN과 RPN을 포함하는 RCNN을 기반으로 객체를 검출하는 백본 네트워크, 라이다 데이터를 다운 샘플링하여 생성한 핵심(Key) 포인트가 어떠한 물체를 구성하는 포인트였는지를 예측하는 Voxel Set Abstraction(VSA) 모듈, 그리고 백본 네트워크에서 검출된 객체와 객체 주변의 핵심 포인트를 이용하여 객체의 3D 상자를 개선하는 모듈로 구성되어있다. 백본 네트워크는 복셀로 표현된 라이다 데이터를 입력 받아 4개의 3D CNN27)을 통과시킨 후 z축 방향으로 투영하여 BEV를 생성한 뒤 RPN에 통과시켜 객체의 위치와 크기, 방향 정보를 가지는 3D 박스를 예측한다. VSA 모듈은 포인트 주변의 정보를 통해 포인트가 구성하는 물체를 예측하는 PointNet++기반의 레이어를 사용하여 핵심 포인트 클라우드의 각 포인트의 종류를 예측한다.28) 이때 핵심 포인트 클라우드의 주변 정보로는 핵심 포인트 클라우드, 4개의 3D CNN의 피쳐맵, 포인트가 위치한 BEV의 픽셀을 사용한다. 마지막으로 두 결과를 병합하는 모듈에서는 객체의 3D 상자에 길이, 폭, 높이 방향으로 6×6×6개의 격자 형태로 점을 배치한 뒤, 개별 점 주변의 핵심 포인트를 이용하여 격자를 이루는 점의 종류를 예측한 뒤 선형 네트워크를 통해 객체의 위치, 크기, 방향 정보를 개선한다.

KODAS 데이터셋으로 학습하는 과정에서 복셀 사이즈와 수, 핵심 포인트의 수와 핵심 포인트의 종류를 예측할 때 사용할 핵심 포인트 주변 반지름의 크기를 조정하였다. 복셀 사이즈를 [0.1 0.1 0.15] (m)으로 설정한 후 복셀의 밀도가 유지될 수 있도록 복셀의 수를 16,000개에서 40,000개로 증가시켰다. 핵심 포인트의 수 역시 밀도가 비슷하게 유지될 수 있도록 4096, 5120, 6144개의 경우를 실험하여 가장 좋은 성능을 보인 5120개로 핵심 포인트의 수를 결정하였다. 핵심 포인트 주변 영역을 정의하는 반지름의 크기는 핵심 포인트 클라우드와 4개의 3D CNN 피쳐맵의 순서대로 [0.4 0.4 0.8 1.2 2.4] (m)에서 [0.6 0.6 1.2 1.6 3.2] (m)으로 증가시켜 성능이 개선됨을 확인하였다. 앵커 박스의 크기는 Complex-YOLOv3에서 설정한 것과 동일하게 폭 1.7 m, 길이 4.4 m에 높이를 1.5 m로 선정하였다.

3.1.3 Point-GNN

기본 구조는 먼저 라이다 데이터를 고정반경을 가진 이웃 군집화(Fixed-radius near neighbors)를 통해 반경 내 분포되어 있는 포인트 클라우드를 복셀 다운 샘플링(Voxel down sampling)을 진행을 한 뒤 복셀화된 포인트를 정점(Vertex)으로 사용한다. 다음으로 정점끼리 연결하여 간선(Edge)을 만들어 그래프 형태로 변환한다. 그래프로 전처리가 된 포인트 클라우드를 백본 네트워크인 GNN(Graph Neural Network)29)을 통해 여러 객체의 위치와 분류를 예측한다. 예측 과정에서 동일 객체에 겹쳐지는 박스를 제거하기 위해 후처리로 NMS(Non-Maximum Suppression) 방법론을 이용한다.18)

라이다 해상도가 증가함에 따라 그래프를 형성할 때 하나의 정점에 이웃하는 정점의 수를 조정하였다. 그래프를 구성할 때 간선을 연결하는 이웃점의 수를 256개에서 350개로 증가시켰으며 이는 사용된 학습 환경에서 학습할 수 있도록 설정한 최대 이웃점의 수이다. 평가 과정에서는 정육면체 복셀의 각 변의 길이가 0.8 (m), 0.6 (m), 0.4 (m)인 경우를 평가하였고 결과가 가장 좋았던 0.4 (m)로 설정을 하였다. 앵커박스의 크기는 PV-RCNN에서 설정한 것과 동일하게 선정하였다.

3.2 가상 데이터 생성

라이다 기반 차량 검출 알고리즘의 성능 및 안전성 제고를 위하여 실제 도로 주행 환경뿐만 아니라 충돌 위험성이 높은 주행 시나리오를 동시에 고려하고자 한다. 충돌 위험성이 높다는 것은 적응순항제어(ACC)나 차선 변경 시스템과 같이 선제적으로 안전성을 제고하는 행위가 없는 경우 충돌이 일어나는 경우를 의미한다. 충돌 위험성이 높은 주행 시나리오의 경우 국내 교통사고 사례를 모사하는 센서 및 차량 시뮬레이터를 이용하여 가상 주행 데이터를 생성하고자 한다.24) 이를 위해서 크게 두 단계로 구분하여 진행하였다. 우선 센서 모델을 기반으로 생성한 가상 라이다 데이터와 실제 획득한 라이다 데이터와의 유사성 또는 정합성을 확인하였다. 이는 가상환경에서 생성한 센서 데이터가 알고리즘의 입력으로 들어가기 때문에 실제 센서 데이터와의 유사성 검증은 학습하기 전에 반드시 선행되어야 하는 과정이다.23) 다음으로는 위험 시나리오를 선정하는 방법론을 이용하여 위험 시나리오를 생성하고 가상 라이다 데이터를 획득하는 과정으로 구분할 수 있다.

먼저 가상 센서 데이터와 실제 주행 데이터 간의 정합성을 확인하기 위해 각각의 포인트 클라우드 분포를 시각적으로 비교하였으며 정량적 비교를 위해서 실제 주행 데이터를 바탕으로 가상 데이터를 생성하였다. 가상 라이다 데이터는 KODAS데이터셋의 기준 자동차와 유사한 차량 모델과 센서 위치를 사용하여 획득하였다.19,20) 정합성의 지표로는 차량 검출 알고리즘을 실제 데이터와 가상 데이터를 적용했을 때의 위치 값의 변화량으로 선정하였다.25) 특정 알고리즘의 특성에 인한 변화량 발생도 가능하기에 두 개의 차량 검출 알고리즘을 선정하여 각각 정합성 지표를 산출하였다. 예를 들어 Fig. 3(a)(d)는 실제 데이터와 이를 모방한 가상 데이터의 전방 이미지를 각각 보여주고 있다. Fig. 3(b)(e)는 라이다 센서의 포인트 클라우드를 BEV로 나타낸 모습이다. 이때 녹색 점선 박스는 PV-RCNN이 검출한 결과를 보여주며 그 중 실선 박스는 선행차량에 해당하는 검출결과를 보여주며 정합성을 평가하는 대상 객체로 선정하였다. 더 나아가, Fig. 3(c)(f)는 검출된 선행차량을 확대한 것으로 포인트 클라우드를 BEV 관점으로 시각적으로 비교할 수 있다.

Fig. 3

Comparison of experimental and virtual lidar data: detected vehicle(dotted box) and primary vehicle(solid-line box)

다음으로 위에서 제안한 정합성 지표를 적용하기 위한 알고리즘으로 Complex-YOLOv3와 PV-RCNN을 선정하였다. PV-RCNN을 이용하여 정합성 지표를 계산할 경우 Fig. 3(b)와 같이 실제 주행 데이터에 대해서 선행 차량의 GT와 검출 결과와의 위치 오차(∥e∥)가 발생하며 20초 주행 데이터에 대한 평균 오차가 0.24 (m)이다. 같은 방법으로 Fig. 3(e)와 같은 가상 데이터에 적용하였을 경우 0.07 (m)로 더 작은 오차가 발생하였다. 이를 Complex-YOLOv3로 적용할 경우 실제 데이터와 가상 데이터에 대해서 각각 0.56 (m)과 0.3 (m)의 평균 오차가 발생하였다. 이처럼 차량 검출 알고리즘이 주어진 두 주행 데이터셋에 대해서 검출 성능과 위치 오차 관점에서 유사성을 정량화하고 서로 비교할 수 있음을 보여주었다. 본 논문에서는 이러한 정량적 수치가 가상 센서 데이터의 무결성이나 센서 모델의 정확성을 의미하는 것은 아니며 이후에 이루어지는 학습과 Fine tuning 과정을 위하여 주어진 실제 및 가상 데이터셋은 차량 검출 네트워크의 학습에 사용될 수 있는 정도의 정합성을 가지고 있다고 주관적인 판단을 하였다.

다음으로는 우리나라 교통사고분석시스템(TAAS)의 사고 데이터 분석을 기반으로 제안된 충돌 위험(Pre-crash) 시나리오 모델을 이용하여 위험 시나리오를 구성하였다.24) 본 연구에서 생성한 위험 시나리오의 종류는 크게 도로와 상대차의 거동에 따라 11종류를 선정하여 총 27개의 상세 시나리오를 시뮬레이션으로 구현하였다(Fig. 2 참조). 더 나아가 위험 시나리오 외에도 시뮬레이션 데이터에 대해 충분한 학습을 위해 일반 도로주행 상황을 표현한 시나리오를 생성하였다(Fig. 3 참조).

3.3 세부 튜닝

실제 주행 데이터셋과 시뮬레이션 데이터셋 중 하나의 데이터셋으로 학습된 알고리즘에 추가적으로 다른 데이터셋을 학습시키는 전이학습(Transfer learning)의 기법의 하나인 세부 튜닝(Fine-tuning)을 사용하였다. 세부 튜닝은 일반적으로 추가적인 데이터셋을 학습할 때 기존 데이터셋으로 사전 학습(Pre-trained)된 모델로 초기화한 뒤 추가 학습을 진행하는 방법이다. 세부 튜닝을 하는 방법은 크게 네트워크 전체를 재학습하는 방법과 특정 부분만을 학습하는 방법으로 구분할 수 있다.

본 연구에서 고려된 시나리오의 종류나 데이터셋의 규모가 정해져 있는 경우는 알고리즘을 학습하는 방법으로 전체 데이터의 일정 비율을 학습에 사용하고 나머지를 테스트에 사용하면 될 것이다. 하지만 실제 개발 상황에서는 수많은 시나리오와 주행 환경이 고려되어야 하며 데이터가 기하급수적으로 증가할 수 있다. 이러한 상황을 고려하여 순차적으로 새로운 데이터에 대한 전이 학습이 필요하며 문헌에서 제안되고 있는 세부 튜닝방법을 바탕으로 사전 학습된 모델로 초기화한 뒤 알고리즘의 모든 부분을 재학습하여 성능비교를 수행하고자 한다.21,26)

3.4 선행차량 검출 성능 지표

선행차량 검출 평가는 AP를 계산하기 이전 선행차량을 추출하는 전처리가 포함된 평가방법이다. 전처리 과정은 Table 1에서 보는 바와 같이 검출 차량 집합 B, 전방 관찰 범위 R, 차선의 폭 W, 추출할 차선의 수 N, 선행차량으로 정의할 차량의 각도 한계 ψmax, 차량의 일반적인 길이 Lcar를 입력으로 사용한다. 집합 B는 검출 차량 bi의 집합이며, bi는 중심의 위치( xi,c, yi,c)와 방향(Ψi)을 가진다. 2-4번째 줄은 추출할 차선의 번호를 결정하고 선행차량의 후보가 되는 차량을 골라내는 과정이다. 5-10번째 줄은 각 차선에서 가장 가까운 두 대의 차량을 선정한 뒤 한 차선에 두 차량이 나란히 위치한 경우에는 모두 선행 차량으로 삼고, 그렇지 않으면 가장 가까운 한 대만 선행차량으로 삼는 과정이다.

Primary vehicle extraction algorithm

Fig. 4와 같은 상황에서 KODAS 경우 8개의 차량에 대한 라벨링이 되어 있다. 선행차량으로 FVL, FVI, FVR(Front Vehicle Left, In, Right-lane)를 고려할 경우 N이 3이 되며, 8개의 차량이 Brange가 된다. 이후 6번째 줄 과정을 통해 각 차선에서 가까운 2대에 속하는 3-6번 차량이 후보로 남게 되고, 이후 9번째 줄 과정을 통해 자차와 가까운 차량만이 남게 되어 각 차선에 3, 5, 6번 차량이 선택된다.

Fig. 4

Example of primary vehicle(green)


4. 검증 및 평가

선정된 차량 검출 알고리즘의 라이다 채널에 따른 상대적 성능 비교를 위하여 KITTI, KODAS, 시뮬레이션 데이터셋과 같이 3종류의 데이터셋을 고려하였다. KITTI 데이터셋은 라이다 객체 검출의 검증 및 비교 평가에 널리 쓰이는 공개 DB 중 하나로 64채널 라이다를 사용하며 한 장면당 약 12만 개의 클라우드 포인트로 이루어져 있다.2) KODAS 데이터셋은 128채널 라이다를 사용하여 국내 판교, 안산에서의 도심, 고속도로에서 측정한 데이터셋이며 포인트 클라우드 한 장면당 약 24만 개의 포인트로 이루어져 있다.19) 시뮬레이션 데이터셋은 KODAS 데이터셋과 유사하게 128채널 라이다를 사용하여 KODAS주행 환경을 모사한 일반 주행(General) 시나리오와 위험(Pre-crash) 시나리오가 포함된 데이터셋이다. 가상 시뮬레이션 데이터의 경우 총 주행시간은 1,326초로 10 Hz마다 추출하여 데이터를 생성하였다. 본 연구에서 사용한 데이터셋을 Table 2와 같이 구분하였다.

A list of lidar datasets

우선 Table 3과 같이 주어진 3개의 네트워크에 대해서 Table 2의 KITTI 데이터셋의 50 %를 무작위로 선정하여 논문에서 제시된 성능과 비교를 하였다. 본 비교에서는 차량 전체의 인식 성능보다는 ADAS로의 적용 또는 안전에 영향을 미치는 영역 내의 인식 성능을 비교하기 위해 좌우 25 m, 전방 50 m의 정사각형의 관심영역(ROI) 내 차량 검출 성능을 평가하였다. 관심영역은 각 네트워크의 검출 범위의 교집합으로 선정하였다. 후방영역은 Point-GNN이 전방영역만을 검출할 수 있어 제외되었으며, Complex-YOLOv3의 입력 이미지는 정사각형이므로 관심영역의 종방향과 횡방향의 크기를 동일하게 선정하였으며 마지막으로 픽셀 단위의 입력 이미지에서 객체의 크기가 작아 낮은 성능을 보이는 것을 방지하기 위해 전방 50 m의 영역을 선정하였다. 또한, 주변 차량 중 안전과 직접적인 연관이 있는 선행차량(Primary vehicle)에 대한 인지 성능 평가도 추가하였다. Complex-YOLOv3와 PV-RCNN의 경우 문헌상 성능과 1 % 이내의 오차를, Point-GNN의 경우 문헌보다 3 % 낮은 성능을 보여줌으로써 알고리즘에 대한 검증과정이 적절했음을 확인하였다. 차이의 원인으로는 관심영역의 설정과 평가 데이터셋의 차이로 예상된다.

Vehicle detection results(KPI: AP)

다음으로 128채널 라이다 데이터셋에 대한 객체 검출 알고리즘의 성능을 비교하기 위해 KODAS 데이터셋에 맞게 알고리즘을 설정 후 Table 3의 학습데이터를 이용하여 학습을 진행하였다. 학습은 Ubuntu 18.04, Xeon E5-2620, RTX2080를 사용하여 진행하였다. Complex-YOLOv3의 경우 Loss가 충분히 수렴하도록 약 14시간 동안 100 epoch의 학습을 진행하였으며 PV-RCNN의 경우 약 50시간 동안 40 epoch의 학습을 진행하였다. 마지막으로 Point-GNN의 경우 약 120시간 동안 140 epoch의 학습을 진행하였다.

64채널에서 128채널로의 라이다 데이터의 해상도가 증가함에 따라 Complex-YOLOv3는 약 5 %, PV-RCNN과 Point-GNN은 각각 약 4 %와 3 %의 AP상승을 보였다. 더 나아가 선행차량 검출 성능으로 KPI를 변경한 경우 Complex-YOLOv3와 PV-RCNN의 선행차량에 대한 AP는 각각 약 8 %, 1 % 증가한 성능을 보였다. 이처럼 선행차량 인식 관점에서 Complex-YOLOv3와 PV-RCNN이 Point-GNN보다는 상대적으로 좋은 성능을 보여주며 이때 각 네트워크의 검출 속도는 Complex-YOLO의 경우 6.2 Hz, PV-RCNN의 경우 2 Hz, Point-GNN의 경우 1.4 Hz로 Complex-YOLOv3가 가장 빠른 속도를 보였다.

128채널 라이다에 대한 성능 향상이 크지 않고 학습 시간이 오래 걸리는 Point-GNN을 제외하고, 시뮬레이션을 통하여 생성한 위험 상황 데이터에 대한 데이터셋의 확대 및 이를 기반으로 한 학습 방법에 대해서 살펴보고자 한다. 우선 Table 2와 같이 KODAS 40 %(train)만을 학습하는 경우와 시뮬레이션 43 % 데이터셋을 추가하여 확대된 데이터셋으로 학습하는 방법으로 구분하였다. 더 나아가, KODAS 40 %로 학습한 후 시뮬레이션 데이터로 순차적으로 학습하는 Fine-tuning 방법과 반대 순서로 학습하는 방법도 고려했다. Table 4에서 보는 바와 같이 평가를 시뮬레이션 데이터만을 사용하는 경우와 실제 주행 데이터를 포함하는 경우로 나누어 진행하였다.

Vehicle detection results of Complex-YOLOv3 and PV-RCNN with respect to different training datasets

KODAS 데이터셋만을 이용하여 학습한 경우 시뮬레이션 데이터에 대해서 검출성능 저하가 크게 발생하는 것인 확인할 수 있다. 그리고 순차적 학습(Fine-tunning)보다는 KODAS 데이터와 시뮬레이션 데이터를 모두 합쳐서 학습하는 경우 테스트된 2개의 네트워크에 대해서 전체적으로 우수한 성능을 보여주고 있음을 알 수 있다. KODAS 데이터셋만을 사용하여 학습하였을 때 시뮬레이션 데이터셋에 대한 성능이 낮은 이유는 크게 두가지로 볼 수 있다. 첫 번째는 시뮬레이션 데이터셋의 정합성을 확인하는 과정에서 관찰되었던 실제와 가상의 센서 모델 차이로 인한 성능 차이가 있다.21) 두 번째는 Fig. 2의 예시와 같이 시뮬레이션 데이터셋에는 KODAS 데이터셋에서 볼 수 없었던 위험 시나리오가 포함되었고, 위험 시나리오에서의 검출 성능이 낮았기 때문이다. 좀 더 구체적으로는 전체 데이터셋을 혼합하여 학습한 경우 Complex-YOLO는 시뮬레이션 데이터를 Fine-tuning한 경우와 1 % 내의 차이를 보이며 유사한 성능을 보였지만 PV-RCNN의 경우 Fine-tuning의 경우보다 전체 데이터셋 검출은 7 %, 선행차량 검출(Table 4의 괄호 안 성능 참조)은 4 % 높은 성능을 보였다.

Table 5는 참고문헌에 제시한 방법론을 토대로 시뮬레이션 데이터로 학습 후 실제 주행 데이터의 비율을 변화시키면서 Fine-tuning한 성능을 보여주고 있다. 성능 비교 시 Fine-tuning 진행 과정에서 생성된 개별 모델의 성능을 관찰한 뒤 가장 좋은 성능을 보인 모델을 선택하였다. Fine-tuning시 PV-RCNN의 경우 학습률(Learning-rate)을 선행 학습에 비해 1/10으로 줄여 최대 20 Epoch로 진행하였으며, Complex-YOLOv3의 경우 선행 학습과 같은 학습률과 Epoch를 사용하여 진행하였다.

Vehicle detection results of Complex-YOLOv3 and PV-RCNN with respect to different percentage of KODAS datasets

Table 5는 시뮬레이션 데이터로 학습한 후 실제 주행 데이터를 학습시키는 경우 네트워크 성능의 변동성이 크지 않음을 보여주고 있다. 즉 시뮬레이션을 통한 학습 후 실제 주행 데이터를 학습시킨다면 이후에 많은 주행데이터가 생성되더라도 매번 재학습을 하지 않고 좀 더 실제 주행 환경에 강인한 네트워크가 학습될 수 있을 것으로 예상할 수 있다.

마지막으로 좀 더 확대된 순차적인 학습 과정에 대한 성능 변화를 살펴보고자 한다. 위험 시나리오 4종류에 대해 7개의 시뮬레이션을 추가하여 1,216장(Simulation 9 %)의 데이터를 생성하였으며, Table 5의 세 번째 학습방법을 적용한 후 새로운 데이터만을 사용하는 추가하여 다시 학습하는(Fine-tunning) 방법과 새로운 데이터와 기존 학습 데이터를 각각 50 %씩 혼합하여 사용하는 방법으로 진행하였다. 학습 결과 두 방법 모두 Table 5의 세 번째 학습 결과와 비교했을 때 시뮬레이션 데이터에 대한 성능은 향상되었다. 하지만 새로운 데이터만을 사용하여 Fine-tuning하였을 때, 전체 평가 데이터셋에 대해 PV-RCNN의 전방차량 성능을 제외하고는 유의미한 개선이 이루어지지 않았다. 반면 새로운 데이터와 이전 학습 데이터를 혼합하여 학습하였을 때, 두 알고리즘 모두 두 KPI에 대해 성능이 상승하였다. 또한 새로이 추가된 데이터를 학습할 때 이전에 학습된 데이터와 혼합하여 학습하는 경우 모든 데이터를 혼합하여 한 번에 학습하는 방법(Table 4의 세 번째 결과)과 유사한 성능을 보여주고 있다. 학습된 결과를 적용한 예로 Fig. 5Fig. 2와 동일한 상황에서 개선된 검출 결과를 보여주고 있다. 즉 PV-RCNN와 Complex-YOLOv3 기반 차량 검출 알고리즘이 모든 차량을 검출하고 있음을 보여준다.

Vehicle detection results for Complex-YOLO and PV-RCNN with respect to additional simulation data

Fig. 5

Vehicle detection result of PV-RCNN(top) and Complex-YOLO(bottom): detected vehicle(green) and ground truth(red)


5. 결 론

본 연구에서는 문헌에서 제안되고 있는 라이다 기반 차량 검출 알고리즘에 대해서 학습과 평가관점에서 성능을 개선시킬 수 있는 방법에 대해서 살펴보았다. 좀 더 구체적으로 라이다 채널 수가 변경되는 경우에 대해서 2종류의 라이다 데이터셋을 대상으로 선정하였으며 위험한 시나리오를 고려하기 위하여 가상 라이다 데이터셋을 생성하였다. 다음으로 네트워크의 설정 상수를 적절히 설정하고 Fine-tuning을 적용하여 위에서 언급한 데이터셋의 변화에 대해서 적절하게 학습되어 성능저하가 발생하지 않도록 차량 검출 알고리즘을 개발하였다. 향후에는 좀 더 많은 주행 및 가상 데이터셋에 대해서 센서 모델의 정합성 분석, 전이학습의 방법론 다양화 등을 확대 적용하고 직접 연구 개발한 차량 검출 알고리즘과 다른 알고리즘을 비교하는 것에 사용하고자 한다.

Acknowledgments

이 연구는 산업자원통상부 산업핵심기술개발 사업의 연구비 지원(20000316, 긴급조향제어를 위한 딥러닝 기반 상황 인지 및 판단 기술 개발)과 국토교통부/ 국토교통과학기술진흥원의 연구비 지원(21AMDP-C162184-01, Lv.4 자율주행 차량 테스트베드 환경 구축)에 지원을 받아 수행하였음.

References

  • Y. Guo, H. Wang, Q. Hu, H. Liu, L. Liu and M. Bennamoun, “Deep Learning for 3D Point Clouds: A Survey,” IEEE TPAMI, 2020. [https://doi.org/10.1109/TPAMI.2020.3005434]
  • KITTI, 3D Object Detection Evaluation 2017, http://www.cvlibs.net/datasets/kitti/, , 2020.
  • Waymo LLC, Waymo Open Dataset Perception, https://waymo.com/open/, , 2021.
  • A2D2, https://www.a2d2.audi/a2d2/en.html, , 2021.
  • M. Simon, S. Milz, K. Amende and H. M. Gross, “Complex-Yolo: An Euler-Region-Proposal for Real-time 3D Object Detection on Point Clouds,” Proceedings of the European Conference on Computer Vision (ECCV) Workshops, 2018. [https://doi.org/10.1007/978-3-030-11009-3_11]
  • W. Ali, S. Abdelkarim, M. Zidan, M. Zahran and A. El Sallab, “Yolo3D: End-to-end Real-time 3D Oriented Object Bounding Box Detection from LiDAR Point Cloud,” Proceedings of the European Conference on Computer Vision (ECCV) Workshops, pp.716-728, 2018. [https://doi.org/10.1007/978-3-030-11015-4_54]
  • J. Beltrán, C. Guindel, F. M. Moreno, D. Cruzado, F. Garcia and A. De La Escalera, “Birdnet: A 3D Object Detection Framework from Lidar Information,” 21st International Conference on Intelligent Transportation Systems (ITSC), pp.3517-3523, 2018. [https://doi.org/10.1109/ITSC.2018.8569311]
  • J. Redmon and A. Farhadi, “Yolov3: An Incremental Improvement,” arXiv preprint arXiv:1804.02767, , 2018.
  • Y. Cao, X. Niu and Y. Dou, “Region-based Convolutional Neural Networks for Object Detection in Very High Resolution Remote Sensing Images,” 12th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD), pp.548-554, 2016. [https://doi.org/10.1109/FSKD.2016.7603232]
  • Y. Zhou and O. Tuzel, “VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp.4490-4499, 2018. [https://doi.org/10.1109/CVPR.2018.00472]
  • Y. Yan, Y. Mao and B. Li, “SECOND: Sparsely Embedded Convolutional Detection,” Sensors, Vol.18, No.10, Paper No.3337, 2018. [https://doi.org/10.3390/s18103337]
  • Y. Chen, S. Liu, X. Shen and J. Jia, “Fast Point R-CNN,” Proceedings of the IEEE/CVF International Conference on Computer Vision, pp.9774-9783, 2019. [https://doi.org/10.1109/ICCV.2019.00987]
  • A. H. Lang, S. Vora, H. Caesar, L. Zhou, J. Yang and O. Beijbom, “PointPillars: Fast Encoders for Object Detection from Point Clouds,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.12697-12705, 2019. [https://doi.org/10.1109/CVPR.2019.01298]
  • Z. Yang, Y. Sun, S. Liu and J. Jia, “3DSSD: Point-based 3D Single Stage Object Detector,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.11040-11048, 2020. [https://doi.org/10.1109/CVPR42600.2020.01105]
  • S. Shi, X. Wang and H. Li, “PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.770-779, 2019. [https://doi.org/10.1109/CVPR.2019.00086]
  • S. Shi, C. Guo, L. Jiang, Z. Wang, J. Shi, X. Wang and H. Li, “PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.10529-10538, 2019. [https://doi.org/10.1109/CVPR42600.2020.01054]
  • Y. Zhang, D. Huang and Y. Wang, “PC-RGNN: Point Cloud Completion and Graph Neural Network for 3D Object Detection,” arXiv preprint arXiv:2012.10412, , 2020.
  • W. Shi and R. Rajkumar, “Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud,” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.1711-1719, 2020. [https://doi.org/10.1109/CVPR42600.2020.00178]
  • KODAS, http://www.kodas.or.kr/index.do, 2020
  • K. Cho, J. Im, M. Kim, Y. Jin and S. Kang, “Feasibility Assessment of KODAS through Autonomous Driving Recognition Challenge,” Transactions of KSAE, Vol.29, No.3, pp.233-241, 2021. [https://doi.org/10.7467/KSAE.2021.29.3.233]
  • D. Dworak, F. Ciepiela, J. Derbisz, I. Izzat, M. Komorkiewicz and M. Wójcik, “Performance of Lidar Object Detection Deep Learning Architectures Based on Artificially Generated Point Cloud Data from CARLA Simulator,” 24th International Conference on Methods and Models in Automation and Robotics (MMAR), pp.600-605, 2019. [https://doi.org/10.1109/MMAR.2019.8864642]
  • H. Jang, W. Son, T. Ahn, Y. Lee and K. Park, “A Study on Methods for Constructing Deep Learning Training Datasets for Object Classification Using 3D Lidar Sensor,” Transactions of KSAE, Vol.28, No.6, pp.427-437, 2020. [https://doi.org/10.7467/KSAE.2020.28.6.427]
  • T. Hanke, A. Schaermann, M. Geiger, K. Weiler, N. Hirsenkorn, A. Rauch, S. A. Schneider and E. Biebl, “Generation and Validation of Virtual Point Cloud Data for Automated Driving Systems,” IEEE 20th International Conference on Intelligent Transportation Systems (ITSC), pp.1-6, 2017. [https://doi.org/10.1109/ITSC.2017.8317864]
  • J. Lee, U. Jung and B. Song, “Critical Scenario Generation for Collision Avoidance of Automated Vehicles Based on Traffic Accident Analysis and Machine Learning,” Transactions of KSAE, Vol.28, No.11, pp.817-826, 2020. [https://doi.org/10.7467/KSAE.2020.28.11.817]
  • E. Roth, T. Dirndorfer, K. V. Neumann-Cosel, M. O. Fischer, T. Ganslmeier, A. Kern and A. Knoll, “Analysis and Validation of Perception Sensor Models in an Integrated Vehicle and Environment Simulation,” Proceedings of the 22nd Enhanced Safety of Vehicles Conference, 2011.
  • J. Yosinski, J. Clune, Y. Bengio and H. Lipson, “How Transferable Are Features In Deep Neural Networks?,” arXiv preprint arXiv:1411.1792, , 2014.
  • B. Graham, M. Engelcke and L. Van Der Maaten, “3D Sementic Segmentation with Submanifold Sparse Convolutional Networks,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp.9224-9232, 2018. [https://doi.org/10.1109/CVPR.2018.00961]
  • C. R. Qi, L. Yi, H. Su and L. J. Guibas, “PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space,” arXiv preprint arXiv:1706.02413, , 2017.
  • F. Scarselli, M. Gori, A. C. Tsoi, M. Hagenbuchner and G. Monfardini, “The Graph Neural Network Model,” IEEE Transactions on Neural Networks, Vol.20, No.1, pp.61-80, 2008. [https://doi.org/10.1109/TNN.2008.2005605]
  • R. Padilla, S. L. Netto and E. A. da Silva, “A Survey on Performance Metrics for Object-detection Algorithms,” International Conference on Systems, Signals and Image Processing (IWSSIP), pp.237-242, 2020. [https://doi.org/10.1109/IWSSIP48289.2020.9145130]
  • S. Riedmaier, D. Schneider, D. Watzenig, F. Diermeyer and B. Schick, “Model Validation and Scenario Selection for Virtual-based Homologation of Automated Vehicles,” Applied Science, Vol.11, No.1, Paper No.35, 2021. [https://doi.org/10.3390/app11010035]

Fig. 1

Fig. 1
Example of vehicle detection based on KODAS dataset: detected vehicle(green) and ground truth (GT) for vehicles(red)

Fig. 2

Fig. 2
Examples of vehicle detection based on virtual lidar dataset: detected vehicle(green) and ground truth (GT) for vehicles(red)

Fig. 3

Fig. 3
Comparison of experimental and virtual lidar data: detected vehicle(dotted box) and primary vehicle(solid-line box)

Fig. 4

Fig. 4
Example of primary vehicle(green)

Fig. 5

Fig. 5
Vehicle detection result of PV-RCNN(top) and Complex-YOLO(bottom): detected vehicle(green) and ground truth(red)

Table 1

Primary vehicle extraction algorithm

Table 2

A list of lidar datasets

Dataset (Lidar channel) Train Test Sum
KITTI (64 CH) 3,712 (50 %) 3,769 (50 %) 7,481
KODAS (128 CH) 6,452 (40 %) 9,437 (60 %) 15,889
Simulation
(128 CH)
General 3,747 (28 %) 5,114 (39 %) 13,268
Pre-crash 2,000 (15 %) 2,407 (18 %)
Sum 5,757 (43 %) 7,521 (57 %)

Table 3

Vehicle detection results(KPI: AP)

Method Literature KITTI KODAS Primary vehicle
Complex
-YOLOv3
77.335) 77.78 82.70 90.94
PV-
RCNN
90.6511) 89.23 93.10 94.65
Point-GNN 77.3912) 74.92 77.70 77.32

Table 4

Vehicle detection results of Complex-YOLOv3 and PV-RCNN with respect to different training datasets

Training KODAS 40 % KODAS 40 % KODAS 40 %
Simulation 43 % Simulation 43 %
Test Complex
-YOLOv3
PV-
RCNN
Complex
-YOLOv3
PV-
RCNN
Complex
-YOLOv3
PV-
RCNN
Simulation57 % 62.00
(63.03)
63.91
(63.27)
94.15
(94.09)
79.82
(86.05)
94.33
(94.40)
82.33
(88.55)
Simulation57 % & KODAS 60 % 79.08
(77.45)
85.56
(81.24)
90.31
(93.94)
80.94
(86.55)
89.32
(93.49)
87.59
(90.45)

Table 5

Vehicle detection results of Complex-YOLOv3 and PV-RCNN with respect to different percentage of KODAS datasets

Training Simulation 43 % Simulation 43 % Simulation 43 %
KODAS 10 % KODAS 20 % KODAS 40 %
Test Complex
-YOLOv3
PV-RCNN Complex
-YOLOv3
PV-RCNN Complex
-YOLOv3
PV-RCNN
Simulation 57 % 79.38
(77.75)
77.16
(84.73)
79.27
(78.21)
74.08
(82.12)
77.00
(75.65)
74.51
(82.34)
Simulation 57 % & KODAS 60 % 83.86
(84.77)
85.50
(88.69)
84.09
(84.97)
83.74
(86.20)
83.66
(84.37)
84.89
(86.55)

Table 6

Vehicle detection results for Complex-YOLO and PV-RCNN with respect to additional simulation data

Training Simulation 43 % Simulation 43 %
KODAS 40 % KODAS 40 %
Simulation(new) 9 % Mixed
(new:old=50 %:50 %)
Test Complex
-YOLOv3
PV-
RCNN
Complex
-YOLOv3
PV-
RCNN
Simulation 57 % 88.90
(91.44)
85.97
(91.62)
91.54
(91.75)
85.90
(91.71)
Simulation 57 % & KODAS 60 % 83.72
(84.71)
77.13
(90.15)
86.02
(90.57)
87.17
(92.78)