Skip to content

jaeoh2/CoreML-Traffic-Sign-Classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoreML-Traffic-Sign-Classifier

This is the German traffic sign classifier project for implementing CoreML. SqueezeNet is used as classifier and Keras2 framework used.

Reference

Dataset

http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset#Downloads

Train

  • batch size : 256
  • epochs : 1000 (Earlystopping callbacks)
  • Data Generator :
train_datagen = ImageDataGenerator(
    featurewise_center=True,
    featurewise_std_normalization=True,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=False)

Result

  • Train loss: 0.0492
  • Train accuracy : 0.9866
  • Test accuracy : 0.7552

Model

____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to                     
====================================================================================================
input_1 (InputLayer)             (None, 32, 32, 3)     0                                            
____________________________________________________________________________________________________
conv1 (Conv2D)                   (None, 16, 16, 96)    14208       input_1[0][0]                    
____________________________________________________________________________________________________
maxpool1 (MaxPooling2D)          (None, 7, 7, 96)      0           conv1[0][0]                      
____________________________________________________________________________________________________
fire2/squeeze1x1 (Conv2D)        (None, 7, 7, 16)      1552        maxpool1[0][0]                   
____________________________________________________________________________________________________
fire2/relu_squeeze1x1 (Activatio (None, 7, 7, 16)      0           fire2/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire2/expand1x1 (Conv2D)         (None, 7, 7, 64)      1088        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/expand3x3 (Conv2D)         (None, 7, 7, 64)      9280        fire2/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire2/relu_expand1x1 (Activation (None, 7, 7, 64)      0           fire2/expand1x1[0][0]            
____________________________________________________________________________________________________
fire2/relu_expand3x3 (Activation (None, 7, 7, 64)      0           fire2/expand3x3[0][0]            
____________________________________________________________________________________________________
fire2/concat (Concatenate)       (None, 7, 7, 128)     0           fire2/relu_expand1x1[0][0]       
                                                                   fire2/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire3/squeeze1x1 (Conv2D)        (None, 7, 7, 16)      2064        fire2/concat[0][0]               
____________________________________________________________________________________________________
fire3/relu_squeeze1x1 (Activatio (None, 7, 7, 16)      0           fire3/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire3/expand1x1 (Conv2D)         (None, 7, 7, 64)      1088        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/expand3x3 (Conv2D)         (None, 7, 7, 64)      9280        fire3/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire3/relu_expand1x1 (Activation (None, 7, 7, 64)      0           fire3/expand1x1[0][0]            
____________________________________________________________________________________________________
fire3/relu_expand3x3 (Activation (None, 7, 7, 64)      0           fire3/expand3x3[0][0]            
____________________________________________________________________________________________________
fire3/concat (Concatenate)       (None, 7, 7, 128)     0           fire3/relu_expand1x1[0][0]       
                                                                   fire3/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire4/squeeze1x1 (Conv2D)        (None, 7, 7, 32)      4128        fire3/concat[0][0]               
____________________________________________________________________________________________________
fire4/relu_squeeze1x1 (Activatio (None, 7, 7, 32)      0           fire4/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire4/expand1x1 (Conv2D)         (None, 7, 7, 128)     4224        fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/expand3x3 (Conv2D)         (None, 7, 7, 128)     36992       fire4/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire4/relu_expand1x1 (Activation (None, 7, 7, 128)     0           fire4/expand1x1[0][0]            
____________________________________________________________________________________________________
fire4/relu_expand3x3 (Activation (None, 7, 7, 128)     0           fire4/expand3x3[0][0]            
____________________________________________________________________________________________________
fire4/concat (Concatenate)       (None, 7, 7, 256)     0           fire4/relu_expand1x1[0][0]       
                                                                   fire4/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
maxpool2 (MaxPooling2D)          (None, 3, 3, 256)     0           fire4/concat[0][0]               
____________________________________________________________________________________________________
fire5/squeeze1x1 (Conv2D)        (None, 3, 3, 32)      8224        maxpool2[0][0]                   
____________________________________________________________________________________________________
fire5/relu_squeeze1x1 (Activatio (None, 3, 3, 32)      0           fire5/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire5/expand1x1 (Conv2D)         (None, 3, 3, 128)     4224        fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/expand3x3 (Conv2D)         (None, 3, 3, 128)     36992       fire5/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire5/relu_expand1x1 (Activation (None, 3, 3, 128)     0           fire5/expand1x1[0][0]            
____________________________________________________________________________________________________
fire5/relu_expand3x3 (Activation (None, 3, 3, 128)     0           fire5/expand3x3[0][0]            
____________________________________________________________________________________________________
fire5/concat (Concatenate)       (None, 3, 3, 256)     0           fire5/relu_expand1x1[0][0]       
                                                                   fire5/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire6/squeeze1x1 (Conv2D)        (None, 3, 3, 48)      12336       fire5/concat[0][0]               
____________________________________________________________________________________________________
fire6/relu_squeeze1x1 (Activatio (None, 3, 3, 48)      0           fire6/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire6/expand1x1 (Conv2D)         (None, 3, 3, 192)     9408        fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/expand3x3 (Conv2D)         (None, 3, 3, 192)     83136       fire6/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire6/relu_expand1x1 (Activation (None, 3, 3, 192)     0           fire6/expand1x1[0][0]            
____________________________________________________________________________________________________
fire6/relu_expand3x3 (Activation (None, 3, 3, 192)     0           fire6/expand3x3[0][0]            
____________________________________________________________________________________________________
fire6/concat (Concatenate)       (None, 3, 3, 384)     0           fire6/relu_expand1x1[0][0]       
                                                                   fire6/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire7/squeeze1x1 (Conv2D)        (None, 3, 3, 48)      18480       fire6/concat[0][0]               
____________________________________________________________________________________________________
fire7/relu_squeeze1x1 (Activatio (None, 3, 3, 48)      0           fire7/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire7/expand1x1 (Conv2D)         (None, 3, 3, 192)     9408        fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/expand3x3 (Conv2D)         (None, 3, 3, 192)     83136       fire7/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire7/relu_expand1x1 (Activation (None, 3, 3, 192)     0           fire7/expand1x1[0][0]            
____________________________________________________________________________________________________
fire7/relu_expand3x3 (Activation (None, 3, 3, 192)     0           fire7/expand3x3[0][0]            
____________________________________________________________________________________________________
fire7/concat (Concatenate)       (None, 3, 3, 384)     0           fire7/relu_expand1x1[0][0]       
                                                                   fire7/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
fire8/squeeze1x1 (Conv2D)        (None, 3, 3, 64)      24640       fire7/concat[0][0]               
____________________________________________________________________________________________________
fire8/relu_squeeze1x1 (Activatio (None, 3, 3, 64)      0           fire8/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire8/expand1x1 (Conv2D)         (None, 3, 3, 256)     16640       fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/expand3x3 (Conv2D)         (None, 3, 3, 256)     147712      fire8/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire8/relu_expand1x1 (Activation (None, 3, 3, 256)     0           fire8/expand1x1[0][0]            
____________________________________________________________________________________________________
fire8/relu_expand3x3 (Activation (None, 3, 3, 256)     0           fire8/expand3x3[0][0]            
____________________________________________________________________________________________________
fire8/concat (Concatenate)       (None, 3, 3, 512)     0           fire8/relu_expand1x1[0][0]       
                                                                   fire8/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
maxpool3 (MaxPooling2D)          (None, 1, 1, 512)     0           fire8/concat[0][0]               
____________________________________________________________________________________________________
fire9/squeeze1x1 (Conv2D)        (None, 1, 1, 64)      32832       maxpool3[0][0]                   
____________________________________________________________________________________________________
fire9/relu_squeeze1x1 (Activatio (None, 1, 1, 64)      0           fire9/squeeze1x1[0][0]           
____________________________________________________________________________________________________
fire9/expand1x1 (Conv2D)         (None, 1, 1, 256)     16640       fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/expand3x3 (Conv2D)         (None, 1, 1, 256)     147712      fire9/relu_squeeze1x1[0][0]      
____________________________________________________________________________________________________
fire9/relu_expand1x1 (Activation (None, 1, 1, 256)     0           fire9/expand1x1[0][0]            
____________________________________________________________________________________________________
fire9/relu_expand3x3 (Activation (None, 1, 1, 256)     0           fire9/expand3x3[0][0]            
____________________________________________________________________________________________________
fire9/concat (Concatenate)       (None, 1, 1, 512)     0           fire9/relu_expand1x1[0][0]       
                                                                   fire9/relu_expand3x3[0][0]       
____________________________________________________________________________________________________
drop9 (Dropout)                  (None, 1, 1, 512)     0           fire9/concat[0][0]               
____________________________________________________________________________________________________
conv10 (Conv2D)                  (None, 1, 1, 43)      22059       drop9[0][0]                      
____________________________________________________________________________________________________
avgpool10 (GlobalAveragePooling2 (None, 43)            0           conv10[0][0]                     
____________________________________________________________________________________________________
softmax (Activation)             (None, 43)            0           avgpool10[0][0]                  
====================================================================================================
Total params: 757,483
Trainable params: 757,483
Non-trainable params: 0
____________________________________________________________________________________________________

Releases

No releases published

Packages

No packages published