Klassikcat / project-NEXTLab-CNN-EfficientNet

Codestates collaboration project with NEXTLab to detect, classify, and track car in cameras using EfficientNetv2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NEXTLab Car Detection Project

Example

Open In Colab

Main Contributers

  • Jeongtae Shin(@Klassikcat): Project Management, Model build, Engineering
  • Jaewoong Lee(@colin19950703): Augmentation, model build, Enigeering
  • Hongkyun Kim(@ghdrbs0302): Data Inspection, Test data Labeling, Engineering

Installation

!pip install -U git+https://github.com/Klassikcat/project-NEXTLab-CNN-EfficientNet

pre-trained Weights

https://drive.google.com/file/d/1UyVnR5Pi7NvzD3LPnkllGEyn8afMi5jF/view?usp=sharing

Structure

project-NEXTLabcoreconfig.py               # Tensorflow Configurationutils.pymodelEfficientNet.py         # Model block and builderinitializers.py         # from EfficientNetv2 (https://arxiv.org/abs/2104.00298)layer.py                # from EfficietnNetv2model.py                # from EfficientNetv2params.py               # from EfficientNetv2utilsaugmentation            # Data augmentation toolsaugmentation.pylauncher_augment.pylauncher_classname.pyfrom_folderloader.py             # get train/valid/test dataset from directorytfrecordtfrecordMaker         # Make TFRecordtfrecordViewer        # Visualize, Load TFRecord unicodeUtil.py          # Korean utilities assemble jamovisuialization.py       # Plots(data distribution, heatmap)
setup.py                    # installer
readme.md

Stack

Python TensorFlow sklearn

Objective

  • Making EfficientNetv2 application that distinguish 322 cars by using photos captured by traffic camera
  • Traffic enforcement, Parking lot management.

Data

Train/Validatation Data

  • Uses modified "자동차 차종/연식/번호판 인식용 영상" from AIHub: https://aihub.or.kr/aidata/27727
  • Uses 522 classes in "세단", "SUB", "해치백", "승합"

Test Data

Data Distribution

approximately 82% of data is korean cars(hyundai, KIA)

approximately 75% of data is korean cars(sonata, etc...)

51% sedan, 28.8% SUV, 10% Hatchback, 9% van

mainly consists with 2010~2018 cars

Data Augmentation

  • use these augmentations taking the possible road situations into account.
  • Drop the class with less than 30 pieces of data in order to avoid data leakage
  • randomly pick 300 data. if the class has less than 30 data, proceed Data Augmentation for equal distribution of data

Model Structure

  • EfficientNetB0(224, 224) with 30 layer freeze

Train_validation accuracy/loss

top 1 accuracy/loss

  • train: 0.9051/0.2755
  • valid: 0.8960/0.3769

top 3 accuracy

  • train: 0.9880
  • valid: 0.9717

Further Work

[ ] Increase valid/test accuracy by making Ensemble model

[ ] Label Smoothing

[ ] Fix all false label

About

Codestates collaboration project with NEXTLab to detect, classify, and track car in cameras using EfficientNetv2


Languages

Language:Python 100.0%